#!/bin/sh set -e # 使用镜像内已构建好的 venv,避免启动时联网 re-sync export PATH="/app/.venv/bin:$PATH" # 确保 SQLite 目录存在(PVC 挂载点) mkdir -p "$(dirname "${SQLITE_PATH:-/data/item_bank.db}")" 2>/dev/null || true # 跑数据库迁移 echo "Running database migrations..." alembic upgrade head # 启动应用 # --proxy-headers + --forwarded-allow-ips:链路是 Caddy(TLS) → frp → Traefik → 本服务, # 需要信任上游代理才能从 X-Forwarded-For 取到真实客户端 IP(限流依赖它)。 echo "Starting API server..." exec uvicorn app.main:app \ --host 0.0.0.0 --port 8000 \ --workers "${WORKERS:-1}" \ --proxy-headers \ --forwarded-allow-ips "${FORWARDED_ALLOW_IPS:-*}"