Spaces:
Paused
Paused
| 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 '<HttpServerPortNumber>7860</HttpServerPortNumber>' "$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' | |
| <?xml version="1.0" encoding="utf-8"?> | |
| <ServerConfiguration xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> | |
| <HttpServerPortNumber>7860</HttpServerPortNumber> | |
| <HttpsPortNumber>8920</HttpsPortNumber> | |
| <EnableHttps>false</EnableHttps> | |
| <PublicPort>7860</PublicPort> | |
| <IsPortAuthorized>true</IsPortAuthorized> | |
| <BaseUrl>/</BaseUrl> | |
| </ServerConfiguration> | |
| 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" |