Note
This is a living document, and is subject to change at any given time.
Last updated August 5th, 2026.
Everything below except the “Not Managed by Dojo” section is deployed and configured from the Dojo Ansible monorepo, see How I GitOps’ed My Homelab.
Services#
| Service | Deployment Method | Description |
|---|---|---|
| Knot DNS | VM pair (knot-1/2) | Authoritative DNS, behind keepalived VIP |
| CoreDNS | VM pair (coredns-1/2) | Client-facing resolver, behind keepalived VIP |
| Pi-Hole | Container pair (ctr-core-2/3) | Ad blocking, kept in sync via Nebula-sync |
| Caddy 2 | Container (ctr-core-1) | Reverse proxy, automatic wildcard TLS via Cloudflare DNS-01 |
| DMZ Caddy | Container (ctr-dmz-1) | Second, fully separate reverse proxy for genuinely public services |
| cloudflared | Container (ctr-core-1) | Cloudflare Tunnel for internal services that need external reach |
| GitHub Actions runner | VM (ghr-1) | Self-hosted CI runner for all Dojo deployments |
| Docsite | Static site, served by Caddy | Auto-generated docs dashboard |
| Ansible control VM | VM | Holds the Dojo checkout and secrets |
| Home Assistant | VM (hand-built, not Dojo-managed) | Home automation |
| Plex | VM (hand-built, not Dojo-managed) | Media server, Intel Arc SR-IOV hardware transcoding |
| Tautulli | Container on Synology | Plex monitoring |
| DHCP | UniFi | IP assignment |
| VPN | UniFi | Remote network access |
Not Managed by Dojo#
Home Assistant and Plex both moved onto the new Proxmox VE cluster as hand-built appliance VMs, outside Ansible’s reach. Plex gets OS patching only, through a bare inventory entry in the maintenance role; Home Assistant does not even get that. Plex uses Intel Arc SR-IOV passthrough for hardware transcoding, see Intel Arc SR-IOV Hardware Transcoding with Plex on Proxmox VE for the full setup.