mydocker/README.md

6.4 KiB

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

Service URL Description
Traefik https://traefik.sebson.space Reverse proxy, TLS, geo-blocking
CrowdSec local only IPS, log analysis, Telegram alerts
Bitwarden https://bward.sebson.space Password manager (Vaultwarden + YubiKey 2FA)

Home Automation & IoT

Service URL Description
Home Assistant https://ha.sebson.space Central automation engine
ESPHome http://localhost:6052 ESP8266/ESP32 firmware OTA
Mosquitto 192.168.1.132:1883 MQTT broker
UniFi https://192.168.1.239:8443 Network controller (MongoDB backend)
Brana Frontend https://brana.sebson.space Gate control panel (mobile-first)
HA Dashboard https://hadash.sebson.space Flask ops dashboard

Surveillance & Cameras

Service URL Description
Frigate http://acemagic:5000 NVR + AI object detection (Coral TPU)
Camera LLM local API LLM-powered camera memory (ChromaDB RAG)
Timelapse cron-based Auto timelapse generation from camera frames

Media & Storage

Service URL Description
Jellyfin https://jfin.sebson.space Media server (movies, series, music)
Immich https://immch.sebson.space Self-hosted photo gallery (AI face recognition)
Prowlarr http://localhost:9696 Indexer manager (VPN-routed)
Duplicati http://localhost:8200 Encrypted incremental backups

Monitoring Stack

[Docker Containers] ──> Promtail ──> Loki ──> Grafana
     |                                      ^
     v                                      |
  cAdvisor ──> Prometheus ──> VictoriaMetrics
     |                    |
  Node Exporter ──────────┘
  mktxp (MikroTik)
  ping-exporter
  smartctl-exporter
  PostgreSQL exporter
Service URL Description
Prometheus https://prom.sebson.space Metrics collection (30d retention)
Grafana https://grafana.sebson.space Dashboards + alerts (Telegram)
Uptime Kuma https://kuma.sebson.space External uptime monitoring + status page
Loki http://loki:3100 Log aggregation (31d retention)
Promtail port 9080 Log shipper (Docker socket discovery)
mktxp http://localhost:49090 MikroTik router metrics
ping-exporter http://localhost:9427 ICMP latency monitoring

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.