Files
documentation/08-deployment-phases.md
jarvis 484b2e6272 DNS topology: AdGuard removed, Technitium authoritative + DoT + ad blocking
- Remove AdGuard Home from all service catalogs, deployment phases,
  persistence tables, and network architecture docs
- Update Technitium notes: authoritative .ai.home zone, recursive resolver,
  DoT forwarder to Cloudflare (tls://1.1.1.1), built-in ad blocking
- Resolve open questions #2 (Technitium upstream) and #3 (AdGuard layout)
- Add dns-topology.md: complete DNS architecture diagram, zone details,
  client assignments, Tailscale integration, troubleshooting table,
  migration history (AdGuard deployed → paused → removed)
2026-05-29 21:01:24 -04:00

3.1 KiB
Raw Permalink Blame History

Iron Legion Homelab Services Stack — Deployment Phases

Phase 1: Infrastructure (Critical Path)

Goal: Get DNS, proxy, and basic monitoring alive. Everything else depends on this.

Order Service Target Node Why First Dependencies
1 Technitium DNS MK7 Name resolution for internal services None
2 Technitium DNS MK7 Authoritative + recursive + ad-block N/A — single service
AdGuard Home Removed Technitium replaces AdGuard
3 Traefik MK7 Edge router for all HTTP ingress DNS (needs *.labs.internal to resolve)
4 Authelia MK7 Auth layer before exposing any mgmt UI Traefik (depends on ForwardAuth middleware)
5 Portainer MK7 Container management UI Traefik + Authelia (for secured access)
6 Prometheus MK7 Metrics collection baseline None (scrape targets added in Phase 2)
7 Beszel MK7 Fleet resource overview None (agents installed per-node)
8 Dozzle MK7 Real-time log viewing None

Phase 1 milestone: All nodes report healthy in Beszel. Portainer accessible via auth portal. DNS resolves.


Phase 2: Media & File Collaboration

Goal: Self-hosted media acquisition and file sync.

Order Service Target Node Why Now Dependencies
9 Jellyfin MK7 Media playback (GPU transcode if MK7 has dGPU) None (file ingest later)
10 Sonarr MK7 TV management Jellyfin (pushes organized files)
11 Radarr MK7 Movie management Jellyfin (pushes organized files)
12 Prowlarr MK7 Indexer aggregation Sonarr + Radarr (feeds them)
13 Nextcloud MK7 File sync/collaboration PostgreSQL (on MK7)
14 Vaultwarden MK7 Password management None (standalone)

Phase 2 milestone: Media acquisition pipeline works end-to-end. Nextcloud syncs. Vaultwarden stores secrets.


Phase 3: Polish & Expansion

Goal: Dashboards, advanced monitoring, nice-to-haves.

Order Service Target Node Why Deferred Dependencies
15 Grafana MK7 Dashboards need metrics to be interesting Prometheus (needs data history)
16 Homepage MK7 Custom dashboard for everything All Phase 1+2 services (needs endpoints)
Promtail + Loki TBD Centralized logging Only if Dozzle is insufficient
Uptime-Kuma TBD External uptime monitoring Only if Beszel alerting is insufficient

Phase 3 milestone: Single-pane dashboard (Homepage) shows all services. Alerts route to Discord or email.

Deployment Cadence

  • One service per session. No mass deployments. Validate each before proceeding.
  • Rollback plan: docker compose down + mv /opt/iron-legion/service{,-failed-$(date +%s)}. Snapshot taken before each compose up.
  • Bobby approval required before Phase 2 begins. Phase 1 success must be demonstrated.