Skip to content

Docker DE

TheMRX13 edited this page Jul 6, 2026 · 3 revisions

Docker

🌐 English · Deutsch

Offizielles Image: ghcr.io/pd-codes/mediaforge:latest (Debian-basiert, inkl. FFmpeg, mpv, Xvfb und Patchright-Chromium für Captchas).

Warning

NAS-Geräte (UGREEN, Synology): Beide werden unterstützt, allerdings ist der Code nicht für diese beiden NAS-Plattformen optimiert (und wird es auch nicht) — mit wiederkehrenden Problemen ist zu rechnen (Docker-Rechte, Speicher-/DSM-Eigenheiten, der Captcha-Browser). Wir helfen gerne bei der Installation, optimieren MediaForge aber nicht für UGREEN oder Synology. Für einen möglichst reibungslosen Betrieb einen normalen Linux-, Windows- oder macOS-Docker-Host verwenden.

docker-compose (empfohlen)

services:
  mediaforge:
    container_name: mediaforge
    image: ghcr.io/pd-codes/mediaforge:latest
    ports:
      - "8080:8080"
    volumes:
      - ./Downloads:/app/Downloads          # Downloads auf dem Host
      - mediaforge-data:/home/mediaforge/.mediaforge  # Konfiguration & Datenbank
    # Sicherheits-Härtung
    cap_drop:
      - ALL
    security_opt:
      - no-new-privileges:true
    read_only: true
    tmpfs:
      - /tmp:mode=1777,size=512m
      - /run:size=64m
    restart: unless-stopped

volumes:
  mediaforge-data:

Wichtig: ./Downloads vor dem ersten Start anlegen (mkdir -p Downloads) — sonst erstellt Docker den Ordner als root und es kommt zu Berechtigungsfehlern (der Container läuft als unprivilegierter Benutzer mediaforge).

Ersteinrichtung

Beim ersten Start erscheint der Setup-Token im Container-Log:

docker compose logs -f mediaforge
# → http://<HostIP>:8080/setup?token=<token> öffnen

Alternativ das Admin-Konto direkt per Umgebungsvariablen anlegen (überspringt die Setup-Seite):

    environment:
      MEDIAFORGE_WEB_ADMIN_USER: "admin"
      MEDIAFORGE_WEB_ADMIN_PASS: "changeme"

Optionale Umgebungsvariablen

Alle Einstellungen sind über die WebUI konfigurierbar und werden in der Datenbank gespeichert (Volume mediaforge-data). Env-Variablen sind nur für die Erstkonfiguration/Automation nützlich:

    environment:
      # SSO / OIDC (siehe Authentifizierung)
      MEDIAFORGE_WEB_SSO: "1"
      MEDIAFORGE_WEB_FORCE_SSO: "1"
      MEDIAFORGE_OIDC_ISSUER_URL: "https://keycloak.example.com/realms/myrealm"
      MEDIAFORGE_OIDC_CLIENT_ID: "mediaforge"
      MEDIAFORGE_OIDC_CLIENT_SECRET: "secret"
      # Reverse Proxy
      MEDIAFORGE_WEB_BASE_URL: "https://mediaforge.example.com"

Technische Details

  • Der Container startet mediaforge -wP 8080 -wN -wH 0.0.0.0 hinter einem Xvfb-Display (:99) — nötig, damit der Captcha-Browser auch headless eine „echte“ Anzeige hat.
  • Zeitzone/Locale sind auf Europe/Berlin / de_DE.UTF-8 voreingestellt (per TZ/LANG überschreibbar) — realistische Werte verbessern die Captcha-Erfolgsrate.
  • Healthcheck eingebaut: prüft alle 30 s, ob die WebUI antwortet.
  • Download-Pfad im Container: /app/Downloads (per MEDIAFORGE_DOWNLOAD_PATH vorbelegt).

Reverse Proxy (nginx, Traefik, …)

  1. MEDIAFORGE_WEB_BASE_URL auf die öffentliche https://-URL setzen (oder in der UI unter Einstellungen) — damit werden korrekte absolute URLs erzeugt und Secure-Cookies aktiviert.
  2. Beim OIDC-Provider https://<domain>/oidc/callback als Redirect-URI eintragen.
  3. WebSocket-Support ist nicht nötig; normale HTTP-Proxy-Konfiguration reicht.

Update

docker compose pull
docker compose up -d

Konfiguration und Queue bleiben dank des mediaforge-data-Volumes erhalten.

Clone this wiki locally