MyDocker - Home Infrastructure Stack
Docker Compose based home infrastructure with 40+ services. Domain: sebson.space
Quick Start
cd /home/seba/mydocker
docker compose up -d # Start all services
docker compose down # Stop all
docker compose ps # Running containers
docker compose logs -f <service> # Follow logs
docker compose restart <service> # Restart single service
./upgrade-container-by-name.sh <service> # Upgrade service
./upgrade-container-by-name.sh <service> prune # Upgrade + prune old images
./backup_db.sh # DB backup -> Google Drive
Architecture Overview
Internet
|
[ Traefik v3.6.8 ]
TLS (Let's Encrypt ACME)
|
┌─────────────────────┼─────────────────────┐
| | |
[Public Services] [Monitoring Stack] [Security Layer]
| | |
Home Assistant Prometheus CrowdSec
Bitwarden Grafana traefik-bouncer
Immich VictoriaMetrics
Jellyfin Loki + Promtail
HA Dashboard cAdvisor
Brana Frontend Node Exporter
OpenClaw mktxp, ping-exporter
Smartctl Exporter
Services by Category
Gateway & Security
Home Automation & IoT
Surveillance & Cameras
Media & Storage
Monitoring Stack
[Docker Containers] ──> Promtail ──> Loki ──> Grafana
| ^
v |
cAdvisor ──> Prometheus ──> VictoriaMetrics
| |
Node Exporter ──────────┘
mktxp (MikroTik)
ping-exporter
smartctl-exporter
PostgreSQL exporter
Custom Services
| Service |
Description |
| side-agent |
Camera snapshot detector, container version checker, backup scheduler |
| log-ingester |
RAG ingestion of Frigate/HA/Docker logs into ChromaDB |
| OpenClaw |
Personal AI assistant (CLI, Telegram, Web UI) |
Network Architecture
Host Network Services
These services run on network_mode: host for mDNS, Bluetooth, or device discovery:
- Home Assistant, ESPHome, Mosquitto, UniFi, Node Exporter, ping-exporter
VPN Namespace (Gluetun)
Services routed through NordVPN (Germany) via network_mode: "service:gluetun":
- qBittorrent, Radarr, Prowlarr
Storage Layout
| Mount |
Capacity |
Purpose |
/media/seagata16t |
16TB HDD |
Immich photos, Jellyfin media, timelapses, camera archives |
/media/evo2t |
2TB SSD |
Frigate recordings, Duplicati backups, side-agent data |
/media/asustor |
NAS |
rsync backup destination |
/media/wd1t |
1TB |
Secondary media storage |
Key Files
| File |
Purpose |
docker-compose.yaml |
Single source of truth (2000+ lines) |
.env |
Secrets and environment variables |
./upgrade-container-by-name.sh |
Per-service container upgrade |
./backup_db.sh |
PostgreSQL backup to Google Drive via rclone |
./watchdog.sh |
Service health monitoring |
./truncate_logs.sh |
Log file size management |
side-agent/manifest/container_versions.yaml |
Tracked container versions |
Torrent Box (Subproject)
Separate Makefile-managed stack in ./torrent-box-with-vpn/:
cd torrent-box-with-vpn
make start / stop / restart
make update_containers # pull + restart all
make generate_certificate
make backup
The legacy transmission-vpn service in docker-compose is deprecated and replaced by this subproject.