javaeeduke commited on
Commit
ecf967e
·
verified ·
1 Parent(s): d468049

Create entrypoint.sh

Browse files
Files changed (1) hide show
  1. entrypoint.sh +39 -0
entrypoint.sh ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/sh
2
+ set -u
3
+
4
+ mkdir -p /root/.omniroute /data /root/.config/rclone
5
+
6
+ # 把 HF Secret 里的 rclone 配置写入文件
7
+ if [ -n "${RCLONE_CONF:-}" ]; then
8
+ echo "$RCLONE_CONF" > /root/.config/rclone/rclone.conf
9
+ fi
10
+
11
+ # Google Drive 上的备份目录(remote 名:路径)
12
+ GD_REMOTE="gdrive:om-backup"
13
+
14
+ # ── 开机:从 Google Drive 拉取备份覆盖恢复 ──
15
+ rclone copy "$GD_REMOTE/omni_storage.sqlite" /root/.omniroute/ --no-traverse 2>/dev/null \
16
+ && mv -f /root/.omniroute/omni_storage.sqlite /root/.omniroute/storage.sqlite \
17
+ && echo "✅ 从 GDrive 恢复 storage.sqlite" || echo "⚠️ GDrive 无 storage 备份,跳过"
18
+
19
+ rclone copy "$GD_REMOTE/omni_settings.json" /root/.omniroute/ --no-traverse 2>/dev/null \
20
+ && mv -f /root/.omniroute/omni_settings.json /root/.omniroute/settings.json \
21
+ && echo "✅ 从 GDrive 恢复 settings.json" || echo "⚠️ GDrive 无 settings 备份,跳过"
22
+
23
+ # ── 每 60 秒:一致性快照后覆盖上传到 Google Drive ──
24
+ (while true; do
25
+ sleep 60
26
+ if [ -f /root/.omniroute/storage.sqlite ]; then
27
+ if sqlite3 /root/.omniroute/storage.sqlite ".backup '/data/omni_storage.sqlite'" 2>/dev/null; then
28
+ rclone copyto /data/omni_storage.sqlite "$GD_REMOTE/omni_storage.sqlite" 2>/dev/null \
29
+ && echo "💾 [backup] storage.sqlite → GDrive(覆盖)"
30
+ fi
31
+ fi
32
+ if [ -f /root/.omniroute/settings.json ]; then
33
+ rclone copyto /root/.omniroute/settings.json "$GD_REMOTE/omni_settings.json" 2>/dev/null \
34
+ && echo "💾 [backup] settings.json → GDrive(覆盖)"
35
+ fi
36
+ done) &
37
+
38
+ node /app/download_server.js &
39
+ exec env PORT=8860 omniroute