LifeOps is a self-hosted personal asset and maintenance tracker — a "Life CRM" for managing recurring maintenance, subscriptions, tasks, and personal assets. It's deployed to the homelab Kubernetes cluster via ArgoCD.
| Component | Technology |
|---|---|
| Backend | Go (Gin framework) |
| Frontend | Next.js 14, TypeScript, Tailwind CSS, shadcn/ui |
| Database | PostgreSQL 16 (GORM auto-migration) |
| Auth | JWT in httpOnly cookies, bcrypt passwords, role-based (User/Admin) |
| Notifications | Telegram bot (CronJob worker mode) |
┌─────────────────┐ ┌──────────────────┐
│ Next.js 14 │────▶│ Go Backend │
│ Frontend │ │ (Gin) │
│ /api proxy │ │ Port 8080 │
│ Port 3000 │ │ │
└─────────────────┘ └────────┬─────────┘
│
┌────────▼─────────┐
│ PostgreSQL 16 │
│ (StatefulSet) │
└──────────────────┘
/api requests to the backend via Next.js rewritesmain.go) with all models, handlers, routes, and middleware--worker mode for Telegram notificationsTables (auto-migrated by GORM):
users — user accounts with rolescategories — item categorizationitems — personal assets/itemsitem_shares — shared item accessmaintenance_rules — recurring maintenance schedulesreminders — reminder notificationspassword_reset_tokens — password reset flowtasks — task management| Setting | Value |
|---|---|
| Namespace | life-ops |
| Helm Chart | charts/lifeops/ (in-repo) |
| ArgoCD Source | k8s-cluster-config/applications/lifeops/ |
| Registry | harbor.homelab.vyanh.uk/applications/lifeops-{backend,frontend} |
| Vault Secrets | kv/life-ops/secrets → DB_PASSWORD, TELEGRAM_BOT_TOKEN, TELEGRAM_CHAT_ID |
# Local development with Docker Compose
docker compose up -d
# Frontend dev (hot reload)
cd frontend && npm install && npm run dev
# Backend dev
cd backend && go mod tidy && go run main.go
# Run tests
cd backend && go test ./...
cd frontend && npm test
| File | Purpose |
|---|---|
backend/main.go |
All-in-one backend (models, handlers, routes, middleware) |
frontend/src/app/page.tsx |
Main dashboard entry |
frontend/src/context/AuthContext.tsx |
Authentication context |
frontend/src/components/landing/LandingPage.tsx |
Landing page |
charts/lifeops/ |
Helm chart templates and values |
.github/workflows/build-push.yaml |
CI/CD pipeline |
docker-compose.yaml |
Local development setup |
See LifeOps CI/CD for the full pipeline documentation.