|
|
#!/bin/bash |
|
|
|
|
|
|
|
|
MUSIC_DIR=${MUSIC_DIR:-/music} |
|
|
DATASET_MUSIC_NAME=${DATASET_MUSIC_NAME:-"your-username/music-dataset"} |
|
|
MUSIC_TOKEN=${MUSIC_TOKEN:-""} |
|
|
BACKUP_DATASET_ID=${BACKUP_DATASET_ID:-"your-username/navidrome-backup"} |
|
|
BACKUP_INTERVAL=${BACKUP_INTERVAL:-3600} |
|
|
MUSIC_UPDATE_INTERVAL=${MUSIC_UPDATE_INTERVAL:-3600} |
|
|
|
|
|
echo "[INFO] Starting Navidrome setup" |
|
|
|
|
|
|
|
|
mkdir -p ${MUSIC_DIR} |
|
|
mkdir -p /data/cache |
|
|
mkdir -p /.cache |
|
|
chmod -R 755 ${MUSIC_DIR} |
|
|
chmod -R 755 /data |
|
|
chmod -R 755 /.cache |
|
|
|
|
|
|
|
|
source /venv/bin/activate |
|
|
|
|
|
|
|
|
if [ -n "$BACKUP_DATASET_ID" ] && [ -n "$MUSIC_TOKEN" ]; then |
|
|
echo "[INFO] Attempting to restore from backup..." |
|
|
python /backup.py download "$MUSIC_TOKEN" "$BACKUP_DATASET_ID" "/data" |
|
|
fi |
|
|
|
|
|
|
|
|
if [ -n "$DATASET_MUSIC_NAME" ] && [ -n "$MUSIC_TOKEN" ]; then |
|
|
echo "[INFO] Starting music update process..." |
|
|
python /update_music.py "$DATASET_MUSIC_NAME" "$MUSIC_TOKEN" "$MUSIC_DIR" "$MUSIC_UPDATE_INTERVAL" "false" & |
|
|
MUSIC_UPDATE_PID=$! |
|
|
echo "[INFO] Music update process started with PID: $MUSIC_UPDATE_PID" |
|
|
else |
|
|
echo "[WARNING] Music update disabled. Set DATASET_MUSIC_NAME and MUSIC_TOKEN to enable." |
|
|
fi |
|
|
|
|
|
|
|
|
echo "[INFO] Checking music directory..." |
|
|
ls -la ${MUSIC_DIR} |
|
|
|
|
|
|
|
|
backup_data() { |
|
|
while true; do |
|
|
echo "[INFO] Starting backup process $(date)" |
|
|
|
|
|
if [ -d "/data" ]; then |
|
|
echo "[INFO] Backing up Navidrome data to HuggingFace..." |
|
|
python /backup.py upload "$MUSIC_TOKEN" "$BACKUP_DATASET_ID" "/data" |
|
|
else |
|
|
echo "[WARNING] Data directory does not exist, skipping backup..." |
|
|
fi |
|
|
|
|
|
echo "[INFO] Next backup in ${BACKUP_INTERVAL} seconds..." |
|
|
sleep $BACKUP_INTERVAL |
|
|
done |
|
|
} |
|
|
|
|
|
|
|
|
if [ -n "$BACKUP_DATASET_ID" ] && [ -n "$MUSIC_TOKEN" ]; then |
|
|
echo "[INFO] Starting backup process with dataset: ${BACKUP_DATASET_ID}" |
|
|
backup_data & |
|
|
BACKUP_PID=$! |
|
|
echo "[INFO] Backup process started with PID: $BACKUP_PID" |
|
|
else |
|
|
echo "[WARNING] Backup disabled. Set BACKUP_DATASET_ID and MUSIC_TOKEN to enable." |
|
|
fi |
|
|
|
|
|
|
|
|
NAVIDROME_PATH=$(which navidrome || find /app -name navidrome -type f 2>/dev/null | head -1) |
|
|
|
|
|
if [ -z "$NAVIDROME_PATH" ]; then |
|
|
echo "[ERROR] Could not find navidrome executable" |
|
|
exit 1 |
|
|
else |
|
|
echo "[INFO] Found navidrome at: $NAVIDROME_PATH" |
|
|
|
|
|
echo "[INFO] Starting Navidrome..." |
|
|
exec $NAVIDROME_PATH |
|
|
fi |