Skip to content

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

Aktive 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