23 lines
750 B
Bash
Executable File
23 lines
750 B
Bash
Executable File
#!/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:-*}"
|