Project Tracker (Path A)¶
Goal: Replace paid hosted services with self-hosted equivalents to eliminate recurring costs.
Last updated: 2026-05-31.
Foundation dependencies (must be DONE before Path A starts)¶
Path A is gated on the same Phase 3 service infrastructure as Path D — they share PBS, Traefik, Authelia, DNS, monitoring. See homelab-tracker.md Phase 3 for the committed rollout sequence:
- Proxmox Backup Server deployed + first backup + restore drill
- VM 500 DNS audit / migration if EOL
- Traefik + Let's Encrypt DNS-01 (Cloudflare API)
- Authelia SSO + MFA
After items 1-4 are done, Path A items below (A.1 onward) can start in parallel with Path D (home-cloud-tracker.md).
Active monthly costs being targeted¶
- Assembyl: GitHub Actions minutes (CI/CD pipeline runs)
- Assembyl: Google Cloud Run (production deployment)
- Assembyl: MongoDB Atlas (database hosting)
Projects in scope for self-hosting¶
- Assembyl (active, primary cost driver)
- Civic intelligence platform with Olga (future, when MVP closer to launch)
Projects NOT in scope (client work, hosted by clients)¶
- ScConnect
- ATLAS (Uber)
Sequence (foundation-blocked - do not start until homelab-tracker.md Phase 1 is complete)¶
A.1 GitLab CE deployment¶
- Status: NOT STARTED
- Deliverable: Self-hosted GitLab CE accessible via gitlab.kay.home
- VM specs: 4 vCPU, 8GB RAM, 100GB disk (room to grow), Debian 12
- Method: Omnibus package install (simplest, most-documented)
- Validation: Create test repo, push commit, verify web UI
A.2 GitLab Runner with Docker executor¶
- Status: NOT STARTED
- Depends on: A.1 complete
- Deliverable: Working CI runner that picks up jobs from GitLab
- VM specs: 2 vCPU, 4GB RAM, 50GB disk, Debian 12 + Docker
- Validation: Run a hello-world .gitlab-ci.yml pipeline successfully
A.3 Migrate Assembyl CI from GitHub Actions to GitLab CI¶
- Status: NOT STARTED
- Depends on: A.2 complete
- Approach: Mirror repo first, port .github/workflows/*.yml to .gitlab-ci.yml, validate both work, then cut GitHub Actions
- Risk: Nx monorepo CI is complex, expect 1-2 weeks of iteration
- Validation: Three successful pipeline runs on GitLab matching expected behavior
A.4 Assembyl staging environment VM¶
- Status: NOT STARTED
- Depends on: A.2 complete (can parallel with A.3)
- Deliverable: VM running Assembyl stack for staging deploys
- VM specs: 4 vCPU, 8GB RAM, 100GB disk + storage for MongoDB
- Includes: MongoDB local, Redis local, Node.js, Nx CLI
- Validation: GitLab CI deploys to this VM on staging branch push
A.5 Production decision point (NOT immediate)¶
- Status: DEFERRED - revisit after A.1-A.4 stable for 1 month
- Options:
- Keep production on Cloud Run (proven, reliable, small recurring cost)
- Migrate production to self-hosted with proper monitoring/backups/HA
- Recommendation: Keep production on cloud for now. Self-host dev/staging only.
A.6 Civic platform self-hosting¶
- Status: DEFERRED - depends on civic platform MVP readiness
- Will follow same pattern as Assembyl (A.1-A.4) but on existing infrastructure
- Olga's involvement and team workflow may dictate timeline