Files
iotlcm/docs/docs/deploy/index.md
T
MiFaZhan f7cab5ad5c
mirror-to-gitee / mirror (push) Successful in 14s
chore: 整合为单仓 iotlcm(12 个仓 → 1 个仓)
把原来 12 个独立仓合并为单仓多服务结构,各仓完整提交历史通过
read-tree 并入保留(137 个提交,blame 可追溯)。

目录:
  admin-svr/ admin-ui/ app/{server,app}/ openapi/ worker-svr/
  upstream-chan/ upstream-proxy/ sms/ bot/ docs/ onelink-mock/ deploy/

同时:
- 新增根 README(目录说明、快速开始、源码构建、镜像发布、许可)
- 新增根 Makefile(make build / test / images / docs)
- 新增根 .gitattributes / .gitignore,删掉 12 份重复的 Apache LICENSE
  (admin-ui/ 与 app/app/ 的 MIT 上游许可保留)
- 各服务的 .gitea/workflows 收敛到仓根:trigger-jenkins.yml(tag 构建全部
  服务)+ mirror-to-gitee.yml(自动建 Gitee 仓后镜像)
- 文档内跨仓绝对链接改为仓内相对路径;部署/构建文档改为单仓路径
2026-11-02 13:35:58 +08:00

3.7 KiB
Raw Blame History

title, description, outline
title description outline
部署概览 IotLCM 平台的部署方式、构成与前置条件 deep

部署概览

IotLCM 平台通过 Docker Compose 在单机上部署。部署编排与数据库初始化脚本在代码仓的 deploy/ 目录:

git clone <仓库地址> iotlcm
cd iotlcm/deploy
deploy/
├── docker-compose.yml      # 服务编排(含默认口令与端口)
├── config/                 # 各服务配置,10 份,已带可用默认值
└── schema/                 # 数据库初始化脚本,13 个,首次启动自动执行

部署内容

类别 服务
基础组件 MySQL、Redis、RabbitMQ、Consul
管理端 admin-svr(后端)、admin-ui(前端)
对外接口 openapi
小程序 / H5 app-server(后端)、app-web(前端)
运营商对接 upstream-chan(协议适配)、upstream-proxy(缓存转发)
异步任务 worker-svr(批次执行、全量同步)
配套 sms(短信)、docs(本文档站)
可选 onelink-mock(运营商接口挡板)、bot(飞书通知)、nginx(反向代理)

部署流程

git clone <仓库地址> iotlcm
cd iotlcm/deploy
docker compose up -d

三步,不需要复制或修改任何文件——配置与编排都随仓库分发且带可用默认值。首次启动自动建库并导入 schema,约 1~2 分钟。

启动后访问 http://<宿主机IP>:8009,账号 admin,口令见 docker-compose.yml。

::: warning 默认口令只用于试用 正式部署前必须修改数据库、Redis、RabbitMQ、admin 账号口令与 JWT 密钥,详见配置说明。 :::

文档导航

文档 内容
环境准备 硬件、系统、Docker 版本、镜像仓库、端口规划
配置说明 docker-compose.yml 与 config/ 各项含义
启动与验证 启动流程、验证清单、首次登录
其他部署方式 二进制、自建镜像、分离、离线
可选服务 接口挡板、飞书通知、反向代理
升级与备份 版本固定、升级回滚、数据备份
故障排查 常见问题与处理

关键约束

::: warning JWT 密钥必须三处一致 admin-svr、openapi、app-server 共用同一个 JWT_SIGNING_KEY。不一致的表现是能登录管理端,但调用外部 API 或小程序端提示未授权。

更换该值会使已签发的全部登录态与接口令牌立即失效,需在维护窗口操作。 :::

::: tip 镜像标签不要用 latest 生产环境必须把 TAG 固定到具体版本号。latest 会随仓库推送变化,同一份编排在不同时间拉到的镜像不同,出问题无法定位,也无法明确回滚。 :::

::: danger 修改 schema 脚本不会自动生效 数据库初始化只在 data/mysql 为空时执行。改了 schema/ 下的脚本必须清空数据卷才会重跑,而清空会丢失全部数据。生产环境禁止这样操作。 :::

服务端口

默认端口规划:

端口 服务 是否对外
8000 openapi 经反向代理
8008 admin-svr 经反向代理
8009 admin-ui 经反向代理
8010 app-server 经反向代理
8018 app-web 经反向代理
8019 docs 经反向代理
3306 / 6379 / 5672 / 8500 MySQL / Redis / RabbitMQ / Consul 仅内网
8110 / 8310 / 8510 upstream-chan / upstream-proxy 仅内网
11190 / 11200 sms 仅内网
8080 onelink-mock 仅联调

端口冲突时修改 docker-compose.yml 中对应变量,不要直接改 docker-compose.yml。