gl / run.sh
jxdn123's picture
Update run.sh
72c241b verified
#!/usr/bin/env sh
set -euo pipefail
# --------- 诊断输出(简短,不泄露敏感信息) ---------
echo "[diag] id: $(id)"
echo "[diag] PORT=${PORT:-7860} DRIVER=${DATABASE_DRIVER:-sqlite}"
# --------- 一次性迁移开关 ---------
# 在 HF 的 Secrets 里设置:
# MIGRATE_KEYS_ARGS=--to sk_your_new_32+_chars_key
# 或 MIGRATE_KEYS_ARGS=--from old_key
# 或 MIGRATE_KEYS_ARGS=--from old_key --to new_key
# 然后重启 Space;迁移完成后**删除** MIGRATE_KEYS_ARGS 并再重启一次恢复服务。
if [ "${MIGRATE_KEYS_ARGS:-}" != "" ]; then
echo "[migrate] running: /app/gpt-load migrate-keys ${MIGRATE_KEYS_ARGS}"
# 让带空格/引号的参数被正确拆分
# shellcheck disable=SC2086
set -- ${MIGRATE_KEYS_ARGS}
/app/gpt-load migrate-keys "$@"
echo "[migrate] done. (remove MIGRATE_KEYS_ARGS and restart to run server)"
exit 0
fi
# --------- SQLite 目录兜底(你现在用 Postgres 可忽略) ---------
if [ "${DATABASE_DRIVER:-sqlite}" = "sqlite" ]; then
DB_PATH="${DATABASE_DSN:-/app/data/gpt-load.db}"
DB_DIR="$(dirname "$DB_PATH")"
# /app 在 Dockerfile 中已设置为 root 组可写(gid=0),HF 运行 gid=0
mkdir -p "$DB_DIR" || true
fi
# --------- 直接启动应用(应用内部会读取 PORT=7860) ---------
exec /app/gpt-load