| #!/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 |