Skip to content

部署概览 ​

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

bash
git clone <仓库地址> iotlcm
cd iotlcm/deploy
text
deploy/
├── docker-compose.yml      # 服务编排(含默认口令与端口)
├── config/                 # 各服务配置 + gateway / nginx 两种入口配置
├── schema/init.sql         # MySQL 初始化(单文件,95 表 + 种子数据)
├── tdengine-init/          # 时序库建库建表(首次启动自动执行)
└── data/                   # 运行数据,首次启动自动创建

部署内容 ​

类别服务
基础组件MySQL、Redis、RabbitMQ、Consul、TDengine(流量历史)
管理端admin-svr(后端 8008)、admin-ui(前端 8009)
对外接口openapi(8000)
小程序 / H5app-server(8010)、app-web(8018)
通道upstream-chan(8110 / 8310)、upstream-proxy(8510)
异步与配套worker-svr、sms(11190)、docs(8019)
可选onelink-mock(接口挡板)、bot(飞书通知)、nginx(多域名入口)、gateway(单端口入口 5051)
运营商对接upstream-chan(协议适配)、upstream-proxy(缓存转发)
异步任务worker-svr(批次执行、全量同步)
配套sms(短信)、docs(本文档站)
可选onelink-mock(运营商接口挡板)、bot(飞书通知)、nginx(反向代理)

部署流程 ​

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

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

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

默认口令只用于试用

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

文档导航 ​

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

关键约束 ​

JWT 密钥必须三处一致

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

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

镜像标签不要用 latest

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

修改 schema 脚本不会自动生效

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

服务端口 ​

默认端口规划:

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

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

iotLCM 文档中心