bash — christopher@homelab

christopher@homelab:~$ whoami

christopher — homelab builder & self-hosting enthusiast

christopher@homelab:~$ cat mission.txt

christopher@homelab:~$ _

bare-metal & online 12+ self-hosted services encrypted DNS · VPN · monitoring

# the stack

Everything below runs in Docker on a single bare-metal box at home, fronted by a Caddy reverse proxy with automatic HTTPS.

AdGuard Home + Unbound

Network-wide ad & tracker blocking with a fully recursive DNS resolver — no third-party upstream, queries resolved from the root servers.

DNSPrivacyUnbound

Encrypted DNS

DNS-over-HTTPS, DNS-over-TLS and DNS-over-QUIC endpoints so every device resolves privately — even off-network over the VPN.

DoHDoTDoQ

Tailscale

Mesh VPN with an exit node and MagicDNS, giving secure remote access to every internal service and filtered DNS from anywhere.

WireGuardExit nodeMagicDNS

SearXNG

A self-hosted, privacy-respecting metasearch engine — no tracking, no profiling, results aggregated from dozens of sources.

SearchPrivacy

Caddy

Reverse proxy and TLS terminator. Automatic Let's Encrypt certificates via DNS-01, clean HTTPS hostnames for every service.

Reverse proxyLet's Encrypt

Monitoring

Uptime Kuma for availability, Beszel for system metrics, Dozzle for live container logs, and a Speedtest tracker for the WAN link.

Uptime KumaBeszelDozzle

Homepage

A single unified dashboard that ties every service, widget and live stat together behind the VPN.

Dashboard

Minecraft + BlueMap

A Fabric game server with world pre-generation and a live 3D web map of the world rendered straight from the save.

FabricBlueMapRCON

# explore the stack

Live read-only terminal into /opt/stacks and Minecraft config — via Cloudflare Tunnel. No edits, sensitive paths blocked, output redacted.

ssh — christopher@homelab (read-only) waiting…

# live status

Real-time availability, pulled live from my Uptime Kuma instance.

checking…
Connecting to monitoring…

# the hardware

Proof you don't need a datacenter to run real infrastructure — this whole stack lives on a recycled office desktop.

running now

  • HostDell OptiPlex 780 SFF
  • CPUIntel Core 2 Duo E8400 @ 3.0 GHz
  • Memory16 GB DDR3
  • Storage500 GB drive
  • OSLinux · Docker · Caddy
  • NetworkTailscale mesh + recursive DNS

roadmap

  • ComputeIntel N305 mini PC (8-core)
  • Rack10" DeskPi RackMate T0
  • SwitchTP-Link TL-SG108PE (PoE+)
  • CamerasReolink PoE + Frigate NVR
  • PowerUPS battery backup
  • GoalVLAN segmentation + local AI

# about

I build and operate a self-hosted homelab from the ground up — networking, DNS, VPN, reverse proxies, monitoring, containers and game servers. Everything here is hands-on: configured, secured and maintained by me, running 24/7 on hardware in my home.

It's how I learn infrastructure, networking and Linux the way it actually works in production — by running it myself.