Skip to content

Docker DE

TheMRX13 edited this page Jul 3, 2026 · 3 revisions

Docker

🌐 English · Deutsch

Offizielles Image: ghcr.io/themrx13/mrx-aniworld-downloader:latest (Debian-basiert, inkl. FFmpeg, mpv, Xvfb und Patchright-Chromium für Captchas).

docker-compose (empfohlen)

services:
  aniworld:
    container_name: aniworld-downloader
    image: ghcr.io/themrx13/mrx-aniworld-downloader:latest
    ports:
      - "8080:8080"
    volumes:
      - ./Downloads:/app/Downloads          # Downloads auf dem Host
      - aniworld-data:/home/aniworld/.aniworld  # 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:
  aniworld-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 aniworld).

Ersteinrichtung

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

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

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

    environment:
      ANIWORLD_WEB_ADMIN_USER: "admin"
      ANIWORLD_WEB_ADMIN_PASS: "changeme"

Optionale Umgebungsvariablen

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

    environment:
      # SSO / OIDC (siehe Authentifizierung)
      ANIWORLD_WEB_SSO: "1"
      ANIWORLD_WEB_FORCE_SSO: "1"
      ANIWORLD_OIDC_ISSUER_URL: "https://keycloak.example.com/realms/myrealm"
      ANIWORLD_OIDC_CLIENT_ID: "aniworld"
      ANIWORLD_OIDC_CLIENT_SECRET: "secret"
      # Reverse Proxy
      ANIWORLD_WEB_BASE_URL: "https://aniworld.example.com"

Technische Details

  • Der Container startet aniworld -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 ANIWORLD_DOWNLOAD_PATH vorbelegt).

Reverse Proxy (nginx, Traefik, …)

  1. ANIWORLD_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 aniworld-data-Volumes erhalten.

Clone this wiki locally