mirror of
https://github.com/fawney19/Aether.git
synced 2026-09-08 20:20:19 +08:00
134 lines
6.8 KiB
Bash
134 lines
6.8 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
|
||
|
||
# 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
|