# Codex Pool Docker 部署指南 ## 架构 前后端一体化部署,Go 后端嵌入前端静态文件,单一容器运行。 ``` ┌─────────────────────────────────────────┐ │ Codex Pool │ │ ┌─────────────────────────────────┐ │ │ │ Frontend (嵌入) │ │ │ │ - React SPA │ │ │ └─────────────────────────────────┘ │ │ ┌─────────────────────────────────┐ │ │ │ Backend (Go) │ │ │ │ - API 服务 │ │ │ │ - Chromium 浏览器自动化 │ │ │ │ - SQLite 数据库 │ │ │ └─────────────────────────────────┘ │ │ :8848 │ └─────────────────────────────────────────┘ ``` ## 快速开始 ### 1. 创建数据目录 ```bash mkdir -p data ``` ### 2. 构建并启动 ```bash # 构建镜像并启动 docker-compose up -d --build # 查看日志 docker-compose logs -f ``` ### 3. 配置 (通过 Web 界面) 首次启动后,访问 Web 界面进行配置: 1. 打开 http://localhost:8848 2. 进入 **系统配置** 3. 配置 S2A API 地址和 Admin Key 4. 配置邮箱服务 5. 根据需要启用代理 **配置自动保存到数据库,无需重启服务。** ## 常用命令 ```bash # 停止服务 docker-compose down # 重启服务 docker-compose restart # 查看状态 docker-compose ps # 重新构建并启动 docker-compose up -d --build # 进入容器 docker-compose exec codex-pool sh ``` ## 配置说明 ### 环境变量 | 变量 | 默认值 | 说明 | |------|--------|------| | `PORT` | 8848 | 服务端口 | | `BIND_HOST` | 0.0.0.0 | 绑定地址 | | `TZ` | Asia/Shanghai | 时区 | ### 数据持久化 | 路径 | 说明 | |------|------| | `./data/codex-pool.db` | SQLite 数据库 (包含配置) | ### 代理配置 在 Web 界面中配置代理: - 进入 系统配置 → 核心配置 - 开启 **代理设置** 开关 - 填入代理地址,如 `http://host.docker.internal:7890` ## 生产环境建议 ### 1. 使用反向代理 使用 Nginx/Caddy/Traefik 提供 HTTPS: ```nginx server { listen 443 ssl; server_name codex-pool.example.com; ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/key.pem; location / { proxy_pass http://127.0.0.1:8848; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } ``` ### 2. 资源限制 ```yaml services: codex-pool: deploy: resources: limits: cpus: '2' memory: 2G ``` ### 3. 日志管理 ```yaml services: codex-pool: logging: driver: "json-file" options: max-size: "10m" max-file: "3" ``` ## 故障排查 ### 浏览器自动化失败 检查 Chromium 是否正常: ```bash docker-compose exec codex-pool chromium-browser --version ``` ### 无法连接代理 确保代理配置正确并已启用: ```bash docker-compose exec codex-pool curl -v --proxy http://host.docker.internal:7890 https://www.google.com ``` ### 数据库检查 ```bash docker-compose exec codex-pool ls -la /app/data/ ```