Coze 内网部署实战:从 Docker 安装到 HTTPS 上线完整命令指南
Coze 私有化部署方案|附完整命令
本文提供一套面向企业内网、团队自用、开发测试环境的 Coze 私有化部署方案。方案以 Linux 服务器 + Docker / Docker Compose 为主,尽量降低部署复杂度,便于快速落地、后续升级和运维管理。
说明:Coze 开源版本及其部署脚本可能会持续更新,实际部署时应以官方仓库最新文档为准。本文命令适合大多数 Docker Compose 私有化部署场景,可作为完整实施参考。
一、为什么要做 Coze 私有化部署?
Coze 是一个面向 AI Bot / Agent 构建的平台,通常用于搭建智能客服、知识库问答、业务流程助手、内容生成工具、企业内部 Copilot 等应用。相比直接使用云端 SaaS,私有化部署有以下优势:
1. 数据可控
企业内部知识库、客户数据、业务流程、接口密钥等往往具有较高敏感性。私有化部署后,平台运行在企业自有服务器或私有云环境中,数据存储、访问权限、网络边界都可以由企业自行控制。
2. 便于内网集成
很多企业系统并不暴露公网,例如 OA、ERP、CRM、工单系统、知识库系统、数据库等。Coze 私有化后可以直接部署在同一内网环境中,通过内网地址访问业务系统,减少公网暴露风险。
3. 可定制运维策略
企业可以根据自身要求配置 HTTPS、统一认证、日志审计、备份策略、监控告警、资源隔离等能力,更容易符合内部安全规范。
4. 成本和性能可控
对于高频使用场景,私有化部署可以结合本地模型、私有模型服务或企业已有的大模型网关,实现成本优化。同时,系统资源可以按需扩容,避免单纯依赖外部 SaaS 的限流或不可控因素。
二、部署架构概览
一套典型的 Coze 私有化部署架构如下:
用户浏览器
│
▼
Nginx / HTTPS 反向代理
│
▼
Coze Web / API 服务
│
├── 数据库:MySQL / PostgreSQL
├── 缓存:Redis
├── 对象存储:MinIO / S3
├── 向量数据库:Milvus / Elasticsearch / 其他向量服务
├── 消息队列:Kafka / RabbitMQ / 内置队列
└── 大模型服务:OpenAI 兼容接口 / 私有模型 / 云模型
对于中小团队或测试环境,推荐使用 单机 Docker Compose 部署,把相关依赖服务都放在同一台服务器上。
对于生产环境,则建议拆分数据库、对象存储、向量数据库和应用服务,并接入监控、备份、日志系统。
三、服务器配置建议
不同规模的使用场景,对服务器资源要求不同。以下是推荐配置:
| 场景 | CPU | 内存 | 磁盘 | 说明 |
|---|---|---|---|---|
| 本地测试 / Demo | 4 核 | 8 GB | 100 GB SSD | 仅适合体验功能 |
| 小团队试用 | 8 核 | 16 GB | 200 GB SSD | 可支持少量用户 |
| 企业生产 | 16 核+ | 32 GB+ | 500 GB SSD+ | 建议拆分数据库与存储 |
| 大规模知识库场景 | 32 核+ | 64 GB+ | 1 TB+ | 重点关注向量库与对象存储 |
建议操作系统:
- Ubuntu Server 22.04 LTS / 24.04 LTS
- Debian 12
- CentOS Stream / Rocky Linux / AlmaLinux 9
本文以下命令以 Ubuntu 22.04 / 24.04 为例。
四、部署前准备
1. 更新系统
sudo apt update
sudo apt upgrade -y
安装常用工具:
sudo apt install -y \
curl \
wget \
git \
vim \
unzip \
ca-certificates \
gnupg \
lsb-release \
net-tools \
htop
设置系统时区:
sudo timedatectl set-timezone Asia/Shanghai
timedatectl
五、安装 Docker
如果服务器尚未安装 Docker,可以使用官方源安装。
1. 卸载旧版本 Docker
sudo apt remove -y docker docker-engine docker.io containerd runc || true
2. 添加 Docker 官方 GPG Key
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
3. 添加 Docker 软件源
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
4. 安装 Docker Engine 和 Compose 插件
sudo apt update
sudo apt install -y \
docker-ce \
docker-ce-cli \
containerd.io \
docker-buildx-plugin \
docker-compose-plugin
5. 启动 Docker
sudo systemctl enable docker
sudo systemctl start docker
sudo systemctl status docker
检查 Docker 版本:
docker version
docker compose version
6. 将当前用户加入 docker 用户组
sudo usermod -aG docker $USER
执行后建议重新登录服务器,或者运行:
newgrp docker
验证:
docker ps
如果能正常输出容器列表,说明 Docker 权限配置成功。
六、拉取 Coze 开源项目
注意:Coze 开源项目地址可能随着官方调整而变化。以下以常见的 GitHub 仓库形式为例,部署前建议先查看官方最新 README。
创建应用目录:
sudo mkdir -p /opt/coze
sudo chown -R $USER:$USER /opt/coze
cd /opt/coze
克隆项目:
git clone https://github.com/coze-dev/coze-studio.git
进入项目目录:
cd /opt/coze/coze-studio
查看项目文件:
ls -lah
查找 Docker Compose 文件:
find . -maxdepth 3 \( -name "docker-compose.yml" -o -name "docker-compose.yaml" -o -name "compose.yml" -o -name "compose.yaml" \)
通常官方会提供类似以下文件之一:
docker-compose.yml
docker-compose.yaml
compose.yaml
如果项目目录结构发生变化,请以实际查找到的 Compose 文件为准。
七、配置环境变量
很多 Docker Compose 项目会提供 .env.example 或类似模板文件。可以先查看:
ls -lah | grep env
如果存在 .env.example,复制一份:
cp .env.example .env
如果文件名是 env.example,则执行:
cp env.example .env
编辑配置文件:
vim .env
常见需要关注的配置包括:
# 应用访问地址
APP_URL=http://your-domain.com
# 数据库配置
MYSQL_ROOT_PASSWORD=please_change_root_password
MYSQL_DATABASE=coze
MYSQL_USER=coze
MYSQL_PASSWORD=please_change_mysql_password
# Redis 配置
REDIS_PASSWORD=please_change_redis_password
# 对象存储配置
MINIO_ROOT_USER=minioadmin
MINIO_ROOT_PASSWORD=please_change_minio_password
# 大模型接口配置,示例为 OpenAI 兼容接口
OPENAI_API_KEY=your_api_key
OPENAI_BASE_URL=https://api.openai.com/v1
# 如果使用企业内部模型网关,可以类似这样配置
# OPENAI_BASE_URL=http://llm-gateway.internal/v1
生成随机密码可以使用:
openssl rand -base64 32
例如:
openssl rand -base64 32
openssl rand -hex 32
建议将数据库密码、Redis 密码、MinIO 密码、大模型密钥等配置为高强度密码,不要使用默认值。
八、启动 Coze 服务
如果 Compose 文件名为 docker-compose.yml,执行:
docker compose -f docker-compose.yml pull
docker compose -f docker-compose.yml up -d
如果文件名是 compose.yaml,执行:
docker compose -f compose.yaml pull
docker compose -f compose.yaml up -d
如果项目提供的是多份 Compose 文件,例如基础服务和应用服务分开:
docker compose -f docker-compose.yml -f docker-compose.prod.yml pull
docker compose -f docker-compose.yml -f docker-compose.prod.yml up -d
查看容器状态:
docker compose ps
查看实时日志:
docker compose logs -f
查看指定服务日志,例如:
docker compose logs -f web
docker compose logs -f api
docker compose logs -f mysql
docker compose logs -f redis
如果不确定服务名称,可以先执行:
docker compose ps --services
九、访问 Coze
查看当前服务器监听端口:
sudo netstat -tunlp
或:
sudo ss -tunlp
如果 Compose 中将 Web 服务映射到了 8080 端口,可以通过浏览器访问:
http://服务器IP:8080
例如:
http://192.168.1.100:8080
如果你使用的是云服务器,需要在安全组中放行对应端口,例如:
- 80
- 443
- 8080
- 以及项目实际暴露的端口
Ubuntu 防火墙放行端口:
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 8080/tcp
sudo ufw enable
sudo ufw status
十、配置 Nginx 反向代理
生产环境不建议直接通过容器端口访问,推荐使用 Nginx 做统一入口。
1. 安装 Nginx
sudo apt install -y nginx
sudo systemctl enable nginx
sudo systemctl start nginx
2. 新建站点配置
假设 Coze Web 服务运行在服务器本机 8080 端口,域名为:
coze.example.com
创建 Nginx 配置:
sudo vim /etc/nginx/sites-available/coze.conf
写入以下内容:
server {
listen 80;
server_name coze.example.com;
client_max_body_size 100m;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 300s;
proxy_send_timeout 300s;
}
}
启用站点:
sudo ln -s /etc/nginx/sites-available/coze.conf /etc/nginx/sites-enabled/coze.conf
检查 Nginx 配置:
sudo nginx -t
重载 Nginx:
sudo systemctl reload nginx
访问:
http://coze.example.com
十一、配置 HTTPS 证书
如果服务器可以访问公网,并且域名已经解析到服务器,可以使用 Let’s Encrypt 免费证书。
1. 安装 Certbot
sudo apt install -y certbot python3-certbot-nginx
2. 申请证书
sudo certbot --nginx -d coze.example.com
按照提示输入邮箱、同意协议,并选择是否自动重定向 HTTP 到 HTTPS。
3. 测试自动续期
sudo certbot renew --dry-run
查看证书定时任务:
systemctl list-timers | grep certbot
配置完成后访问:
https://coze.example.com
十二、配置大模型服务
Coze 的核心能力依赖大模型。私有化部署后,你可以接入以下几类模型服务:
1. 云厂商大模型 API
例如 OpenAI、Azure OpenAI、火山方舟、阿里云百炼、腾讯混元、智谱、DeepSeek 等,只要提供 OpenAI 兼容接口,一般都可以通过统一网关接入。
示例配置:
OPENAI_API_KEY=sk-xxxx
OPENAI_BASE_URL=https://api.openai.com/v1
如果是私有模型网关:
OPENAI_API_KEY=internal-token
OPENAI_BASE_URL=http://llm-gateway.internal/v1
2. 本地模型服务
如果企业内已有 vLLM、Ollama、Xinference、LMDeploy 等模型服务,可以暴露 OpenAI Compatible API,然后在 Coze 中配置对应地址。
例如 vLLM 启动一个 OpenAI 兼容服务:
python -m vllm.entrypoints.openai.api_server \
--model /data/models/Qwen2.5-7B-Instruct \
--host 0.0.0.0 \
--port 8000
对应 Coze 配置:
OPENAI_API_KEY=EMPTY
OPENAI_BASE_URL=http://模型服务器IP:8000/v1
Ollama 示例:
curl -fsSL https://ollama.com/install.sh | sh
ollama pull qwen2.5:7b
ollama serve
如果通过兼容 OpenAI 的代理服务转发,也可以配置为:
OPENAI_BASE_URL=http://ollama-proxy.internal/v1
OPENAI_API_KEY=ollama
十三、常用运维命令
1. 查看所有容器
docker ps
docker ps -a
2. 查看 Compose 服务
cd /opt/coze/coze-studio
docker compose ps
3. 启动服务
docker compose up -d
4. 停止服务
docker compose down
5. 重启服务
docker compose restart
6. 查看日志
docker compose logs -f
查看最近 200 行日志:
docker compose logs --tail=200
7. 查看资源占用
docker stats
8. 进入容器
docker exec -it 容器名 /bin/bash
如果容器没有 bash:
docker exec -it 容器名 /bin/sh
十四、数据备份方案
私有化部署最重要的是数据安全。建议至少备份以下内容:
- 数据库数据
- 对象存储数据
- 向量数据库数据
.env配置文件- Docker Compose 文件
- 上传文件、知识库文件
- Nginx 配置和证书
1. 创建备份目录
sudo mkdir -p /data/backup/coze
sudo chown -R $USER:$USER /data/backup/coze
2. 备份项目配置
cd /opt/coze
tar -czf /data/backup/coze/coze-config-$(date +%F).tar.gz coze-studio/.env coze-studio/*compose*.yml
3. 备份 MySQL
先查看 MySQL 容器名称:
docker ps | grep mysql
假设容器名为 coze-mysql:
docker exec coze-mysql mysqldump -uroot -p'你的数据库root密码' --all-databases > /data/backup/coze/mysql-$(date +%F).sql
压缩备份文件:
gzip /data/backup/coze/mysql-$(date +%F).sql
4. 备份 Docker Volume
查看 volume:
docker volume ls
备份指定 volume:
docker run --rm \
-v coze_mysql_data:/volume \
-v /data/backup/coze:/backup \
alpine \
tar -czf /backup/coze_mysql_data-$(date +%F).tar.gz -C /volume .
对象存储和向量数据库也可以采用类似方式备份:
docker run --rm \
-v coze_minio_data:/volume \
-v /data/backup/coze:/backup \
alpine \
tar -czf /backup/coze_minio_data-$(date +%F).tar.gz -C /volume .
5. 定时备份
编辑 crontab:
crontab -e
加入每日凌晨 2 点备份任务:
0 2 * * * /opt/coze/backup-coze.sh >> /data/backup/coze/backup.log 2>&1
创建备份脚本:
vim /opt/coze/backup-coze.sh
写入:
#!/usr/bin/env bash
set -e
BACKUP_DIR="/data/backup/coze"
PROJECT_DIR="/opt/coze/coze-studio"
DATE="$(date +%F-%H%M%S)"
mkdir -p "$BACKUP_DIR"
cd "$PROJECT_DIR"
tar -czf "$BACKUP_DIR/coze-config-$DATE.tar.gz" .env *compose*.yml 2>/dev/null || true
docker compose ps > "$BACKUP_DIR/compose-ps-$DATE.txt"
# 如需数据库备份,请替换容器名和密码
# docker exec coze-mysql mysqldump -uroot -p'你的密码' --all-databases | gzip > "$BACKUP_DIR/mysql-$DATE.sql.gz"
find "$BACKUP_DIR" -type f -mtime +14 -delete
授权执行:
chmod +x /opt/coze/backup-coze.sh
手动测试:
/opt/coze/backup-coze.sh
十五、升级 Coze
升级前务必先备份。
1. 停止服务
cd /opt/coze/coze-studio
docker compose down
2. 备份当前代码和配置
cd /opt/coze
tar -czf /data/backup/coze/coze-before-upgrade-$(date +%F-%H%M%S).tar.gz coze-studio
3. 拉取最新代码
cd /opt/coze/coze-studio
git fetch --all
git pull
如果你使用的是指定版本 tag,可以查看 tag:
git tag
切换到指定版本:
git checkout vX.Y.Z
4. 更新镜像并启动
docker compose pull
docker compose up -d
5. 查看状态
docker compose ps
docker compose logs -f --tail=200
十六、安全加固建议
1. 不要暴露数据库端口到公网
数据库、Redis、MinIO 控制台、向量数据库等不应直接暴露公网。如果 Compose 文件中有类似:
ports:
- "3306:3306"
生产环境建议改为仅内部网络访问,或者绑定本机:
ports:
- "127.0.0.1:3306:3306"
2. 使用强密码
所有默认密码必须修改,包括:
- 数据库 root 密码
- 应用数据库用户密码
- Redis 密码
- MinIO 管理员密码
- 后台管理员密码
- 大模型 API Key
3. 限制访问来源
如果只给公司内部使用,可以在 Nginx 中限制 IP:
location / {
allow 192.168.0.0/16;
allow 10.0.0.0/8;
deny all;
proxy_pass http://127.0.0.1:8080;
}
4. 启用 HTTPS
生产环境必须使用 HTTPS,避免登录态、Token、敏感数据在网络中明文传输。
5. 做好日志留存
建议至少保留:
- Nginx 访问日志
- Nginx 错误日志
- 应用日志
- 容器运行日志
- 数据库慢查询日志
十七、常见问题排查
1. 容器启动失败
查看容器状态:
docker compose ps
查看日志:
docker compose logs -f --tail=300
常见原因包括:
.env配置错误- 数据库密码不一致
- 端口被占用
- 内存不足
- 镜像拉取失败
- 依赖服务未启动完成
2. 端口被占用
查看端口占用:
sudo lsof -i:8080
或:
sudo ss -tunlp | grep 8080
停止占用进程:
sudo kill -9 进程ID
或者修改 Compose 端口映射。
3. 镜像拉取慢
可以配置 Docker 镜像加速,编辑:
sudo vim /etc/docker/daemon.json
示例:
{
"registry-mirrors": [
"https://docker.m.daocloud.io"
]
}
重启 Docker:
sudo systemctl daemon-reload
sudo systemctl restart docker
4. 页面打不开
依次检查:
docker compose ps
sudo ss -tunlp
curl -I http://127.0.0.1:8080
sudo nginx -t
sudo systemctl status nginx
如果本机可以访问但外部不行,重点检查:
- 云服务器安全组
- 防火墙规则
- Nginx server_name
- 域名解析
- HTTPS 证书配置
5. 大模型调用失败
测试模型接口:
curl http://你的模型网关/v1/models \
-H "Authorization: Bearer 你的API_KEY"
测试 Chat Completions:
curl http://你的模型网关/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer 你的API_KEY" \
-d '{
"model": "你的模型名称",
"messages": [
{
"role": "user",
"content": "你好,请简单介绍一下你自己"
}
]
}'
如果接口正常但 Coze 中失败,检查:
- Base URL 是否带
/v1 - API Key 是否正确
- 模型名称是否匹配
- 网络是否能从 Coze 容器访问模型服务
- 企业代理、防火墙是否拦截
进入 Coze 容器测试网络:
docker exec -it 容器名 /bin/sh
curl http://模型服务地址/v1/models
十八、推荐生产环境落地方案
如果是正式企业使用,不建议所有服务长期放在单机上。推荐逐步演进为以下架构:
负载均衡 / Nginx / Ingress
│
▼
Coze 应用服务集群
│
├── 独立 MySQL / PostgreSQL 主从或云数据库
├── 独立 Redis / Redis Cluster
├── 独立 MinIO 集群或云对象存储
├── 独立向量数据库
├── 企业大模型网关
├── Prometheus + Grafana 监控
└── ELK / Loki 日志系统
这样做的好处是:
- 应用服务可以横向扩展
- 数据服务可靠性更高
- 备份恢复更容易
- 资源瓶颈更容易定位
- 更符合企业生产运维规范
十九、一键部署命令汇总
下面给出一组从零开始的部署命令,适合快速复制执行。请根据实际域名、端口和官方仓库说明调整。
# 1. 更新系统
sudo apt update && sudo apt upgrade -y
# 2. 安装基础工具
sudo apt install -y curl wget git vim unzip ca-certificates gnupg lsb-release net-tools htop
# 3. 设置时区
sudo timedatectl set-timezone Asia/Shanghai
# 4. 安装 Docker
sudo apt remove -y docker docker-engine docker.io containerd runc || true
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl enable docker
sudo systemctl start docker
# 5. 创建部署目录
sudo mkdir -p /opt/coze
sudo chown -R $USER:$USER /opt/coze
cd /opt/coze
# 6. 克隆 Coze 项目
git clone https://github.com/coze-dev/coze-studio.git
cd /opt/coze/coze-studio
# 7. 准备环境变量
if [ -f ".env.example" ]; then
cp .env.example .env
elif [ -f "env.example" ]; then
cp env.example .env
else
touch .env
fi
# 8. 查看需要修改的配置
grep -n "PASSWORD\|SECRET\|KEY\|URL\|HOST\|PORT" .env || true
# 9. 编辑配置文件
vim .env
# 10. 查找 Compose 文件
find . -maxdepth 3 \( -name "docker-compose.yml" -o -name "docker-compose.yaml" -o -name "compose.yml" -o -name "compose.yaml" \)
# 11. 启动服务,以下以 docker-compose.yml 为例
docker compose -f docker-compose.yml pull
docker compose -f docker-compose.yml up -d
# 12. 查看服务状态
docker compose -f docker-compose.yml ps
# 13. 查看日志
docker compose -f docker-compose.yml logs -f --tail=200
二十、总结
Coze 私有化部署的核心思路并不复杂:先准备一台稳定的 Linux 服务器,然后通过 Docker Compose 启动 Coze 及其依赖服务,再通过 Nginx 和 HTTPS 提供统一访问入口。对于测试环境,单机部署足够快速;对于生产环境,则需要重点关注数据库、对象存储、向量库、模型服务、备份、安全和监控。
如果你只是想快速体验,可以直接使用本文的一键命令完成部署;如果要在企业内部长期运行,建议在上线前补齐以下工作:
- 修改所有默认密码;
- 配置 HTTPS;
- 关闭不必要的公网端口;
- 定期备份数据库和对象存储;
- 接入企业大模型网关;
- 配置日志、监控和告警;
- 制定升级与回滚流程。
只要基础设施规划合理,Coze 私有化部署可以很好地支撑企业内部 Agent 平台、智能客服、知识库问答、流程自动化助手等应用场景。