Docker Compose 部署
ollmo 提供完整的 docker-compose 编排,一条命令启动全栈。
一键启动
cp .env.example .env
# 编辑 .env,至少修改 JWT_SECRET
make up-full
up-full 会构建并启动:基础设施(MySQL / Redis / MinIO / Milvus)+ API server + Asynq worker + Web。
环境变量
.env 关键配置:
SERVER_PORT=8080
CORS_ORIGINS=http://localhost:3001,http://localhost:3000
MYSQL_HOST=mysql
MYSQL_PORT=3306
MYSQL_USER=ollmo
MYSQL_PASSWORD=ollmo_dev_pwd
MYSQL_DATABASE=ollmo
REDIS_HOST=redis
REDIS_PORT=6379
MINIO_ENDPOINT=minio:9000
MINIO_ACCESS_KEY=minioadmin
MINIO_SECRET_KEY=minioadmin
MINIO_BUCKET=ollmo
MILVUS_HOST=milvus
MILVUS_PORT=19530
# 生产环境务必修改
JWT_SECRET=change_me_to_a_long_random_string_in_production
JWT_EXPIRE_HOURS=168
# 用于加密存储的供应商 API Key(LLM API 密钥)
# 与 JWT_SECRET 相互独立,轮换 JWT_SECRET 不影响解密
# 生成:openssl rand -hex 32
# ENCRYPTION_KEY=
:::caution 生产环境
JWT_SECRET必须替换为长随机字符串- 修改 MySQL / MinIO 默认密码
CORS_ORIGINS改为实际域名- 在 Web / API 前挂 Nginx 或 Caddy 反代并配置 HTTPS :::
生产环境清单
| 事项 | 说明 |
|---|---|
| HTTPS | 反向代理终止 TLS,内网环境可豁免 |
| 备份 | 定期备份 MySQL 与 MinIO 数据 |
| 资源 | Milvus 内存占用较高,建议 8G+ 内存;MinerU GPU 解析另需显卡 |
| 监控 | 使用 /health 与 /ready 探针接入现有监控体系 |
| 升级 | 升级前备份数据;需执行 ollmo migrate(或 make migrate)再重启服务 |
配置优先级
| 来源 | 用途 |
|---|---|
server/config.yaml | 后端默认配置(DB、Redis、MinIO、Milvus、MinerU、JWT) |
.env | Docker 部署的环境变量覆盖 |
| Web UI → 设置 | 租户级 LLM / Embedding / Rerank 供应商 |
| Web UI → 知识库设置 | 知识库级 Rerank 覆盖 |
| Web UI → Agent 画布 | 知识库级 Agent 配置 |
模型选择优先级:知识库级配置 → 租户默认 → config.yaml 兜底。
健康检查
# 存活探针:进程存活即返回
curl http://localhost:8080/health
# 就绪探针:逐项检查 MySQL / Redis / MinIO / Milvus 连通性,任一不可用返回 503
curl http://localhost:8080/ready
Docker / K8s 就绪检查建议使用 /ready,确保流量只在依赖就绪后进入。