This repository has been archived on 2026-08-12. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
Cyrene/docs/deploy/docker-compose.md
T
AskaEth 365f5ceb2f refactor: DevTools → ethend 重命名 + 加入生产环境
- 目录 devtools/ → ethend/
- CLI 脚本 devtools.sh/.bat → ethend.sh/.bat
- 环境变量 DEVTOOLS_PORT → ETHEND_PORT
- docker-compose.yml 新增 ethend 服务(生产部署)
- 同步更新全部文档、注释和配置文件

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 09:32:36 +08:00

95 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Docker Compose 生产部署
## 快速开始
```bash
# 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 调试 |
| ethend | 9090 (外部) | 管理控制台 |
| postgres | 5432 (内部) | 数据库 (pgvector/pg16) |
| redis | 6379 (内部) | 缓存 |
| qdrant | 6333 (内部) | 向量数据库 |
| minio | 9000 (内部) | 对象存储 |
| searxng | 8080 (内部) | 搜索引擎 |
## 环境变量
所有变量在 `.docker.env` 中配置,完整模板见 [.docker.env.example](../../.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`
```bash
# 无域名(仅 HTTP
DOMAIN=
# 有域名(自动 HTTPS
DOMAIN=your-domain.com
ACME_EMAIL=admin@your-domain.com
```
Caddy 在 `DOMAIN` 有值时自动从 Let's Encrypt 申请 TLS 证书,无需额外配置。
## 常用命令
```bash
# 重新构建并启动单个服务
docker compose up -d --build gateway
# 查看特定服务日志
docker compose logs -f ai-core
# 停止所有服务
docker compose down
# 停止并删除数据卷(危险)
docker compose down -v
```