Stream / start.sh
madiba-elate's picture
Update start.sh
990c86c verified
Raw
History Blame Contribute Delete
2.42 kB
#!/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 '<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"