616451b29d
原 13 个分散脚本整合为 schema/init.sql 一个文件,来源换成演示环境
正在使用的种子库(结构已与生产核对,89 表基线)。
内容变化(相比旧的 12 文件版本):
- 新增 v1.0.4 前置段:t_export_task(导出中心)、sys_notice_user、
card_channel_assoc.channel_id 扩宽为 varchar(64)、9 条菜单权限
- 修正 3 个真实缺陷:cron 表达式 L 改为 28-31(调度器可解析)、
通道模板 created_dept 103 改为 1(悬空机构致列表恒为空)、
菜单 444 的 path 修正
- 数据库共 91 表(旧版 89,v1.0.4 新增 2 张)
脱敏:
- 18 个演示账号保留(出库/划拨依赖账号与部门树关联),
昵称/邮箱/手机号/登录IP/头像改为占位或编造值
- 归属部门、租户的联系电话与邮箱一并处理
- 公司名、组织名 → 示例企业
- 内网/生产 IP、内部域名 → 删除或改为服务名
- Mock 通道地址指向 onelink-mock 服务
- 通道模板真实上游密钥置空
- sys_social(微信绑定)不随分发
口令处理:改为纯 SQL,不再用 .sh + 环境变量。
业务账号:CREATE USER 语句内字面口令
种子账号:UPDATE sys_user SET password = MD5(CONCAT(MD5('<口令>'), MD5(salt)))
与 docker-compose.yml、config/*/config.yaml 保持同一口令
已验证:本地 MySQL 8.0 容器按 docker-entrypoint-initdb.d 实际导入,
无报错;表 91、菜单 456、账号 18、字典 86/436、通道模板 3、Mock 通道 1、
导出中心与通知表各 1、定时任务 20;18 条口令哈希自洽;
应用账号 u_iotlcm 可连库查询。
95 lines
3.6 KiB
Markdown
95 lines
3.6 KiB
Markdown
# 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/init.sql # 数据库初始化(单文件,首次启动自动执行)
|
||
└── data/ # 运行数据(首次启动自动创建,不入版本库)
|
||
```
|
||
|
||
## 上线前必改
|
||
|
||
默认口令仅用于快速试用。**正式部署前必须修改以下内容**,具体位置见[部署手册](https://git.5iot.com/iotlcm-public/iotlcm-docs):
|
||
|
||
| 项 | 位置 |
|
||
| --- | --- |
|
||
| 数据库口令(root 与应用账号) | `docker-compose.yml` + `config/*/config.yaml` + `schema/init.sql` |
|
||
| Redis 口令 | `docker-compose.yml` + `config/*/config.yaml` |
|
||
| RabbitMQ 口令 | `docker-compose.yml` + `config/*/config.yaml` |
|
||
| admin 初始口令 | `docker-compose.yml` + `schema/init.sql` |
|
||
| 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)
|