Skip to content

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:

  1. Proxmox Backup Server deployed + first backup + restore drill
  2. VM 500 DNS audit / migration if EOL
  3. Traefik + Let's Encrypt DNS-01 (Cloudflare API)
  4. 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