f7cab5ad5c
mirror-to-gitee / mirror (push) Successful in 14s
把原来 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 仓后镜像)
- 文档内跨仓绝对链接改为仓内相对路径;部署/构建文档改为单仓路径
3.7 KiB
3.7 KiB
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。