14771556fd
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2.5 KiB
2.5 KiB
Docker Compose 生产部署
快速开始
# 1. 配置环境变量
cp .docker.env.example .docker.env
# 编辑 .docker.env,填入真实的 API Key 和密码
# 有域名时设置 DOMAIN=your-domain.com
# 2. 启动所有服务
docker compose --env-file .docker.env up -d
# 3. 查看状态
docker compose ps
docker compose logs -f
服务清单
| 服务 | 端口 | 说明 |
|---|---|---|
| caddy | 80 / 443 | 反向代理,自动 HTTPS |
| gateway | 8080 (内部) | API 网关 |
| ai-core | 8081 (内部) | AI 核心 |
| memory-service | 8091 (内部) | 记忆检索 |
| voice-service | 8093 (内部) | 语音识别 |
| iot-debug-service | 8083 (内部) | IoT 调试 |
| postgres | 5432 (内部) | 数据库 (pgvector/pg16) |
| redis | 6379 (内部) | 缓存 |
| qdrant | 6333 (内部) | 向量数据库 |
| minio | 9000 (内部) | 对象存储 |
| searxng | 8080 (内部) | 搜索引擎 |
环境变量
所有变量在 .docker.env 中配置,完整模板见 .docker.env.example。
必填(服务启动 panic 若缺失)
| 变量 | 说明 |
|---|---|
LLM_API_URL |
LLM API 地址 |
LLM_API_KEY |
LLM API 密钥 |
ADMIN_PASSWORD |
管理员密码 |
JWT_SECRET |
JWT 签名密钥 |
INTERNAL_SERVICE_TOKEN |
服务间通信认证 Token |
POSTGRES_PASSWORD |
数据库密码 |
MINIO_SECRET_KEY |
MinIO 密钥 |
推荐配置
| 变量 | 默认值 | 说明 |
|---|---|---|
LLM_MODEL |
gpt-4o |
主模型 |
LLM_FALLBACK_MODEL |
gpt-4o-mini |
回退模型 |
ADMIN_USERNAME |
admin |
管理员用户名 |
ADMIN_NICKNAME |
管理员 |
AI 对管理员的称呼 |
REGISTRATION_ENABLED |
false |
开放注册(生产建议关闭) |
ALLOWED_ORIGINS |
http://localhost:5173,... |
CORS 白名单 |
ENABLE_BACKGROUND_THINKING |
true |
后台自主思考 |
ACME_EMAIL |
— | Let's Encrypt 证书邮箱 |
域名与 HTTPS
在 .docker.env 中设置 DOMAIN 和 ACME_EMAIL:
# 无域名(仅 HTTP)
DOMAIN=
# 有域名(自动 HTTPS)
DOMAIN=your-domain.com
ACME_EMAIL=admin@your-domain.com
Caddy 在 DOMAIN 有值时自动从 Let's Encrypt 申请 TLS 证书,无需额外配置。
常用命令
# 重新构建并启动单个服务
docker compose up -d --build gateway
# 查看特定服务日志
docker compose logs -f ai-core
# 停止所有服务
docker compose down
# 停止并删除数据卷(危险)
docker compose down -v