refactor: 拆分 gateway 单体为独立 crate,新增 systemd 部署方案

将 gateway 内部的 model-fetch、provider-transport、scheduler-core、
usage-runtime、video-tasks-core 模块提取为独立 crate;重构 gateway
内部模块结构(state/router/cache/data/query 等);移除大量遗留模块
文件;新增 systemd 二进制部署骨架及相关文档;更新前端 usage 相关
API 和组件。
This commit is contained in:
fawney19
2026-04-05 20:23:16 +08:00
parent cbc811f6ce
commit 763ff03a7b
777 changed files with 42659 additions and 21469 deletions

View File

@@ -0,0 +1,55 @@
# systemd 的 EnvironmentFile 只适合简单的 KEY=VALUE 行。
# 不要写 export、命令替换、变量引用或其他 shell 语法。
ENVIRONMENT=production
TZ=Asia/Shanghai
RUST_LOG=aether_gateway=info
AETHER_LOG_DESTINATION=both
AETHER_LOG_FORMAT=json
AETHER_LOG_DIR=/var/log/aether
AETHER_LOG_ROTATION=daily
AETHER_LOG_RETENTION_DAYS=7
AETHER_LOG_MAX_FILES=30
# aether-gateway 本体
AETHER_GATEWAY_BIND=0.0.0.0: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
# 数据库 / Redis
DB_NAME=aether
DB_USER=postgres
DB_PORT=5432
DB_PASSWORD=change-me-postgres-password
REDIS_PORT=6379
REDIS_PASSWORD=change-me-redis-password
# gateway 直接读取的连接串。请与上面的口令保持一致。
DATABASE_URL=postgresql://postgres:change-me-postgres-password@127.0.0.1:5432/aether
REDIS_URL=redis://:change-me-redis-password@127.0.0.1:6379/0
# 安全相关
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
# 可选: 多实例/分布式并发时启用
# 切到 multi-node 后,启动会拒绝本地 video task 文件状态,并要求 Postgres/Redis 共享后端可用。
# AETHER_GATEWAY_DEPLOYMENT_TOPOLOGY=multi-node
# AETHER_GATEWAY_NODE_ROLE=frontdoor
# 另起一台后台节点时使用:
# AETHER_GATEWAY_NODE_ROLE=background
# AETHER_GATEWAY_INSTANCE_ID=gateway-node-1
# AETHER_TUNNEL_RELAY_BASE_URL=https://gateway-node-1.internal
# AETHER_GATEWAY_DISTRIBUTED_REQUEST_LIMIT=200
# AETHER_GATEWAY_DISTRIBUTED_REQUEST_REDIS_URL=redis://:change-me-redis-password@127.0.0.1:6379/0
# 不单独填写时,会回退复用 REDIS_URL / AETHER_GATEWAY_DATA_REDIS_URL。
# 可选: 仅单机时再启用本地文件状态。未来做集群时不要依赖本地磁盘。
# AETHER_GATEWAY_VIDEO_TASK_STORE_PATH=/var/lib/aether/video-tasks.json
# 单机极简模式:
# 不配置 DATABASE_URL / REDIS_URL 也可以启动,但会退化成“本地文件 + 内存兜底”,
# 管理/认证/账单/统计等需要共享持久层的功能不会完整可用。