← 返回文档索引

慧行引擎部署指南 (Deployment Guide)

版本: V1.0 最后更新: 2026-03-18 适用环境: Ubuntu 24.04 LTS (远程服务器) 前置条件: 具有 root 权限


1. 环境准备

1.1 系统要求

1.2 安装 Docker

# 1. 更新包索引
apt update

# 2. 安装依赖
apt install -y ca-certificates curl gnupg

# 3. 添加 Docker 官方 GPG 密钥
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
chmod a+r /etc/apt/keyrings/docker.gpg

# 4. 设置仓库
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" | \
  tee /etc/apt/sources.list.d/docker.list > /dev/null

# 5. 安装 Docker Engine
apt update
apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# 6. 验证安装
docker --version
docker compose version

1.3 常见问题:Windows vs Linux

问题: 在 Windows 上开发时,Docker 配置常因路径、权限问题失败。 解决: 生产环境必须使用 Linux (Ubuntu)。所有开发、测试、部署统一在远程 Ubuntu 服务器上进行。


2. 部署慧行引擎

2.1 获取代码

cd /root/.openclaw/workspace
git clone <repository-url> huixing-engine  # 如果有 Git 仓库
# 或直接使用现有目录
cd huixing-engine

2.2 配置环境变量 (可选)

# 复制环境变量模板
cp .env.example .env

# 编辑环境变量
nano .env

.env 内容示例:

NODE_ENV=production
DB_HOST=postgres
DB_PORT=5432
DB_USERNAME=postgres
DB_PASSWORD=huixing_secret_2026  # 生产环境请修改为强密码
DB_DATABASE=huixing_db

2.3 启动 Docker 容器

# 1. 构建并启动
docker compose up -d --build

# 2. 查看日志
docker compose logs -f api

# 3. 检查容器状态
docker compose ps

预期输出:

NAME                IMAGE                     STATUS
huixing-api         huixing-engine-api        Up
huixing-postgres    postgres:15-alpine        Up
huixing-mongo       mongo:7                   Up

2.4 验证部署

# 测试 API 健康
curl http://localhost:3000/api/v1/engineering/tree?tenantId=test

# 预期返回:空数组 [] 或 JSON 数据

3. 故障排查 (Troubleshooting)

问题 1: npm error enoent Could not read package.json

原因: backend 目录缺少 package.json解决:

cd /root/.openclaw/workspace/huixing-engine/backend
# 确保 package.json 存在
ls -la package.json
# 如果不存在,需创建或从备份恢复

问题 2: connect ECONNREFUSED (数据库连接失败)

原因: PostgreSQL 容器启动慢于 API 容器。 解决:

# 重启 API 容器 (让它等待数据库就绪)
docker compose restart api

# 查看日志确认连接成功
docker compose logs api | grep "Nest application successfully started"

问题 3: 宝塔面板 Docker 管理器报错 KeyError: 'Labels'

原因: 宝塔面板版本 bug,不影响 Docker 本身运行。 解决: 忽略该错误,使用命令行 docker compose 操作。

问题 4: 端口被占用

原因: 3000/5432/27017 端口已被其他程序占用。 解决:

# 查看端口占用
lsof -i :3000
# 修改 docker-compose.yml 中的端口映射
ports:
  - "3001:3000"  # 改为 3001

4. 生产环境注意事项

4.1 安全加固

4.2 数据持久化

4.3 性能优化


5. 备份与恢复

5.1 备份数据库

# 备份 PostgreSQL
docker compose exec postgres pg_dump -U postgres huixing_db > backup_$(date +%F).sql

# 备份 MongoDB
docker compose exec mongo mongodump --out=/data/backup

5.2 恢复数据库

# 恢复 PostgreSQL
cat backup_2026-03-18.sql | docker compose exec -T postgres psql -U postgres -d huixing_db

6. 下一步


文档结束

目录