#!/bin/bash set -e MEDIA_DIR=/data/media/movies TV_DIR=/data/media/tvshows CONFIG_DIR=/data/config DATA_DIR=/data/data CACHE_DIR=/data/cache LOG_DIR=/data/log LIBRARY_FILE=/defaults/library.json mkdir -p "$MEDIA_DIR" "$TV_DIR" "$CONFIG_DIR" "$DATA_DIR" "$CACHE_DIR" "$LOG_DIR" # Téléchargement des médias if [ -f "$LIBRARY_FILE" ]; then python3 -c " import json, os, subprocess with open('$LIBRARY_FILE') as f: data = json.load(f) for name, url in data.items(): dest = os.path.join('$MEDIA_DIR', name + '.' + url.split('.')[-1]) if os.path.exists(dest): print(f'{name} déjà présent, ignoré.') continue print(f'Téléchargement de {name}…') ret = subprocess.run(['wget', '--tries=3', '--retry-connrefused', '-c', '-O', dest, url]).returncode if ret == 0: print(f'{name} téléchargé avec succès.') else: print(f'Échec du téléchargement de {name}') " fi chown -R 1000:1000 /data # === Nettoyage des marqueurs parasites === echo "Nettoyage des anciens marqueurs Jellyfin…" rm -f "$CONFIG_DIR/.jellyfin-data" "$DATA_DIR/.jellyfin-config" # Si un ancien system.xml existe avec un mauvais port, on le supprime pour le régénérer if [ -f "$CONFIG_DIR/config/system.xml" ]; then if ! grep -q '7860' "$CONFIG_DIR/config/system.xml"; then rm -f "$CONFIG_DIR/config/system.xml" fi fi # Création du fichier de configuration système (port 7860) si absent SYSTEM_XML="$CONFIG_DIR/config/system.xml" if [ ! -f "$SYSTEM_XML" ]; then echo "Création du fichier system.xml avec le port 7860…" mkdir -p "$(dirname "$SYSTEM_XML")" cat > "$SYSTEM_XML" <<'XML' 7860 8920 false 7860 true / XML chown 1000:1000 "$SYSTEM_XML" fi echo "Démarrage de Jellyfin…" exec gosu 1000 /jellyfin/jellyfin \ --webdir=/jellyfin/jellyfin-web \ --ffmpeg=/usr/lib/jellyfin-ffmpeg/ffmpeg \ --datadir="$DATA_DIR" \ --configdir="$CONFIG_DIR" \ --cachedir="$CACHE_DIR" \ --logdir="$LOG_DIR"