refactor(gateway): 统一 AETHER_GATEWAY_BIND 为 APP_PORT,新增 API Key 前缀配置和启动自举管理员

- 绑定地址固定 0.0.0.0,仅通过 APP_PORT 控制端口,简化 CLI/Docker/systemd/dev.sh/前端代理全链路
- 新增 API_KEY_PREFIX 环境变量,抽取 handlers/shared/api_keys.rs 消除 admin/public 重复逻辑
- 新增 bootstrap_admin.rs,启动时通过 ADMIN_* 环境变量在无管理员时自动创建首个本地管理员
- 前端密码输入改用 type=password,API Key 占位符改为动态前缀
- 删除过时的 pyproject.toml/uv.lock 和旧部署文档
- 更新 .env.example/README 反映新配置项
This commit is contained in:
fawney19
2026-04-11 17:39:02 +08:00
parent a570a77cca
commit 801e16c988
30 changed files with 867 additions and 3929 deletions

View File

@@ -12,11 +12,12 @@ AETHER_LOG_RETENTION_DAYS=7
AETHER_LOG_MAX_FILES=30
# aether-gateway 本体
AETHER_GATEWAY_BIND=0.0.0.0:8084
APP_PORT=8084
AETHER_GATEWAY_DEPLOYMENT_TOPOLOGY=single-node
AETHER_GATEWAY_NODE_ROLE=all
AETHER_GATEWAY_STATIC_DIR=/opt/aether/current/frontend
AETHER_GATEWAY_VIDEO_TASK_TRUTH_SOURCE_MODE=rust-authoritative
API_KEY_PREFIX=sk
# 数据库 / Redis
DB_NAME=aether
@@ -35,6 +36,18 @@ JWT_SECRET_KEY=change-this-to-a-secure-random-jwt-secret
ENCRYPTION_KEY=change-this-to-a-secure-random-encryption-key
PAYMENT_CALLBACK_SECRET=change-this-to-a-secure-random-callback-secret
# 可选: 首次启动时按环境变量自举本地管理员。
# 仅在 users 表里还没有活动管理员时生效;已有管理员后会自动跳过。
# ADMIN_EMAIL=admin@example.com
# ADMIN_USERNAME=admin
# ADMIN_PASSWORD=change-this-admin-password
# 可选: 跨域前端源。若要跨域带登录 Cookie不要写 *,必须显式列出源。
# CORS_ORIGINS=https://app.example.com
# CORS_ALLOW_CREDENTIALS=true
# AUTH_REFRESH_COOKIE_SAMESITE=None
# AUTH_REFRESH_COOKIE_SECURE=true
# 可选: 多实例/分布式并发时启用
# 切到 multi-node 后,启动会拒绝本地 video task 文件状态,并要求 Postgres/Redis 共享后端可用。
# AETHER_GATEWAY_DEPLOYMENT_TOPOLOGY=multi-node

View File

@@ -375,6 +375,10 @@ restart_service_if_requested() {
}
print_next_steps() {
local gateway_port
gateway_port="$(awk -F= '/^[[:space:]]*APP_PORT=/{print $2}' "${ENV_TARGET}" | tail -n1 | tr -d '[:space:]')"
gateway_port="${gateway_port:-8084}"
cat <<EOF
Install complete.
@@ -389,8 +393,8 @@ Data services (Docker only for Postgres/Redis):
docker compose --env-file ${ENV_TARGET} -f ${INSTALL_ROOT}/shared/docker-compose.data.yml ps
Health checks:
curl -fsS http://127.0.0.1:8084/_gateway/health
curl -fsS http://127.0.0.1:8084/readyz
curl -fsS http://127.0.0.1:${gateway_port}/_gateway/health
curl -fsS http://127.0.0.1:${gateway_port}/readyz
Current release:
${INSTALL_ROOT}/current