zxwreader commited on
Commit
024509a
·
verified ·
1 Parent(s): 145c0ee

Create start.sh

Browse files
Files changed (1) hide show
  1. start.sh +82 -0
start.sh ADDED
@@ -0,0 +1,82 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/bash
2
+
3
+ # 设置默认值
4
+ MUSIC_DIR=${MUSIC_DIR:-/music}
5
+ DATASET_MUSIC_NAME=${DATASET_MUSIC_NAME:-"your-username/music-dataset"}
6
+ MUSIC_TOKEN=${MUSIC_TOKEN:-""}
7
+ BACKUP_DATASET_ID=${BACKUP_DATASET_ID:-"your-username/navidrome-backup"}
8
+ BACKUP_INTERVAL=${BACKUP_INTERVAL:-3600} # 默认1小时备份一次
9
+ MUSIC_UPDATE_INTERVAL=${MUSIC_UPDATE_INTERVAL:-3600} # 默认1小时更新一次音乐
10
+
11
+ echo "[INFO] Starting Navidrome setup"
12
+
13
+ # 确保目录存在并有正确权限
14
+ mkdir -p ${MUSIC_DIR}
15
+ mkdir -p /data/cache
16
+ mkdir -p /.cache
17
+ chmod -R 755 ${MUSIC_DIR}
18
+ chmod -R 755 /data
19
+ chmod -R 755 /.cache
20
+
21
+ # 激活Python虚拟环境
22
+ source /venv/bin/activate
23
+
24
+ # 恢复备份(如果存在)
25
+ if [ -n "$BACKUP_DATASET_ID" ] && [ -n "$MUSIC_TOKEN" ]; then
26
+ echo "[INFO] Attempting to restore from backup..."
27
+ python /backup.py download "$MUSIC_TOKEN" "$BACKUP_DATASET_ID" "/data"
28
+ fi
29
+
30
+ # 启动音乐更新进程
31
+ if [ -n "$DATASET_MUSIC_NAME" ] && [ -n "$MUSIC_TOKEN" ]; then
32
+ echo "[INFO] Starting music update process..."
33
+ python /update_music.py "$DATASET_MUSIC_NAME" "$MUSIC_TOKEN" "$MUSIC_DIR" "$MUSIC_UPDATE_INTERVAL" "false" &
34
+ MUSIC_UPDATE_PID=$!
35
+ echo "[INFO] Music update process started with PID: $MUSIC_UPDATE_PID"
36
+ else
37
+ echo "[WARNING] Music update disabled. Set DATASET_MUSIC_NAME and MUSIC_TOKEN to enable."
38
+ fi
39
+
40
+ # 检查音乐目录
41
+ echo "[INFO] Checking music directory..."
42
+ ls -la ${MUSIC_DIR}
43
+
44
+ # 备份函数
45
+ backup_data() {
46
+ while true; do
47
+ echo "[INFO] Starting backup process $(date)"
48
+
49
+ if [ -d "/data" ]; then
50
+ echo "[INFO] Backing up Navidrome data to HuggingFace..."
51
+ python /backup.py upload "$MUSIC_TOKEN" "$BACKUP_DATASET_ID" "/data"
52
+ else
53
+ echo "[WARNING] Data directory does not exist, skipping backup..."
54
+ fi
55
+
56
+ echo "[INFO] Next backup in ${BACKUP_INTERVAL} seconds..."
57
+ sleep $BACKUP_INTERVAL
58
+ done
59
+ }
60
+
61
+ # 如果设置了备份数据集ID,则启动备份进程
62
+ if [ -n "$BACKUP_DATASET_ID" ] && [ -n "$MUSIC_TOKEN" ]; then
63
+ echo "[INFO] Starting backup process with dataset: ${BACKUP_DATASET_ID}"
64
+ backup_data &
65
+ BACKUP_PID=$!
66
+ echo "[INFO] Backup process started with PID: $BACKUP_PID"
67
+ else
68
+ echo "[WARNING] Backup disabled. Set BACKUP_DATASET_ID and MUSIC_TOKEN to enable."
69
+ fi
70
+
71
+ # 找到navidrome可执行文件的路径
72
+ NAVIDROME_PATH=$(which navidrome || find /app -name navidrome -type f 2>/dev/null | head -1)
73
+
74
+ if [ -z "$NAVIDROME_PATH" ]; then
75
+ echo "[ERROR] Could not find navidrome executable"
76
+ exit 1
77
+ else
78
+ echo "[INFO] Found navidrome at: $NAVIDROME_PATH"
79
+ # 启动Navidrome
80
+ echo "[INFO] Starting Navidrome..."
81
+ exec $NAVIDROME_PATH
82
+ fi