9230d0dd7a
Ampel / ampel (push) Successful in 29s
Weitergabe nicht durch Lesen geprueft, sondern indem ich mich wie ein fremder Rechner verhalten habe: frischer `git clone` von Gitea in ein leeres Verzeichnis, dann `./install.sh --nur-pruefen`. Ergebnis: 2,6 MB, alles gruen, Laufwerk samt richtigem sg-Knoten ueber die SCSI-Adresse erkannt. Der Weg selbst traegt. Drei Luecken sind dabei aufgefallen: 1. IN BEISPIELBEFEHLEN STAND MEINE IP. `install.ps1` und `remote-transcode-worker.yml` nannten im Aufruf-Beispiel 192.168.178.162 - also genau die Zeile, die ein Fremder kopiert. Jetzt Platzhalter, beim Windows-Installer mit dem Hinweis, wo die richtige IP steht (und dass es NICHT die des eigenen PCs ist - der haeufigste Irrtum). 2. DER ASSISTENT FRAGTE DEN MAKEMKV-BETA-KEY NICHT. Er stand in der README, in der .env und in den Einstellungen - nur nicht dort, wo man beim Einrichten hinsieht. Ein Fremder installiert also, legt eine Blu-ray ein und bekommt spaeter einen Fehlschlag, ohne dass ihn jemand darauf hingewiesen haette. Das ist die wahrscheinlichste Stolperstelle einer frischen Installation. Jetzt fragt der Assistent ihn ab, mit dem Unterschied im Klartext: DVDs gehen ohne, Blu-ray braucht ihn - und er ist NICHT der Disc-Schluessel einer 4K-Disc. 3. Eine Docstring nannte meine NAS-IP als Beispiel - jetzt neutral (//NAS/rippy). Tests und Log-Beispiele behalten die echten Namen: Sie dokumentieren Messungen, und genau das ist ihr Wert. 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=<LAN-IP-der-Rippy-Maschine> 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
|