Status: PlannedCategory: Application Layer
Objective
Migrate all services from v2 docker-host to v3 docker-host. Run v2 and v3 in parallel until v3 is validated, then cut over DNS and decommission v2.Entry Criteria
Phase 3 complete — docker-prod-01 VM running with NFS mounts verified
Migration Strategy
Parallel Operationv2 services stay untouched while v3 is built. Services run in parallel until v3 is validated. DNS rewrites flip from v2 IPs to v3 IPs per-service. No big-bang cutover.
Migration Waves
- Wave 1 — Infrastructure
- Wave 2 — Media Stack
- Wave 3 — Torrent Stack
- Wave 4 — Books Stack
- Wave 5 — Photos Stack
Wave 1 — Infrastructure Stack
Deploy Traefik
- Deploy Traefik with Cloudflare DNS-01 wildcard cert (
*.giohosted.com) - Verify Traefik is serving HTTPS internally before migrating any other service
Deploy Authentik
- Deploy Authentik on auth-prod-01 VM (restore from backup)
- Verify OIDC integrations working
Deploy Infrastructure Services
- Deploy cloudflared (CF Tunnel) — keep pointed at v2 until all services migrated
- Deploy adguardhome-sync
- Create dns-prod-02 LXC on pve-prod-02 — verify adguardhome-sync propagating correctly
- Deploy Dockman
- Deploy Homarr (restore config from backup)
- Deploy Beszel + agents on all hosts
Update DNS Rewrites
Update AdGuard DNS rewrite:
*.giohosted.com → Traefik IP (192.168.30.11, not NPM)Cutover
Update Cloudflare Tunnel
Update Cloudflare Tunnel to point at v3 services:
- docker-prod-01 for media stack
- auth-prod-01 for Authentik
- immich-prod-01 for Immich
Service Inventory
| Service | Stack | v3 Status | Notes |
|---|---|---|---|
| Traefik | infra | New (replaces NPM) | Reverse proxy + wildcard TLS |
| Authentik | infra | Carry forward | IdP — OIDC for all SSO apps. Runs on auth-prod-01 VM. |
| cloudflared | infra | Carry forward | CF Tunnel — ABS, Shelfmark, Seerr, Authentik |
| AdGuard Home (LXC) | lxc | Carry forward | Primary DNS + ad-blocking |
| adguardhome-sync | infra | Carry forward | Syncs dns-prod-01 to dns-prod-02 |
| Homarr | infra | Carry forward | Operations dashboard |
| Beszel | monitoring | Carry forward | Host/VM metrics. Agents on all hosts. |
| Plex | unraid-docker | Move to Unraid native Docker | QuickSync via i5-13400 iGPU |
| Sonarr (TV) | arr | Carry forward | TV show automation |
| Sonarr (Anime) | arr | New instance | Anime automation — separate instance |
| Radarr (1080p) | arr | Carry forward | 1080p WebDL automation |
| Radarr (4K) | arr | New instance | 4K WebDL automation |
| Prowlarr | arr | Carry forward | Indexer management |
| Bazarr | arr | Carry forward | Subtitle automation |
| qBittorrent | torrent | Carry forward | Must stay containerized with Gluetun killswitch |
| Gluetun | torrent | Carry forward | ProtonVPN WireGuard killswitch |
| qBitrr | torrent | New (replaces qbit-automation) | Manages all 4 ARR instances. Web UI for management. |
| Immich | photos | Move to immich-prod-01 VM | Dedicated VM — isolated for ML worker resource tuning |
| Audiobookshelf | books | Carry forward | Audiobook server with OIDC |
| Calibre-Web-Automated | books | Carry forward | Ebook library manager |
| Shelfmark | books | Carry forward | Ebook/audiobook request frontend |
| Dockman | infra | Carry forward | Docker compose management |
Exit Criteria
All services running on v3 infrastructure
All services running on v3 infrastructure
- All Wave 1-5 services deployed and accessible
- No services remaining on v2 docker-host
External access working via CF Tunnel
External access working via CF Tunnel
- Audiobookshelf accessible externally
- Shelfmark accessible externally
- Seerr accessible externally
- Authentik accessible externally
- Immich accessible externally
PBS backing up all VMs nightly
PBS backing up all VMs nightly
- Backup jobs configured for all VMs
- Test restore successful
Backup scripts running with Healthchecks heartbeats
Backup scripts running with Healthchecks heartbeats
- backup-docker.sh running nightly
- backup-plex-db.sh running nightly
- Healthchecks.io showing all heartbeats green
Next Phase
Phase 5 — Operational Hardening
Validate backups, monitoring, and tighten security