Files
codex-proxy-rs/deploy/config.example.yaml
T
ZyyandCodex ab3a2e30c5 feat(time): unify deployment timezone across display and scheduling
Use one validated IANA timezone for backend display projections, calendar queries, budget windows, warmup slots, backups, and logs. Remove frontend date formatting and the independent backup timezone setting.

Preserve UTC instants and active budget windows, persist warmup deduplication, and advance backup schedules transactionally. Cover DST boundaries, timezone changes, invalid calendar anchors, and account cooldown displays.

Co-authored-by: Codex <noreply@openai.com>
2026-10-01 15:53:22 +08:00

100 lines
3.3 KiB
YAML

# Codex Proxy RS 应用配置模板。
#
# 使用:
# sudo install -m 0640 -o "$(id -u)" -g 10001 deploy/config.example.yaml deploy/config.yaml
#
# PostgreSQL 与 Redis 密码分别执行 `openssl rand -hex 24` 生成;管理员初始密码单独设置。
schema_version: 1
host:
# 统一展示、查询日期、限额重置和定时任务的 IANA 时区,修改后重启生效。
timezone: 'Asia/Shanghai'
listen:
# 本地 cargo run 使用;Docker 内由 CPR_SERVER_HOST/PORT 覆盖。
host: '127.0.0.1'
port: 8080
# OpenAI 会话身份、系统更新状态和备份暂存区的统一根目录。
# 相对路径以 deploy/config.yaml 所在目录为基准。
runtime_data_dir: '../.runtime/data'
logging:
level: 'info'
stdout: true
# 将原始 AT/RT 写入独立 OAuth 恢复文件,沿用 file 的目录、大小与保留期。
oauth_recovery: false
# 将完整请求与响应头、正文写入独立文件;包含凭据,仅排障时开启。
request_dump: false
request_dump_retention_days: 1
file:
enabled: true
# 相对路径以 deploy/config.yaml 所在目录为基准。
directory: '../.runtime/logs'
retention_days: 7
max_file_size_mb: 20
# 二进制部署需要管理端自重启时,取消以下注释;可选路径改为实际程序绝对路径。
# Compose 已通过环境变量开启,保持本段注释即可;详情见 deploy/README.md。
# system_update:
# deployment_mode: 'binary'
# self_restart_enabled: true
# executable_path: '/opt/codex-proxy-rs/codex-proxy-rs' # 可选:覆盖启动时解析的程序路径。
drain_timeout_seconds: 30
worker_shutdown_timeout_seconds: 30
store:
database:
# Docker 内由 CPR_DATABASE_URL 覆盖;密码不要写进 URL。
url: 'postgres://codex_proxy@127.0.0.1:5432/codex_proxy'
password: &postgres_password ''
redis:
# Docker 内由 CPR_REDIS_URL 覆盖;密码不要写进 URL。
# ACL 用户写在 URL 中,例如 redis://u1@redis-host:6379/0;配置步骤见 deploy/README.md。
url: 'redis://127.0.0.1:6379/'
password: &redis_password ''
# 可选:PostgreSQL 连接池预算;下列值与当前推荐默认一致。
# pool:
# max_connections: 20
# acquire_timeout_seconds: 5
admin:
session_ttl_minutes: 1440
default_username: 'admin@cpr.local'
# 仅首次创建管理员时使用;至少 12 个字符且不能包含 `$`。
default_password: ''
client:
# 统一登录中密钥身份的固定会话有效期。
session_ttl_minutes: 1440
api:
# Docker 内由 CPR_WEB_DIST_DIR 覆盖。
asset_directory: '../frontend/dist'
cors_allowed_origins: []
request_timeout_seconds: null
request_id_header: 'x-request-id'
openai:
# 数据驻留约束;省略或 null 不指定地域约束,与管理端客户端身份无关。
residency: us
# Compose 凭据桥接区;密码仍只维护在 store 中。
services:
postgres-credentials:
environment:
POSTGRES_PASSWORD: *postgres_password
redis-credentials:
command:
- redis-server
- --appendonly
- 'yes'
- --requirepass
- *redis_password
healthcheck:
test:
- CMD
- redis-cli
- --no-auth-warning
- -a
- *redis_password
- ping