Docker Infrastructure (Homelab)¶
Überblick¶
Docker läuft im Proxmox-LXC CT 101 auf dem Host pve.
graph TD
Proxmox --> Docker
Docker --> Plex
Docker --> Tandoor
Docker --> CodeServer
Docker --> Portainer
Docker --> PDF
Docker --> Jellyfin
¶
graph TD
Proxmox --> Docker
Docker --> Plex
Docker --> Tandoor
Docker --> CodeServer
Docker --> Portainer
Docker --> PDF
Docker --> JellyfinAktive Dienste¶
- Plex
- Tandoor
- Code Server
- Portainer
- Homepage
- Nginx Proxy Manager
- Uptime Kuma
- Stirling-PDF
- Jellyfin
Wichtige Systeme¶
- VM 100: Home Assistant
- CT 101: Docker / Plex / Tandoor / Code Server / Portainer
- VM 200: Windows
Verzeichnisstruktur¶
text
/opt/docker
├── backups/
├── compose/
│ ├── code-server/
│ ├── plex/
│ └── tandoor/
├── data/
│ ├── code-server/
│ ├── plex/
│ ├── tandoor/
│ ├── homepage/
│ └── npm/
└── jellyfin/
└── stirling-pdf/
├── docs/
├── portainer/
├── projects/
└── scripts/
Hinweis:
- compose/ = Stacks
- data/ = persistente Volumes z.B. Homepage Yaml
- projects/ = Git Repos
Secrets¶
Secrets liegen in Portainer Stacks.
.env Dateien dienen nur als Referenz.
Medienpfade für Plex¶
Synology Quellen¶
- Movies: 192.168.0.143:/volume1/video/Movies
- Series: 192.168.0.143:/volume1/video/serien
- Music: 192.168.0.143:/volume1/music
Mounts im Proxmox Host¶
- /mnt/synology/movies
- /mnt/synology/series
- /mnt/synology/music
Mounts im Docker-LXC¶
- /mnt/media/movies
- /mnt/media/series
- /mnt/media/music
Plex Container¶
- /movies
- /series
- /music
Plex¶
Compose¶
/opt/docker/compose/plex/docker-compose.yml
Volumes¶
- /opt/docker/plex/config:/config
- /mnt/media/movies:/movies
- /mnt/media/series:/series
- /mnt/media/music:/music
Hinweise¶
- Kein Plex Pass
- /dev/dri durchgereicht
- RAM Transcoding aktiv
- Remote Zugriff funktioniert
Update¶
bash
cd /opt/docker/compose/plex
docker compose pull
docker compose up -d
Restart¶
docker restart plex
Tandoor¶
Pfad: /opt/docker/tandoor
Update: docker compose pull docker compose up -d
Code Server¶
Pfad: /opt/docker/code-server
Struktur: - data - extensions - workspace
Projektpfad: /opt/docker/projects
Portainer¶
Portainer dient als Verwaltung.
"Limited Control" bei manchen Stacks ist normal.
Logging¶
text
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
DNS & Netzwerk¶
- DNS: AdGuard (192.168.0.48)
- Upstream: Unbound (192.168.0.50)
- Domains intern: *.home
- Domains extern: *.salassi.de (Cloudflare Tunnel)
Reverse Proxy¶
- Intern: Nginx Proxy Manager
- Extern: Cloudflare Tunnel
Proxmox Backups¶
- Storage: synology-backups
- Zeit: 01:00 täglich
- Enthalten: 100,101
- Retention: keep-last=7
Hinweis: Medien werden NICHT mitgesichert (liegen auf Synology).
Restore¶
pve → synology-backups → Backup → Restore
Windows VM¶
Zweck: - Tools - Installationsdateien - USB Utilities
Wichtige Befehle¶
Docker LXC betreten¶
bash
pct enter 101
Container anzeigen¶
bash
docker ps
Compose deploy¶
bash
docker compose up -d
Update¶
bash
docker compose pull
docker compose up -d
Update Strategie¶
Keine automatischen Updates.
Vorgehen¶
- Backup prüfen
- manuelles Update
- prüfen
Script¶
/opt/docker/scripts/check-updates.sh
Hinweise¶
- Keine offenen Ports auf FritzBox
- Zugriff extern nur über Cloudflare
- Interne Services über *.home
- DNS zentral über AdGuard