init: IotLCM 开源版部署仓

内容:
- docker-compose.yml:14 个基础/业务服务 + 3 个可选 profile(with-mock 挡板、with-bot、with-nginx)
- .env.example:集中管理镜像仓库、口令、端口;必填项缺失时 compose 直接报错退出
- config.example/:10 份配置模板,全部为占位值与注释说明
- schema/:12 个初始化脚本,按文件名顺序由 MySQL initdb 自动执行

脱敏处理:
- 生产/内网 IP、镜像仓库地址、公司名、真实域名全部清除
- 演示账号保留 18 个(出库与划拨依赖账号与部门树的关联),
  昵称/邮箱/手机号/登录IP/头像改为占位或编造值
- 数据库账号与 admin 口令改为初始化时按 .env 注入计算
- 通道模板与 Mock 通道的上游密钥置空
- Mock 通道地址指向 compose 内 onelink-mock 服务

部署时用 --profile with-mock 启动运营商接口挡板,即可在无真实运营商环境时跑通全链路。
This commit is contained in:
MiFaZhan
2026-10-28 13:40:12 +08:00
commit bc2c7bcc6b
26 changed files with 7264 additions and 0 deletions
+45
View File
@@ -0,0 +1,45 @@
-- ============================================
-- 演示环境种子数据:通道模板(2026-10-27)
-- 来源:生产 db_iotlcm.t_sim_channel_template(DBX 直连导出 23 条)
--
-- **筛选口径(2026-10-27 裁定)**:演示环境只保留 3 条模板 ——
-- 移动 `sim_yd_v5` 中国移动V5模板
-- 电信 `sim_dx_v1` 电信BOSS卡API
-- 移动Mock `sim_yd_mock_v5` 移动Mock(演示实际上游,Mock 通道引用它)
-- 生产其余 20 条是三方共享 Token 渠道(腾宇/蓝尚/千寻/岱合/云达/铭谦/
-- 河南信金/澜数/倍信/梦网/乐联等),演示环境不需要,全部剔除。
-- 附带好处:原先需为 `sim_onelink_henan_xinjing_v1` 做真实密钥脱敏,
-- 该条已不在保留范围内,脱敏问题随之消失。
--
-- 语义:把模板表重置为「恰好这 3 条」——`DELETE ... NOT IN` 保证幂等,
-- 即使演示库被人手工加过三方模板,重跑本文件也会回到基线。
--
-- 幂等:可重复执行。
-- 执行顺序:06(在 01-05 之后)
-- ============================================
SET NAMES utf8mb4;
USE `db_iotlcm`;
-- 重置为基线:只保留 移动 / 电信 / 移动Mock
DELETE FROM `t_sim_channel_template`
WHERE `temp_key` NOT IN ('sim_dx_v1', 'sim_yd_v5', 'sim_yd_mock_v5');
INSERT INTO `t_sim_channel_template`
(`id`,`temp_key`,`temp_name`,`temp_model`,`temp_config`,`temp_status`,`remark`,`tenant_id`,`created_dept`,`created_by`,`created_at`,`updated_by`,`updated_at`)
VALUES
(1,'sim_dx_v1','电信BOSS卡API','direct','{"api":{"baseUrl":"https://cmp-api.ctwing.cn:20164"}}',0,'','000000',103,1,'2026-06-12 10:16:22',NULL,'2026-09-08 20:31:54'),
(2,'sim_yd_v5','中国移动V5模板','direct','{"api":{"baseUrl":"https://api.iot.10086.cn/v5/"},"token":{"path":"/ec/get/token"}}',0,NULL,'000000',103,1,'2026-06-12 10:17:03',NULL,'2026-09-08 20:31:54'),
(4,'sim_yd_mock_v5','移动Mock','direct','{"api":{"baseUrl":"http://onelink-mock:8080/v5/"}}',0,NULL,'000000',103,1,'2026-08-14 11:00:53',NULL,'2026-09-08 20:31:54')
ON DUPLICATE KEY UPDATE
`temp_name` = VALUES(`temp_name`),
`temp_model` = VALUES(`temp_model`),
`temp_config` = VALUES(`temp_config`),
`temp_status` = VALUES(`temp_status`),
`remark` = VALUES(`remark`),
`updated_at` = VALUES(`updated_at`);
-- 自检:应恰好 3 条
SELECT COUNT(*) AS template_count,
GROUP_CONCAT(`temp_key` ORDER BY `id`) AS temp_keys
FROM `t_sim_channel_template`;