mirror of
https://github.com/fawney19/Aether.git
synced 2026-09-09 04:30:20 +08:00
Use PostgreSQL as the only database backend across runtime, schema tooling, installation, Compose, and CI. Update regression tests and reject removed drivers explicitly.
130 lines
6.2 KiB
Bash
130 lines
6.2 KiB
Bash
# ==================== 必须配置(启动前) ====================
|
||
# 以下配置项必须在项目启动前设置
|
||
|
||
# 应用端口(默认 8084)
|
||
APP_PORT=8084
|
||
|
||
# 对外访问地址,用于一键安装、CC Switch 导入、支付回调等需要生成公网 URL 的场景。
|
||
# 生产环境建议显式配置为不带内部端口的公网域名,例如 https://aether.example.com
|
||
# AETHER_PUBLIC_BASE_URL=https://aether.example.com
|
||
|
||
# Docker Compose 镜像(默认正式版 latest;提前测试可改 rc/beta;也可固定具体版本)
|
||
# 示例:
|
||
# APP_IMAGE=ghcr.io/fawney19/aether:latest
|
||
# APP_IMAGE=ghcr.io/fawney19/aether:rc
|
||
# APP_IMAGE=ghcr.io/fawney19/aether:beta
|
||
# APP_IMAGE=ghcr.io/fawney19/aether:0.7.0-rc.1
|
||
|
||
# Compose 应用容器的非 root 数字身份。
|
||
# install.sh 会自动写入安装用户的 UID/GID。
|
||
AETHER_CONTAINER_UID=65532
|
||
AETHER_CONTAINER_GID=65532
|
||
|
||
# API Key 前缀(默认 sk)
|
||
API_KEY_PREFIX=sk
|
||
|
||
# Rust 日志过滤(默认 aether_gateway=info)
|
||
# 示例: aether_gateway=debug,sqlx=warn
|
||
RUST_LOG=aether_gateway=info
|
||
|
||
# CORS 配置(跨域带 Cookie 时不要写 *,必须显式列出前端源)
|
||
# 示例: http://localhost:5173,https://app.example.com
|
||
# CORS_ORIGINS=http://localhost:5173
|
||
# CORS_ALLOW_CREDENTIALS=true
|
||
# 如果前后端跨站并依赖登录刷新 Cookie,还要配合:
|
||
# AUTH_REFRESH_COOKIE_SAMESITE=None
|
||
# AUTH_REFRESH_COOKIE_SECURE=true
|
||
|
||
# 数据库配置(仅支持 PostgreSQL)
|
||
DB_HOST=localhost
|
||
DB_PORT=5432
|
||
DB_USER=postgres
|
||
DB_NAME=aether
|
||
DB_PASSWORD=
|
||
|
||
# Redis 配置
|
||
REDIS_HOST=localhost
|
||
REDIS_PORT=6379
|
||
REDIS_PASSWORD=
|
||
|
||
# JWT密钥(使用 ./generate_keys.sh 生成)
|
||
# 用于用户登录 token 签名,更换后所有用户需重新登录
|
||
JWT_SECRET_KEY=change-this-to-a-secure-random-string
|
||
|
||
# 独立加密密钥(用于加密 Provider API Key 等敏感数据)
|
||
# 注意:更换此密钥后需要在管理面板重新配置所有 Provider API Key
|
||
ENCRYPTION_KEY=change-this-to-another-secure-random-string
|
||
|
||
# S3 备份的独立加密密钥(推荐)。未配置时为兼容旧部署,会回退到 ENCRYPTION_KEY。
|
||
# 密钥轮换前必须保留旧值,离线恢复工具需要它解密历史备份。
|
||
# AETHER_BACKUP_ENCRYPTION_KEY=change-this-to-a-dedicated-secure-random-string
|
||
|
||
# 启动自举管理员(仅在当前库里还没有活动管理员时生效)
|
||
# 首次启动前必须设置 ADMIN_PASSWORD;install.sh 首次生成配置时会提示输入。
|
||
ADMIN_EMAIL=admin@example.com
|
||
ADMIN_USERNAME=admin123456
|
||
# ADMIN_PASSWORD=
|
||
|
||
# ==================== 可选配置(有默认值) ====================
|
||
|
||
# 可信反向代理 IP/CIDR,只有这些来源发送的 X-Real-IP / X-Forwarded-For 会被采用。
|
||
# 默认仅信任本机回环代理:127.0.0.0/8,::1/128。
|
||
# Docker/Nginx 位于独立容器时,请按实际容器网络设置,例如:172.16.0.0/12。
|
||
# AETHER_TRUSTED_PROXY_CIDRS=127.0.0.0/8,::1/128,172.16.0.0/12
|
||
|
||
# VS Code Codex 云端协同(仅在叠加 aether-vscodex/docker-compose.aether.yml 时需要)
|
||
# 内部 token 至少 24 字节,建议使用:openssl rand -base64 32
|
||
# AETHER_VSCODEX_INTERNAL_TOKEN=replace-with-a-long-random-secret
|
||
# AETHER_VSCODEX_PUBLIC_WS_URL=wss://aether.example.com/api/vscodex/ws
|
||
# AETHER_VSCODEX_ALLOWED_ORIGINS=https://aether.example.com
|
||
|
||
# 启动时的数据库准备策略:auto(默认)或 verify-only
|
||
# AETHER_GATEWAY_DATABASE_MODE=auto
|
||
|
||
# PostgreSQL 连接池配置(默认每核 4 条、总池至少 32 条且最多 100 条;多实例部署应显式分配每实例预算)
|
||
# AETHER_GATEWAY_DATA_POSTGRES_MIN_CONNECTIONS=12
|
||
# AETHER_GATEWAY_DATA_POSTGRES_MAX_CONNECTIONS=80
|
||
# AETHER_GATEWAY_MAX_IN_FLIGHT_REQUESTS=2048
|
||
# AETHER_GATEWAY_REQUEST_BODY_BUFFER_BUDGET_MB=256
|
||
# 请求体完整读取总超时默认关闭;确需限制时配置 1000-600000 毫秒的非零值。
|
||
# AETHER_GATEWAY_REQUEST_BODY_READ_TIMEOUT_MS=0
|
||
# 单请求解压后 Payload 上限(MiB),默认 256;显式设为 0 才表示不限制。
|
||
# AETHER_MAX_REQUEST_BODY_MB=256
|
||
# AETHER_GATEWAY_SECURITY_CACHE_TTL_MS=1000
|
||
# AETHER_MAX_REDACTED_SYNC_RESPONSE_BODY_MB=64
|
||
# AETHER_MAX_INTERNAL_BUFFERED_BODY_MB=64
|
||
# AETHER_TUNNEL_NODE_STATUS_QUEUE_CAPACITY=1024
|
||
# Tunnel relay 使用的独立 HMAC 密钥。启用 HTTP tunnel relay 或多网关 owner 转发时必须配置,
|
||
# 所有网关实例必须使用同一个至少 32 字节的随机值;不要复用 JWT 或数据加密密钥。
|
||
# AETHER_TUNNEL_RELAY_AUTH_SECRET=
|
||
# 旧版 /api/internal/gateway/* 控制面默认关闭。确需独立服务调用时,配置至少 32 字节的
|
||
# 独立 HMAC 密钥;不要复用 JWT、数据加密或 tunnel relay 密钥。多节点必须使用相同值和共享 Redis。
|
||
# AETHER_INTERNAL_GATEWAY_AUTH_SECRET=
|
||
# 远程 relay 地址必须使用 HTTPS;HTTP 仅允许 localhost 或回环 IP。
|
||
# AETHER_TUNNEL_RELAY_BASE_URL=https://gateway-a.example.com
|
||
# 跨网关 relay 解析到受控私有地址时才显式开启;默认关闭以防止被篡改的 attachment
|
||
# 记录诱导网关向内网转发 relay 凭据。该开关不放宽普通 provider 的目标地址策略。
|
||
# AETHER_TUNNEL_RELAY_ALLOW_PRIVATE_TARGETS=false
|
||
# 更推荐按 relay 主机名精确放行私网部署(逗号分隔,大小写不敏感);不支持通配符/后缀。
|
||
# AETHER_TUNNEL_RELAY_PRIVATE_HOST_ALLOWLIST=gateway-a.internal,gateway-b.internal
|
||
# Bark 自建服务默认仅允许公网 HTTPS。确需明文 HTTP 或内网目标时分别显式开启:
|
||
# AETHER_BARK_ALLOW_HTTP=false
|
||
# AETHER_BARK_ALLOW_PRIVATE_TARGETS=false
|
||
|
||
# 可选 Provider OAuth 客户端。使用 Gemini CLI / Antigravity 浏览器授权时必须配置
|
||
# 对应的 client secret;client ID 未配置时使用内置的公开 native-app client ID。
|
||
# AETHER_GEMINI_CLI_OAUTH_CLIENT_ID=
|
||
# AETHER_GEMINI_CLI_OAUTH_CLIENT_SECRET=
|
||
# AETHER_ANTIGRAVITY_OAUTH_CLIENT_ID=
|
||
# AETHER_ANTIGRAVITY_OAUTH_CLIENT_SECRET=
|
||
|
||
# PostgreSQL 容器调优:docker-compose.yml 已内置通用默认值,通常不用配置。
|
||
# 只有在 Postgres 独占大内存、或压测显示 DB 缓存/排序/维护任务成为瓶颈时再覆盖。
|
||
# 内置默认:shared_buffers=1GB, effective_cache_size=3GB, shm_size=512mb,
|
||
# work_mem=16MB, maintenance_work_mem=256MB。
|
||
# POSTGRES_SHARED_BUFFERS=8GB
|
||
# POSTGRES_EFFECTIVE_CACHE_SIZE=24GB
|
||
# POSTGRES_SHM_SIZE=2gb
|
||
# POSTGRES_WORK_MEM=16MB
|
||
# POSTGRES_MAINTENANCE_WORK_MEM=1GB
|