Appearance
平台安装部署
本文按步骤安装 Docker、中间件与 ProCode 系统;首次启动可自动还原站点库与业务库。
交付压缩包解压后为两个目录:
middleware/ # 中间件
docker-compose.yml
.env
README.md
initdb/ # 首次启动自动建库/还原
procode/ # ProCode 系统
docker-compose.yml
.env
config/
appsettings.json # 应用配置
log4net.config # 日志配置
license.lic # 许可证(交付默认不匹配,需按下方申请替换)
skills/ # 内置技能包| 组件 | 说明 |
|---|---|
| 中间件 | MySQL、MongoDB、Redis、MinIO、Kafka、Qdrant |
| ProCode 系统 | Web(6001)、API(6002,容器名 procode-service) |
| MySQL 库 | pro_code_site(站点库)、pro_code(业务库) |
| MongoDB | 审计日志、异常日志、登录日志 |
中间件与 ProCode 系统默认密码均为 ProCode@2026。
安装过程
1. 安装 Docker
bash
docker --version
docker compose version未安装时按操作系统官方文档安装 Docker Engine(含 Compose 插件)。
2. 下载部署包
仓库:https://gitee.com/pro_code/deployment.git
bash
cd /data
git clone https://gitee.com/pro_code/deployment.git
# 得到 middleware/、procode/
mkdir -p /data/middleware/data/{minio,mysql,mongodb,redis,kafka,qdrant}若仓库内容在子目录,将 middleware、procode 放到 /data 下再启动。
3. 修改中间件默认配置
bash
cd /data/middleware
# 编辑 .env:至少把 SITE_DOMAIN 改成服务器 IP| 变量 | 说明 | 交付默认 |
|---|---|---|
SITE_DOMAIN | 浏览器访问主机(IP/域名),须与地址栏一致 | 127.0.0.1(部署前必改) |
MYSQL_ROOT_PASSWORD | MySQL root 密码 | ProCode@2026 |
MYSQL_DATABASE | 首次自动创建的库 | pro_code_site |
MINIO_ROOT_USER / MINIO_ROOT_PASSWORD | MinIO | root / ProCode@2026 |
MONGO_ROOT_USER / MONGO_ROOT_PASSWORD | MongoDB | root / ProCode@2026 |
REDIS_PASSWORD | Redis | ProCode@2026 |
KAFKA_CLUSTER_ID | Kafka 集群 ID | 保持交付值,初始化后勿改 |
首次启动 MySQL 时,
initdb/01-restore.sh会在导入 SQL 后按.env改写下列位置(改密码时请保持各服务密码与.env一致):
库 表 改写内容 pro_code_sitet_sitef_domain、引擎库连接、Redis/Mongo/MinIO/Kafka/Qdrant 等pro_codet_site同上(运行态站点配置) pro_codet_database业务库 f_host/f_database/ 账号密码
4. 启动中间件
| 库名 | 用途 | 交付文件 |
|---|---|---|
pro_code_site | 站点库 | middleware/initdb/sql/pro_code_site.sql |
pro_code | 业务库 | middleware/initdb/sql/pro_code.sql |
交付 SQL 在首次空库启动时由 initdb/01-restore.sh 自动还原;脚本会按 SITE_DOMAIN 与中间件密码写入 pro_code_site.t_site、pro_code.t_site、pro_code.t_database(含 MySQL / Redis / Mongo / MinIO / Kafka / Qdrant 连接)。
bash
cd /data/middleware
docker compose pull
docker compose up -d
docker compose ps
# 首次空数据目录时,MySQL 自动建库并还原 initdb/sql 中的脚本
docker logs procode-mysql 2>&1 | grep initdb仅当 /data/middleware/data/mysql 为空(首次初始化)时自动还原;已有数据目录不会重复导入。事后改域名或密码须在 MySQL 中手工更新上述三张表,见交付包 middleware/README.md 与 平台初始化配置。
已有数据目录时,只改
.env不会改库内已有密码/域名。
5. 修改 ProCode 系统配置
bash
cd /data/procode
# 编辑 .env:API_BASE 主机与 middleware 的 SITE_DOMAIN 保持一致5.1 编辑 procode/.env
| 变量 | 说明 |
|---|---|
PROCODE_SERVICE_IMAGE | API 镜像(如 .../procode-service:7.0.0.1) |
PROCODE_WEB_IMAGE | Web 镜像(如 .../procode-web:7.0.0.1) |
PROCODE_WEB_PORT | Web 宿主机端口,默认 6001 |
PROCODE_SERVICE_PORT | API 宿主机端口,默认 6002 |
API_BASE | 浏览器可访问的 API 地址,如 http://服务器IP:6002(主机须与 SITE_DOMAIN 一致) |
DB_CONNECTION_STRING | MySQL 站点库连接(库名 pro_code_site,主机可用 procode-mysql) |
REDIS_CONNECTION | Redis 连接(须含与中间件一致的密码) |
JWT_SIGNING_KEY | 至少 32 字符 |
KAFKA_SERVERS | 如 procode-kafka:9092 |
QDRANT_URL | 如 http://procode-qdrant:6333 |
API_BASE 须为浏览器可达的 IP/域名,不要写 Docker 内部服务名或仅本机 localhost(除非只在本机浏览器访问)。
5.2 编辑 procode/config/appsettings.json
| 项 | 说明 |
|---|---|
Service:Port | 与 PROCODE_SERVICE_PORT 一致(默认 6002) |
ConnectionStrings:DefaultConnection | 可被环境变量覆盖;建议与 .env 中站点库一致 |
Jwt | 建议与 .env 中 JWT 一致 |
Plugin | 交付默认即可 |
5.3 许可证(必做)
交付包内 config/license.lic 默认与当前服务器不匹配,API 无法正常启动,属预期现象。
申请正式授权:
- 启动一次 API,查看控制台日志中的注册码(机器码):
bash
cd /data/procode
docker compose up -d procode-service
docker compose logs procode-service 2>&1 | grep '当前机器码'
# 或更宽:grep -E '机器码|许可证'日志中类似:
text
当前机器码:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
许可证机器码不匹配。期望=...,当前=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
许可证校验失败,应用程序无法启动注册码即日志里的「当前机器码」。启动校验会先打出该行再因不匹配退出,故默认 license 下也能从日志取到。也可查看卷内文件:
docker compose exec procode-service cat /app/logs/procode.log | grep '当前机器码'(容器若已退出,可直接看宿主机挂载的procode-logs)。
- 将上述**注册码(当前机器码)**提供给运营商,申请授权。
- 运营商下发正式
license.lic后,覆盖procode/config/license.lic。 - 重新启动 API:
bash
cd /data/procode
docker compose up -d procode-service
docker compose logs -f procode-service
# 看到「许可证校验通过」即可机器码与服务器硬件绑定。更换宿主机或关键硬件后需重新申请。
业务库 pro_code 连接在首次还原时由 initdb 写入 pro_code.t_site 与 pro_code.t_database;登录前建议按 平台初始化配置 核对三处记录。
6. 启动 ProCode 系统
bash
cd /data/procode
docker compose pull
docker compose up -d
docker compose ps
docker compose logs -f procode-service确认日志出现「许可证校验通过」后,再访问:
| 入口 | 地址 |
|---|---|
| Web | http://服务器IP:6001 |
| API | http://服务器IP:6002 |
登录后继续 平台初始化配置。
中间件与端口一览
| 服务 | 容器名 | 端口 | 用途 |
|---|---|---|---|
| MinIO | procode-minio | 9000 / 9001 | 对象存储 |
| MySQL | procode-mysql | 3306 | pro_code_site、pro_code |
| MongoDB | procode-mongodb | 27017 | 审计 / 异常 / 登录日志 |
| Redis | procode-redis | 6379 | 缓存 |
| Kafka | procode-kafka | 9092 | 消息队列 |
| Qdrant | procode-qdrant | 6333 / 6334 | 向量库 |
| Web | procode-web | 6001 | ProCode 系统 Web |
| API | procode-service | 6002 | ProCode 系统 API |
验收检查
| 检查项 | 期望 |
|---|---|
cd /data/middleware && docker compose ps | 核心容器运行中 |
| MySQL | 已有 pro_code_site、pro_code 且已还原 |
cd /data/procode && docker compose ps | procode-service、procode-web 运行中 |
| 浏览器 | :6001 可打开并调用 API |
| 登录 | 能进入系统并加载菜单 |
常见问题
| 现象 | 处理方向 |
|---|---|
网络 procode-storage 不存在 | 先启动 middleware |
| 许可证错误 / 服务反复退出 | 交付默认 license.lic 不匹配;从日志取注册码交运营商,替换后再启 |
| Web 能开但接口失败 | 检查 API_BASE、防火墙;确认 API 日志已「许可证校验通过」 |
| 站点未找到 / 404 | pro_code_site.t_site / pro_code.t_site 的 f_domain 是否等于浏览器主机;API_BASE 是否同源 |
| 连不上 MySQL | .env 密码/库名是否与中间件一致;主机名可用 procode-mysql |
| Redis 认证失败 | REDIS_CONNECTION 是否带正确 password=(服务名 redis) |
| 连不上引擎库 / 业务无表 | pro_code.t_database 是否指向 procode-mysql / 库名 pro_code;密码是否与 middleware 一致 |
