aea26493db
DER BLOCKER aus dem SAVEPOINT v3.16 ist zu. Beide Installer (Kommandozeile und GUI) fragen GET /worker-setup/pfad-map, pruefen mit Test-Path, ob DIESER PC die Freigabe wirklich erreicht, und schreiben `set RIPPY_PATH_MAP=...` in start-tray.bat und start-worker.bat. Der Commander muss dafuer nichts ueber Container-Pfade wissen - das Feld bleibt leer, der Installer holt den Wert. Von Hand geht es trotzdem (Knopf "Von Rippy holen" bzw. -PfadMap), falls dieser PC die Freigabe anders erreicht. Ist nichts erreichbar, steht das als Klartext im Log samt dem haeufigsten Grund (fehlende Zugangsdaten - Freigabe einmal im Explorer oeffnen). Die Installation laeuft weiter: ein Worker, der sich meldet und ehrlich scheitert, ist besser als einer, der nicht existiert. Ein LEERES RIPPY_PATH_MAP wird bewusst nicht gesetzt - pfad_lokal() liest das als "kein Mapping", und die Fehlermeldung im Worker unterscheidet genau diese beiden Faelle. GUI: neues Feld samt Knopf, Fenster 560->648 px. Layout headless gerendert und angesehen (nichts ueberlappt, Umlaute korrekt), beide Dateien mit echtem PowerShell 5.1 auf Parser-Fehler geprueft, UTF-8-BOM erhalten. .exe neu gebaut. install.ps1 hatte durch ein Werkzeug LF statt CRLF bekommen - zurueckgedreht. remote-transcode-worker.yml richtiggestellt: Dort stand "mount -t nfs <rippy-host>:/srv/rippy" - das geht NICHT, auf der Rippy-Maschine laeuft kein NFS- und kein Samba-Server, sie ist selbst nur Client der NAS. Der Weg, der funktioniert: dieselbe Freigabe einhaengen, die auch Rippy nutzt. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
65 lines
3.4 KiB
YAML
65 lines
3.4 KiB
YAML
# Optionaler Remote-Transcode-Worker — für eine GPU-Maschine im Netz (Linux).
|
|
# Für Windows gibt es den nativen Weg: RippyWorkerSetup.exe (Einstellungen → Worker).
|
|
#
|
|
# ══ DAS ENTSCHEIDENDE: der Worker muss die Dateien SEHEN ══════════════════════
|
|
# Rippy schickt ihm Pfade wie /app/media/rippy/<job>/title_t00.mkv — Pfade
|
|
# INNERHALB des Rippy-Containers. Dieser Container muss dieselben Daten unter
|
|
# GENAU DEMSELBEN Pfad haben, sonst nimmt er die Aufgabe an und lehnt sie
|
|
# Millisekunden später ab („Keine Roh-MKVs gefunden" — genau so passiert am
|
|
# 26.07.2026, Job 95afdc89).
|
|
#
|
|
# Richtigstellung 26.07.2026: Hier stand vorher „mount -t nfs
|
|
# <rippy-host>:/srv/rippy /mnt/rippy". Das geht NICHT — auf der Rippy-Maschine
|
|
# läuft kein NFS- und kein Samba-Server, sie ist selbst nur Client der NAS.
|
|
# Der Weg, der funktioniert: DIESELBE Freigabe einhängen, die auch Rippy nutzt.
|
|
#
|
|
# Auf der GPU-Maschine:
|
|
# 1. Dieses Repo klonen (oder nur dieses File + Zugriff aufs Registry-Image)
|
|
# 2. Die Freigabe einhängen, die Rippy als Arbeitsverzeichnis UND Ablage
|
|
# benutzt (Einstellungen → Ripping). Heißt sie in Rippy „rippy", liegt
|
|
# sie dort unter /app/media/rippy — also z. B.:
|
|
# mount -t cifs //NAS/rippy /mnt/rippy-freigabe -o guest,iocharset=utf8
|
|
# 3. Unten RIPPY_HOST setzen, den Freigabe-Pfad im volumes-Block anpassen
|
|
# und starten:
|
|
# RIPPY_HOST=192.168.178.162 docker compose \
|
|
# -f deploy/remote-transcode-worker.yml up -d --build
|
|
#
|
|
# Passt der Pfad im Container nicht (weil die Freigabe woanders hängt), gibt es
|
|
# als Ausweg RIPPY_PATH_MAP — dieselbe Übersetzung, die der Windows-Worker
|
|
# nutzt, Format: /app/media/rippy=/mnt/anderer-pfad (Paare per „;").
|
|
# Den fertigen Wert nennt GET /worker-setup/pfad-map.
|
|
#
|
|
# Der Worker meldet seine Encoder-Fähigkeiten automatisch — er taucht danach
|
|
# unter Einstellungen → Worker auf. Er bedient NUR die transcode-Queue;
|
|
# gerippt wird weiterhin dort, wo das Laufwerk hängt.
|
|
|
|
services:
|
|
transcode-worker:
|
|
build:
|
|
context: ..
|
|
dockerfile: docker/worker/Dockerfile
|
|
command: ["celery", "-A", "celery_app", "worker", "--loglevel=info", "-Q", "transcode", "-n", "gpu-worker@%h"]
|
|
environment:
|
|
- REDIS_URL=redis://${RIPPY_HOST:?RIPPY_HOST setzen}:6379/0
|
|
- DATABASE_URL=postgresql://rippy:rippy@${RIPPY_HOST}:5432/rippy
|
|
- RIP_OUTPUT_DIR=/app/media
|
|
- RAW_DIR=/app/temp/raw
|
|
# Anzeigename in Einstellungen → Worker — z. B. den Maschinennamen
|
|
# setzen: WORKER_NAME=gaming-pc docker compose -f … up -d
|
|
- WORKER_NAME=${WORKER_NAME:-transcode-worker}
|
|
# Serien-Episoden-Matching fragt die Rippy-API nach Laufzeiten
|
|
- API_URL=http://${RIPPY_HOST}:8000
|
|
# Nur nötig, wenn die Freigabe hier NICHT unter demselben Pfad liegt wie
|
|
# in Rippy. Fertigen Wert holen: curl http://${RIPPY_HOST}/api/worker-setup/pfad-map
|
|
- RIPPY_PATH_MAP=${RIPPY_PATH_MAP:-}
|
|
volumes:
|
|
# LINKS der Pfad auf DIESER Maschine, RECHTS der Pfad, den Rippy nennt.
|
|
# Rechts muss stehen, was in Rippy als Speicherziel heißt: ein Ziel
|
|
# namens „rippy" ist dort /app/media/rippy. Prüfen mit
|
|
# curl http://<rippy-host>/api/worker-setup/pfad-map
|
|
- /mnt/rippy-freigabe:/app/media/rippy
|
|
devices:
|
|
# GPU für Hardware-Encoding (AMD/Intel: /dev/dri; NVIDIA: nvidia-runtime)
|
|
- /dev/dri:/dev/dri
|
|
restart: unless-stopped
|