# IotLCM 部署仓 IotLCM 物联网卡管理平台的部署编排与数据库初始化脚本。使用 Docker Compose 在单机上拉起完整平台。 ## 一键启动 ```bash git clone <本仓库地址> iotlcm-deploy cd iotlcm-deploy docker compose up -d ``` 无需复制或修改任何文件,配置里已带可用默认值。首次启动会自动建库、建表、创建应用账号并导入种子数据,约需 1~2 分钟。 等待 MySQL 健康后其余服务依次启动,观察进度: ```bash docker compose logs -f mysql ``` 启动完成后访问 `http://<宿主机IP>:8009`: | 项 | 值 | | --- | --- | | 账号 | `admin` | | 口令 | `Iotlcm2026Default` | > ⚠️ **正式使用前必须修改默认口令**,见下方「上线前必改」。 ## 可选服务 ```bash 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/ # 运行数据(首次启动自动创建,不入版本库) ``` ## 上线前必改 默认口令仅用于快速试用。**正式部署前必须修改以下内容**,具体位置见[部署手册](https://git.5iot.com/iotlcm-public/iotlcm-docs): | 项 | 位置 | | --- | --- | | 数据库口令(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` 的服务需通过反向代理对外 ## 许可 [Apache License 2.0](LICENSE)