My home server running all my self-hosted services.
/dev/sda1)/dev/dri for hardware transcoding)Debian 12 (Bookworm), kernel 6.1.0-41-amd64.
/app-config/ # All container configs
docker-compose.yaml # Single compose file for everything
jackett/
plex/
qbittorrent/
radarr/
sonarr/
tautulli/
adguardhome/
adguardhome/
/data/ # All media and downloads
media/
movies/
tv/
torrents/
downloads/
All services run from a single docker-compose.yaml in /app-config/. Everything uses PUID=1000 / PGID=1000 and TZ=Europe/Paris.
192.168.0.15
homelab.internal (via AdGuard Home DNS rewrite)Watchtower auto-updates all containers daily at 02:00 and cleans up old images.
Two scripts monitored by Cronitor:
/usr/local/bin/disk_full.sh -- if /dev/sda1 goes above 90% capacity, clears /data/torrents/downloads/ and restarts qBittorrent/usr/local/bin/check.sh -- heartbeat ping to confirm the server is alive| Service | Port | Purpose |
|---|---|---|
| Plex | host network | Media server |
| qBittorrent | 8080 | Download client |
| Radarr | 7878 | Movie management |
| Sonarr | 8989 | TV show management |
| Jackett | 9117 | Torrent indexer proxy |
| Byparr | 8191 | Cloudflare bypass for Jackett |
| Tautulli | 8181 | Plex monitoring/stats |
| Dispatcharr | 9191 | IPTV management |
| AdGuard Home | 53, 80, 3000 | Network-wide DNS ad blocking |
| Watchtower | -- | Auto-update containers |
| Twingate | -- | Remote access connector |
Created 2026-02-07T23:15:12+01:00, updated 2026-02-08T00:32:30+01:00 · History · Edit