Project Roadmap¶
Current state and planned improvements.
Current State¶
| Area | Status |
|---|---|
| Services | 65 stacks across 8 categories |
| Servers | 2 (Unraid: 41 stacks, Development: 13 stacks, deploy=false: 1) |
| Monitoring | OTel Collector → Mimir/Loki/Tempo → Grafana + Uptime Kuma |
| Deployment | Komodo GitOps fully operational |
| Quality Gates | 7 pre-commit hooks |
| CI/CD | Komodo Builds for custom Dockerfile builds |
| Networking | Tailscale VPN, Caddy reverse proxy (*.home), AdGuard DNS |
| Cloudflare | Tunnel, Hyperdrive (2 configs), Workers scaffold, WAI bridge via LiteLLM |
| Media | Jellyfin (HW transcode), Navidrome |
| Orchestration | Airflow 3.x (GitDagBundle), n8n (workflow automation) |
| Dashboard | Homepage (service dashboard with Docker integration) |
| ADRs | 3 (Lakekeeper, Hyperdrive+Workers, Workers AI) |
Category Breakdown¶
| Category | Count | Status |
|---|---|---|
| Applications | 20 | Active, Homepage dashboard |
| Database | 11 | Stable |
| Networking | 9 | Caddy + AdGuard HA deployed |
| Monitoring | 6 | Full observability stack |
| LLM | 6 | Active |
| Development | 4 | Stable (Komodo deploy=false) |
| Storage | 3 | Stable |
| Orchestration | 2 | Airflow 3.x + n8n operational |
Near-Term Goals¶
Monitoring Improvements¶
- Expand Prometheus scrape coverage to all services
- Add custom Grafana dashboards for each service category
- Configure alerting rules in Grafana (not just Ntfy notifications)
- Add log-based alerting for critical services
- Implement SLO/SLI dashboards for key services
Quality & Automation¶
- Add compose.yaml validation tests (service naming, port uniqueness)
- Automate TOML linting beyond taplo-format (validate required fields)
- Add git hooks to prevent common pitfalls (relative run_directory)
- Improve pre_deploy scripts with idempotency checks
Media Stack¶
- Grafana dashboard for Jellyfin transcoding stats (HW vs SW)
- Automate music library cleanup (duplicates, low-quality)
- Evaluate Navidrome playlist backup/restore
- Evaluate media download automation (successor to MeTube)
Infrastructure Improvements¶
Backup & Disaster Recovery¶
- Automated database backups (PostgreSQL, ClickHouse)
- Volume snapshot automation via Unraid API
- Off-site backup for critical data (Immich photos, Gitea repos)
- Document and test full server restore procedure
- Git repo mirror (backup Gitea to external service)
Network & Security¶
- Tailscale ACL audit — restrict service access per device
- Certificate rotation for ts.net domains
- Network segmentation between categories
- Container vulnerability scanning in CI/CD
Service Additions Being Considered¶
Applications¶
- Matrix/Synapse — self-hosted messaging
- Paperless-ngx — document management
- ~~Homepage — dashboard for service links~~ → Homepage deployed (ghcr.io/gethomepage/homepage)
Database¶
- Valkey — Redis-compatible cache (open source)
- Dragonfly — high-performance Redis alternative
Monitoring¶
- Pyroscope — continuous profiling
- Alloy — Grafana's OTel-native collector (replace OTel Collector)
- ~~Uptime monitoring~~ → Uptime Kuma deployed (32 checks: 22 unraid + 10 dev)
Networking¶
- ~~AdGuard High Availability~~ — Primary + replica + sync deployed (30min lag, automatic failover)
- Headscale — self-hosted Tailscale control server
- Stirling PDF — PDF manipulation service
Documentation Improvements¶
- Service-specific runbooks (startup, shutdown, backup per service)
- Onboarding guide for new developers
- Architecture decision records (ADRs) for key choices → ADR-0001 (Gravitino→Lakekeeper), ADR-0002 (Hyperdrive+Workers), ADR-0003 (Workers AI via LiteLLM) completed
- API documentation for Unraid GraphQL and Komodo CLI integrations
- Port mapping reference table (service → port → URL)
Edge Compute Layer (NEW — 2026-07-18)¶
Cloudflare Hyperdrive + Workers integration. See ADR-0002 and ADR-0003 for design.
Completed¶
- Workers VPC connectivity service + 2 Hyperdrive configs (OpenTofu managed)
- Supabase PG TLS enabled (self-signed cert via
conf.d/) - cloudflared attached to supabase-internal Docker network
- Workers scaffold (
workers/template/): wrangler 4, TS 5.7, vitest, pg 8.16.3 - cloudflare-exporter deployed + Grafana
cloudflare-overviewdashboard - Supabase PG datasource in Grafana (uid=
supabase) - LiteLLM
cf-qwen3-embeddingmodel (1024 dims, 119 langs)
Pending¶
- Pilot worker deploy — Phase 1+2 of ADR-0002 currently DEFERRED. ~~
synthnews-api~~ dropped 2026-07-18 (Docker stack decommissioned). Replacement TBD (gmail-webhook-classifier per ADR-0003). - Workers CI via GitHub Actions —
wrangler deployon push toworkers/dir - Custom GraphQL scraper for Hyperdrive metrics —
hyperdriveQueriesAdaptiveGroups+hyperdrivePoolSizesAdaptiveGroups. No public Prometheus exporter supports them yet (as of Jul 2026). - LiteLLM chat models via Workers AI (Phase 2 of ADR-0003) —
@cf/meta/llama-3.2-1b-instructfor summarize/classify tasks - CF Access per protected Worker endpoint (per ADR-0002 risk table — opt-in per worker)
Long-Term Vision¶
- Full observability — every service emits metrics, logs, and traces
- Zero-downtime deploys — rolling updates where possible
- Automated testing — compose validation, integration tests
- Multi-region — potential third server for geographic redundancy
- Self-healing — auto-restart policies and health check driven recovery
- Cost tracking — resource usage dashboards per service
Contributing to This Roadmap¶
This roadmap is maintained as a living document. To suggest changes:
- Open an issue using
bd(beads issue tracker):bd ready - Discuss the proposed addition or improvement
- Update this file when decisions are made
Related Documentation¶
- Project Overview — Current scope and success criteria
- System Architecture — Current architecture
- Design Guidelines — Principles guiding future decisions