A fully containerized homelab running on a single Debian server, publicly accessible via a custom domain. All services are orchestrated with Docker Compose and managed through Dockge.
- CPU: AMD Ryzen 5700G
- OS: Debian Linux
- Network: UniFi — 19 VLANs across 3 sites
| Service | Description |
|---|---|
| Caddy | Reverse proxy with automatic HTTPS via Cloudflare DNS |
| Nextcloud | Self-hosted file storage |
| Vaultwarden | Self-hosted Bitwarden-compatible password manager |
| Frigate | NVR with object detection for 7 IP cameras across 3 sites |
| Pi-hole | Network-wide DNS ad blocking |
| Uptime Kuma | Service uptime monitoring with Discord alerts |
| Grafana | Server and container metrics dashboard |
| Prometheus | Metrics collection |
| cAdvisor | Docker container resource usage |
| Homepage | Self-hosted dashboard |
| Dockge | Docker Compose stack manager |
- Sites: Home, Speedalice Nails, The Jangwon
- VLANs: 19 total across all sites
- Secure devices, infrastructure, IoT, VPN clients, POS, surveillance, guest WiFi, staff WiFi, VoIP
- Remote access: WireGuard, Unifi site-to-site VPN
- DNS: Cloudflare with Pi-hole for local ad blocking
- Security: PCI-DSS informed segmentation for POS systems
7 IP cameras across 3 sites feeding into Frigate for NVR and object detection:
- Speedalice Nails: parking lot, front section, middle section, pedicure section
- The Jangwon: front, back, rear
homelab/
├── caddy/ # Reverse proxy config and Caddyfile
├── nextcloud/ # File storage stack
├── vaultwarden/ # Password manager stack
├── frigate/ # NVR stack and camera config
├── pihole/ # DNS stack
├── uptime/ # Uptime Kuma stack
├── monitoring/ # Grafana + Prometheus + cAdvisor stack
├── homepage/ # Dashboard config
└── dockge/ # Stack manager
All sensitive values are stored in .env files and are not committed to this repository. See each service directory for a corresponding .env.example.