Moves git-compatible content from Nextcloud (Botomir/Projekte/Angefangen/Kino-Projekt) into this repo per cleanup request, under nextcloud-import/ to avoid colliding with the actively maintained backend/frontend/worker layout: - status/planning docs (Botomir-Status.md, Plan-Botomir.md, Projektbeschreibung.md) - docs/ (deployment.md, provider-policy.md) - backend-nextcloud-variant/ (older app/ layout, kept for reference only) - plugin.video.xstream/, script.module.xstreamscraper/ (vendored Kodi addon source) A third-party Firefox extension folder was intentionally left in Nextcloud (unrelated vendor code, not project source).
1.3 KiB
1.3 KiB
Deployment
.envauf dem Zielhost aus.env.exampleerstellen;JELLYFIN_API_KEY,KINOPROJEKT_ADMIN_PASSWORD_HASHundKINOPROJEKT_SESSION_SECRETnur dort oder in Vaultwarden speichern.- Medien- und Datenverzeichnisse als Volumes mounten.
- Dienst nur Mesh-only veröffentlichen und den App-Login aktivieren.
- Nach Start prüfen:
curl http://127.0.0.1:8080/health
curl -X POST http://127.0.0.1:8080/api/probe \
-H 'content-type: application/json' \
--data '{"url":"http://localhost/video.mp4"}'
# Erwartet: HTTP 400, weil private/loopback Ziele abgelehnt werden.
- Login prüfen: Ohne Session antworten geschützte API-Routen mit
401; nachPOST /api/auth/loginsetzt die App einHttpOnly; Secure; SameSite=LaxSession-Cookie. - Zielprofile prüfen: Ein Import mit
target_profile=film|serie|clipmuss unter/jellyfin/Filme,/jellyfin/Serien/.../Staffel<N>oder/jellyfin/YouTube-Mediatheklanden. Der Ordner/jellyfin/YouTube-Mediatheksollte auf dem Zielhostjellyfinuser:mediagehören und setgid wie die vorhandenen Bibliotheken nutzen. - Für echte Importe muss
yt-dlpim Container/Host verfügbar sein; das Dockerfile installiert es. - Jellyfin-Refresh wird über
POST <JELLYFIN_URL>/Library/RefreshmitX-Emby-Tokenausgelöst, wennJELLYFIN_API_KEYgesetzt ist.