fd72d088fc04346a563aba3da3bf521c1da9fd1a
17 处镜像地址全部更正。已验证:域名解析正常(47.108.26.223), /v2/ 返回 401(可访问,需登录)。
IotLCM 部署仓
IotLCM 物联网卡管理平台的部署编排与数据库初始化脚本。使用 Docker Compose 在单机上拉起完整平台。
一键启动
git clone <本仓库地址> iotlcm-deploy
cd iotlcm-deploy
docker compose up -d
无需复制或修改任何文件,配置里已带可用默认值。首次启动会自动建库、建表、创建应用账号并导入种子数据,约需 1~2 分钟。
等待 MySQL 健康后其余服务依次启动,观察进度:
docker compose logs -f mysql
启动完成后访问 http://<宿主机IP>:8009:
| 项 | 值 |
|---|---|
| 账号 | admin |
| 口令 | Iotlcm2026Default |
⚠️ 正式使用前必须修改默认口令,见下方「上线前必改」。
可选服务
docker compose --profile with-mock up -d # 运营商接口挡板
docker compose --profile with-bot up -d # 飞书通知
docker compose --profile with-nginx up -d # 自带反向代理
多个 profile 可组合:--profile with-mock --profile with-nginx up -d
部署内容
| 类别 | 服务 |
|---|---|
| 基础组件 | MySQL、Redis、RabbitMQ、Consul |
| 业务服务 | admin-svr(管理端后端)、admin-ui(管理端前端)、openapi(对外 API)、app-server(小程序后端)、app-web(小程序前端)、upstream-chan(运营商对接)、upstream-proxy(通道缓存转发)、worker-svr(异步任务)、sms(短信)、docs(文档站) |
| 可选 | onelink-mock(运营商接口挡板)、bot(飞书通知)、nginx(反向代理) |
目录结构
iotlcm-deploy/
├── docker-compose.yml # 服务编排(含全部默认值)
├── config/ # 各服务配置,已带可用默认值
│ ├── admin-svr/config.yaml
│ ├── admin-ui/default.conf
│ ├── app-server/config.yaml
│ ├── bot/config.yaml
│ ├── nginx/iotlcm.conf
│ ├── openapi/config.yaml
│ ├── sms/config.yaml
│ ├── upstream-chan/config.yaml
│ ├── upstream-proxy/config.yaml
│ └── worker-svr/config.yaml
├── schema/ # 数据库初始化脚本(首次启动自动执行)
└── data/ # 运行数据(首次启动自动创建,不入版本库)
上线前必改
默认口令仅用于快速试用。正式部署前必须修改以下内容,具体位置见部署手册:
| 项 | 位置 |
|---|---|
| 数据库口令(root 与应用账号) | docker-compose.yml + config/*/config.yaml + schema/04-users.sh |
| Redis 口令 | docker-compose.yml + config/*/config.yaml |
| RabbitMQ 口令 | docker-compose.yml + config/*/config.yaml |
| admin 初始口令 | docker-compose.yml + schema/05-reset-passwords.sh |
| JWT 签名密钥 | config/admin-svr、config/openapi、config/app-server 三处 |
| 对外域名 | config/nginx/iotlcm.conf |
::: warning 改口令必须多处同步 因为配置文件里是字面值(未使用环境变量),改口令时编排、配置、初始化脚本三处必须一致,漏改会导致服务连不上数据库。 :::
重要提示
JWT_SIGNING_KEY必须在admin-svr、openapi、app-server三者间完全一致,否则令牌跨服务不通- 镜像标签不要用
latest,生产环境请固定到具体版本 - 改
schema/下的脚本不会自动生效,需要清空data/mysql重新初始化(会丢失全部数据) - 默认只监听
127.0.0.1的服务需通过反向代理对外
许可
Description
Languages
Go
69.4%
Vue
15.2%
TypeScript
12%
PLpgSQL
2.4%
JavaScript
0.4%
Other
0.3%