Spaces:
Running
Running
Create entrypoint.sh
Browse files- 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
|