back to projects

Self-Hosted Home Lab

35+ Docker containers on Ubuntu · reverse proxy, tunnels, VPN & DNS filtering
Ubuntu Linux Docker / Compose Networking Defensive hardening ● Live
Summary A production-style self-hosted server running 35+ Docker containers across a dozen compose stacks on Ubuntu (with an NVIDIA GPU for AI workloads). It sits behind a proper edge: Nginx Proxy Manager for TLS, Cloudflare Tunnels for zero-open-port ingress, a WireGuard VPN for remote access, and Pi-hole for network-wide DNS filtering. It is the platform every other project on this page runs on.

01How it is built

It's my hands-on environment for Linux administration, containerisation, networking and defensive hardening. Nothing is exposed by punching holes in the router: inbound web traffic arrives through Cloudflare Tunnels, remote access is via WireGuard, and internal services sit behind a reverse proxy with TLS. Pi-hole filters DNS for the whole network, config is backed up to a NAS on a schedule, and the AI agent team keeps the whole thing monitored and self-healing.

02Edge & core components

ComponentImageRole
Nginx Proxy Managerjc21/nginx-proxy-managerReverse proxy + Let's Encrypt TLS for all internal services (ports 80/443).
Cloudflare Tunnelcloudflare/cloudflaredOutbound-only ingress: publishes services with no inbound firewall ports open.
WireGuardlinuxserver/wireguardFast VPN for secure remote access back into the lab (UDP 51820).
Pi-holepihole/piholeNetwork-wide DNS sinkhole: ad/tracker/malware blocking for every device.
Pi-hole edgenginx:alpineLightweight nginx front for the Pi-hole admin UI.
PostgreSQL / MariaDBpostgres:16, mariadbShared databases backing the app stacks.
HostUbuntu Server + NVIDIA GPUBare-metal host; GPU passthrough for the local-AI workloads.

03What runs on top

The same server hosts the other projects here: the Splunk × Tenable SIEM lab, the AI agent team, the private LLM stack, the Home Assistant smart home, the media server and the Australian Homestead WordPress site. All are isolated in their own compose stacks and published through the shared edge.

04What this demonstrates

back to projects