# ==================== 必须配置(启动前) ==================== # 以下配置项必须在项目启动前设置 # 应用端口(默认 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 # 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 对同源浏览器请求和可信反代自动适配 HTTP/HTTPS。 # HTTP 自动使用兼容的 SameSite=Lax(显式 Strict 保留);HTTPS 保留原有 SameSite 配置。 # 无法确认访问协议时保留安全默认值;HTTPS 反代请正确传递 X-Forwarded-Proto。 # AUTH_REFRESH_COOKIE_SECURE 可显式覆盖自动判断,公网部署仍建议使用 HTTPS。 # 如果前后端跨站并依赖登录刷新 Cookie,必须使用 HTTPS,并配合: # 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 反代(包括 Provider OAuth)不按 DNS 地址过滤上游,兼容任意 # Fake-IP 域名及内网 DNS。仅信任管理员配置的上游;没有严格 DNS 过滤开关。 # URL 协议、字面 IP、TLS 证书,以及隧道中继和登录 OAuth 的校验仍保留。 # 可选 Provider OAuth 客户端。Gemini CLI 和 Antigravity 默认使用内置 native-app # 客户端凭据;自定义 client ID 时必须同时配置对应的 client secret。 # 显式配置的 client secret 优先于默认值。 # 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