Verifies 16 DockerHub images, assigns target nodes per locked policy, defines 3-phase deployment order (Infra → Media → Polish). Domain: *.ai.home No public internet exposure. Services: Traefik, Technitium DNS, AdGuard Home, Prometheus, Grafana, Beszel, Dozzle, Portainer, Homepage, Authelia, Vaultwarden, Jellyfin, Sonarr, Radarr, Prowlarr, Nextcloud
2.4 KiB
2.4 KiB
Iron Legion Homelab Services Stack — Open Questions & Blockers
Blocker Status
| # | Question | Impact | Default if Unresolved |
|---|---|---|---|
| 1 | Domain name — Does Bobby own a domain (e.g., bobbysh.me) or do we use a fake TLD (labs.internal)? |
Critical — TLS certs, Authelia, and DNS all depend on this. | Use labs.internal + self-signed CA |
| 2 | Technitium upstream — DoH, DoT, or plain UDP to upstream resolver (e.g., Cloudflare 1.1.1.1)? | Low — can default to DoH | DoH → https://cloudflare-dns.com/dns-query |
| 3 | Pi-hole vs Technitium conflict — Both run on Bones port 53. Run Pi-hole on non-standard port with Technitium as conditional forwarder? Or separate nodes? | Critical — port 53 collision | Technitium on 53, Pi-hole on 5053, forward to Pi-hole from Technitium |
| 4 | Jellyfin media storage — External USB on Mark44? SMB share? NVMe? | Medium | External USB mounted at /media on Mark44 |
| 5 | Backup target on Bones — Capacity? Dedicated drive? Rsync target path? | Medium | /backups/<service-name>/ on Bones secondary storage |
| 6 | Nextcloud database — Use existing PostgreSQL on Bones, or deploy Nextcloud AIO (bundled)? | Medium — affects resource allocation on Bones | Deploy standalone PostgreSQL container on Bones for Nextcloud AIO is too heavy |
| 7 | GPU on Mark44 — NVIDIA driver runtime for Jellyfin transcode? | Low — falls back to CPU transcode | Use jellyfin/jellyfin with NVIDIA_VISIBLE_DEVICES env if available |
| 8 | Notification routing — Discord webhook? SMTP? File only? | Low — default file works | File notifications in /opt/iron-legion/authelia/notifications/ |
| 9 | Tailscale ACL policy — Draft exists in Section 7. Bobby must review and apply in Tailscale admin console. | Low | Stay permissive until Bobby approves |
| 10 | Beszel alert thresholds — CPU %, memory %, disk % triggers not defined. | Low | Defaults in Beszel container |
Outstanding Decisions Required
- Pi-hole inclusion — Not in Bobby's original list. I added it as a DNS-layer complement to Technitium. Remove if Bobby doesn't want it.
- Authelia two-factor method — TOTP via app (Google Authenticator) vs WebAuthn/FIDO2 keys?
- Home vs remote access — If Bobby wants to share Jellyfin with friends/family outside Tailscale, public domain + Authelia guard is required.