File size: 2,424 Bytes
2922daf
 
 
 
 
 
990c86c
bb8ca73
 
dbace9d
2922daf
90ec3f6
2922daf
dc40500
2922daf
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
990c86c
 
 
 
 
 
 
 
 
 
 
dbace9d
 
 
 
 
bb8ca73
 
dbace9d
bb8ca73
 
 
 
dc40500
bb8ca73
dbace9d
 
bb8ca73
 
3709f6a
dbace9d
d50baa4
 
90ec3f6
 
bb8ca73
dbace9d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#!/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"