部署指南
ACE = AI Computing Explorer
本指南涵盖 Open ACE 在各种场景下的部署方法。
目录
快速开始
本地部署
# 安装依赖
pip install -r requirements.txt
# 初始化配置
python3 cli.py config init
# 运行数据库迁移
alembic upgrade head
# 启动 Web 服务器
python3 server.py
# 访问 http://localhost:19888
Docker 部署
前提条件
- 已安装 Docker 和 Docker Compose
- Open ACE Docker 镜像(
open-ace:latest) - PostgreSQL 镜像(
postgres:15-alpine)
非 root 运行(默认)
Open ACE 镜像默认以非 root 用户 open-ace(uid 1000)运行。生产阶段中的
USER 1000 指令意味着 docker run、docker-compose 与 Kubernetes 都会以
uid 1000 执行入口脚本,而不再仅依赖清单中的 securityContext。uid/gid 1000
是稳定的,并与镜像中内置的文件属主、K8s 的 runAsUser/runAsGroup: 1000
保持一致。
多用户工作区模式(WORKSPACE_MULTI_USER_MODE=true 或配置中的
workspace.multi_user_mode: true)确实需要 root——它会创建系统用户
(useradd)、修复属主(chown)并在 /home 下切换身份
(sudo -u <user>)。
多用户工作区部署
方式一:一键启动脚本(推荐)
# 使用一键脚本启动多用户模式
./scripts/start-multi-user.sh
脚本会自动:
- 检测 Docker Compose 版本(v1/v2)
- 验证配置文件存在
- 启动多用户模式容器
- 输出访问地址和状态
方式二:Docker Compose Overlay
# 一键启用多用户模式
./scripts/bootstrap-compose-env.sh
docker compose -f docker-compose.yml -f docker-compose.multi-user.yml up -d --wait
docker-compose.multi-user.yml 会自动配置:
- 容器以 root 运行(
user: "0") - 显式授权(
OPENACE_ALLOW_ROOT_MULTI_USER=1) - 配置持久化(
OPENACE_CONFIG_DIR=/home/open-ace/.open-ace)
方式三:手动配置
docker run --user 0 -e WORKSPACE_MULTI_USER_MODE=true \
-e OPENACE_ALLOW_ROOT_MULTI_USER=1 \
-e OPENACE_CONFIG_DIR=/home/open-ace/.open-ace ...
必须同时设置 --user 0(或清单中的 runAsUser: 0)、
OPENACE_ALLOW_ROOT_MULTI_USER=1 和 OPENACE_CONFIG_DIR,否则入口脚本会
以清晰的错误信息退出,而不是默默吞掉非 root 多用户部署会遇到的
useradd/chown 权限失败。
多用户模式常见问题
常见错误和解决方案
| 错误信息 | 原因 | 解决方案 |
|---|---|---|
multi-user workspace mode requires root | 以非 root 运行但启用了多用户模式 | 使用 ./scripts/start-multi-user.sh 或 overlay 文件 |
OPENACE_ALLOW_ROOT_MULTI_USER=1 is not set | 以 root 运行但未显式授权 | 使用 ./scripts/start-multi-user.sh 或设置环境变量 |
工作区加载失败 | iframe 加载失败或超时 | 检查容器日志、验证配置、重启容器 |
docker-compose.multi-user.yml not found | overlay 文件不存在 | 确保正确克隆了仓库,或从 GitHub 下载文件 |
从单用户迁移到多用户
如果您已有单用户模式部署,可按以下步骤迁移:
-
停止现有容器
docker compose down注意:数据不会丢失,Docker 卷会保留
-
检查数据卷
docker volume ls | grep open-ace# 应看到:config-data, postgres-data, workspace-data -
使用多用户模式启动
./scripts/start-multi-user.sh或
docker compose -f docker-compose.yml -f docker-compose.multi-user.yml up -d -
验证数据完整性
- 登录系统,检查用户和会话数据是否存在
- 检查配置是否正确加载
- 测试工作区功能
迁移验证清单
- 数据库数据保留(用户、会话、配置)
- Docker 卷数据保留(config-data, workspace-data)
- 用户可以正常登录
- 工作区可以正常创建和使用
- 已有的 AI 会话可以恢复
从 config.json 迁移
如果您之前在 config.json 中设置了 "multi_user_mode": true:
- 推荐使用 docker-compose.multi-user.yml(见上方)
- 或在 config.json 中将
"multi_user_mode"设置为false,改用环境变量控制
注意:多用户模式需要容器以 root 运行,仅适用于受控环境。生产环境请确保 设置强密码和安全密钥。
初始部署
部署以 Docker Compose 为准:
# 1. 在服务器上克隆仓库
git clone https://github.com/open-ace/open-ace.git
cd open-ace
# 2. 生成 .env(SECRET_KEY、OPENACE_ENCRYPTION_KEY、UPLOAD_AUTH_KEY 等)
./scripts/bootstrap-compose-env.sh
# 3. 启动(默认拉取 openace/open-ace:latest 预构建镜像)
docker compose up -d --wait
# 4. 验证
docker compose ps
docker compose logs -f open-ace
离线环境可在有网络的机器上先 docker pull openace/open-ace:latest,再
docker save openace/open-ace:latest | gzip > open-ace-images.tar.gz 传到服务器,
用 gunzip -c open-ace-images.tar.gz | docker load 导入后启动。
部署配置
主要配置通过仓库根目录的 .env 和 docker-compose.yml 控制:
| 设置 | 环境变量 | 默认值 |
|---|---|---|
| Web 端口 | PORT | 19888 |
| 镜像 | IMAGE_NAME | openace/open-ace:latest |
| 数据库用户 | DB_USER | ace |
| 数据库名称 | DB_NAME | ace |
| 数据库密码 | DB_PASSWORD | dev-password-change-in-production(生产必须修改) |
注意:工作区在单独的容器中运行。启用后,Open ACE 将连接到指定 URL 的工作区服务。请确保工作区容器正在运行且端口可访问。
默认凭证
部署完成后,使用以下凭证登录:
用户名: admin
密码: admin123
重要:首次登录后请立即修改默认密码!
在启动生产环境前,请先在 .env 或密钥管理系统中提供以下密钥:
SECRET_KEY— Flask 会话密钥,必须是强随机唯一值OPENACE_ENCRYPTION_KEY— 专用于 API Key / SMTP 密码存储加密的独立密钥UPLOAD_AUTH_KEY— 上传接口使用的共享认证密钥
目录结构
open-ace/ # 克隆的仓库目录
├── docker-compose.yml # Docker Compose 配置
├── .env # 环境变量(敏感信息!)
└── config/ # 配置文件(挂载进容器)
└── config.json # 主配置文件
注意:数据存储在 PostgreSQL 容器的卷(postgres-data)中,而非主机文件系统。
管理命令
cd /path/to/open-ace
# 查看状态
docker compose ps
# 查看日志
docker compose logs -f
# 仅查看 open-ace 日志
docker compose logs -f open-ace
# 重启服务
docker compose restart
# 仅重启 open-ace
docker compose restart open-ace
# 停止服务
docker compose down
# 启动服务
docker compose up -d
更新 Open ACE 镜像
发布新版本时 ,只需更新 Docker 镜像:
方法一:拉取新镜像(推荐)
cd /path/to/open-ace
# 1. 拉取新镜像
docker compose pull
# 2. 重启 open-ace 容器
docker compose up -d open-ace
# 3. 验证启动
docker compose logs -f open-ace