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