My homelab
One quiet box in my room, about thirty Docker containers, zero monthly subscriptions. Here's what's on it and why.
Hardware
| Part | What I use | Why it matters |
|---|---|---|
| CPU | AMD Ryzen 7 5700X (8 cores / 16 threads) | Plenty for game servers and dozens of containers. Idles around 38 °C. |
| RAM | 32 GB | Modded Minecraft alone wants 8–12 GB. Everything else fits comfortably. |
| GPU | GTX 1050 Ti (4 GB) | Hardware video transcoding for Jellyfin and small local AI models. |
| System disk | 500 GB NVMe SSD | OS, Docker and all app configs. Fast, and only about a quarter full. |
| Data disk | 2 TB HDD | Media library, camera recordings and backups. |
| Extras | Sonoff Zigbee 3.0 USB dongle | Talks to wireless sensors for Home Assistant. |
The OS is Ubuntu Server 22.04. Every service runs in Docker, one docker compose file per "stack", which makes things easy to back up, move and rebuild.
What runs on it
Media
- Jellyfin: my own Netflix, with GPU transcoding.
- Sonarr, Radarr, Prowlarr, Bazarr, Jellyseerr: the "*arr" stack that finds, organises and subtitles the library.
- Navidrome: music streaming, plus a small downloader I wrote that tags files properly.
Network
- AdGuard Home + Unbound: ad blocking for every device in the house and my own recursive DNS resolver. How I set it up.
- Nginx Proxy Manager: friendly local names with HTTPS for every service.
- Tailscale: remote access from my phone without opening a single port on the router.
Smart home
- Home Assistant, Zigbee2MQTT and Mosquitto for sensors. The time Zigbee2MQTT restarted 22,000 times.
- Frigate: camera recording with object detection.
AI
- Ollama + Open WebUI + SearXNG: a private ChatGPT-style assistant with web search, squeezed onto a 4 GB GPU. What actually fits.
Game servers
- Valheim dedicated server for my friends. Setup guide.
- Crafty Controller for Minecraft, including heavy modpacks like All The Mods 10.
Everything else
- Vaultwarden: self-hosted password manager (Bitwarden compatible).
- Homarr: a dashboard with a tile for every service.
- Uptime Kuma and Netdata: monitoring and alerts.
- Portainer: a web UI for Docker when I'm too lazy for the terminal.
The rules I run it by
- No port forwards. Nothing on this server is reachable from the internet. Remote access goes through Tailscale. Why.
- Nightly backups of every config. The script.
- Everything in Compose files, so any service can be rebuilt in a minute.
- Write it down when it breaks. That's what this site is.