- 旧骨架的方案对比页移到 projects/iotlcm/compare.md,站内链接与侧边栏同步 - 旧骨架的功能矩阵与边界段并入 iotlcm 详情页;社区页独有内容并入 about.md - favicon 移到 pages/public/(vitepress 的 publicDir 相对 srcDir 解析,原位置不落地) - compose 绑定地址参数化:默认 127.0.0.1,NAT 转发需 PORTAL_BIND_ADDR=0.0.0.0 - 两种形态构建产物站内链接自检均无死链
This commit is contained in:
@@ -52,6 +52,7 @@ export const projects: Project[] = [
|
|||||||
{ text: '快速开始', link: '/projects/iotlcm/guide/quickstart' },
|
{ text: '快速开始', link: '/projects/iotlcm/guide/quickstart' },
|
||||||
{ text: '部署与运维', link: '/projects/iotlcm/guide/deploy' },
|
{ text: '部署与运维', link: '/projects/iotlcm/guide/deploy' },
|
||||||
{ text: '教程视频', link: '/projects/iotlcm/guide/tutorial' },
|
{ text: '教程视频', link: '/projects/iotlcm/guide/tutorial' },
|
||||||
|
{ text: '方案对比', link: '/projects/iotlcm/compare' },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -3,24 +3,32 @@
|
|||||||
# docker compose -f deploy/docker-compose.yml up -d --build
|
# docker compose -f deploy/docker-compose.yml up -d --build
|
||||||
#
|
#
|
||||||
# 形态切换(站点资源前缀):
|
# 形态切换(站点资源前缀):
|
||||||
# SITE_BASE=/www/ 子路径形态,挂在已有网关的 /www/ 路径下(默认)
|
# SITE_BASE=/ 独立端口形态,站点独占根路径(默认,推荐用于过渡)
|
||||||
# SITE_BASE=/ 独立域名形态,站点独占域名根路径
|
# SITE_BASE=/www/ 子路径形态,挂在已有网关的 /www/ 路径下
|
||||||
#
|
#
|
||||||
|
# 独立端口形态(过渡,等域名):
|
||||||
|
# PORTAL_BIND_ADDR=0.0.0.0 docker compose -f deploy/docker-compose.yml up -d --build
|
||||||
|
# → http://<主机>:8020/
|
||||||
|
#
|
||||||
|
# 独立域名形态:
|
||||||
# SITE_BASE=/ docker compose -f deploy/docker-compose.yml up -d --build
|
# SITE_BASE=/ docker compose -f deploy/docker-compose.yml up -d --build
|
||||||
|
# → 由域名 vhost 指向本容器
|
||||||
services:
|
services:
|
||||||
portal:
|
portal:
|
||||||
build:
|
build:
|
||||||
context: ..
|
context: ..
|
||||||
dockerfile: Dockerfile
|
dockerfile: Dockerfile
|
||||||
args:
|
args:
|
||||||
SITE_BASE: '${SITE_BASE:-/www/}'
|
SITE_BASE: '${SITE_BASE:-/}'
|
||||||
image: snowgoat-open-portal:local
|
image: snowgoat-open-portal:local
|
||||||
container_name: snowgoat-open-portal
|
container_name: snowgoat-open-portal
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
ports:
|
ports:
|
||||||
- "127.0.0.1:${PORTAL_PORT:-8020}:80"
|
# 默认只绑本机回环;要让路由器 NAT 转发进来,必须显式改成 0.0.0.0
|
||||||
|
# 或本机内网地址(例:PORTAL_BIND_ADDR=0.0.0.0)。
|
||||||
|
- "${PORTAL_BIND_ADDR:-127.0.0.1}:${PORTAL_PORT:-8020}:80"
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: ["CMD", "wget", "--quiet", "--output-document=/dev/null", "http://127.0.0.1${SITE_BASE:-/www/}"]
|
test: ["CMD", "wget", "--quiet", "--output-document=/dev/null", "http://127.0.0.1${SITE_BASE:-/}"]
|
||||||
interval: 30s
|
interval: 30s
|
||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 3
|
retries: 3
|
||||||
|
|||||||
@@ -18,6 +18,27 @@ outline: deep
|
|||||||
2. 提交前确保各自的构建与测试通过(Go 服务跑 `go build ./...` 与 `go test ./...`,前端跑 `pnpm build`)
|
2. 提交前确保各自的构建与测试通过(Go 服务跑 `go build ./...` 与 `go test ./...`,前端跑 `pnpm build`)
|
||||||
3. 提交合入请求并说明变更动机
|
3. 提交合入请求并说明变更动机
|
||||||
|
|
||||||
|
## 各项目仓库
|
||||||
|
|
||||||
|
| 项目 | 仓库 |
|
||||||
|
| --- | --- |
|
||||||
|
| iotLCM | <https://git.5iot.com/iotlcm-public/iotlcm> |
|
||||||
|
| 秀杰 DTU 管理平台 | <https://gitee.com/snowgoat/xiu-dtu> |
|
||||||
|
| XiuAdmin | <https://gitee.com/snowgoat/xiu-admin> |
|
||||||
|
| 本门户站 | <https://git.5iot.com/iotlcm-public/website> |
|
||||||
|
|
||||||
|
## 提问与反馈
|
||||||
|
|
||||||
|
- 使用问题与缺陷:对应仓库开 issue
|
||||||
|
- 功能建议:issue 里描述清楚场景与期望
|
||||||
|
- 部署排错:先看各项目详情页的常见问题表,再开 issue 附上 `docker compose ps` 与相关日志
|
||||||
|
|
||||||
|
## 运维自用组件的边界
|
||||||
|
|
||||||
|
飞书通知机器人(`with-bot` profile)是给运维方自用的工具,需要自建应用的凭据才能启动,**不是平台功能**,未配置时不影响平台运行。
|
||||||
|
|
||||||
|
运营商通道的生产凭据不随仓发布,需自行向运营商申请。
|
||||||
|
|
||||||
## 门户本身
|
## 门户本身
|
||||||
|
|
||||||
门户是一个独立的 VitePress 工程,与平台代码不在同一个仓库。构建产物是纯静态站点,可用任意静态服务器或容器托管。
|
门户是一个独立的 VitePress 工程,与平台代码不在同一个仓库。构建产物是纯静态站点,可用任意静态服务器或容器托管。
|
||||||
|
|||||||
@@ -0,0 +1,55 @@
|
|||||||
|
---
|
||||||
|
title: 方案对比
|
||||||
|
description: iotLCM 与同类开源方案的能力对比(待产品侧素材补齐)
|
||||||
|
outline: deep
|
||||||
|
---
|
||||||
|
|
||||||
|
# 方案对比
|
||||||
|
|
||||||
|
::: warning 本页待补
|
||||||
|
本页需要「与同行的对比」素材,而该素材依赖产品侧梳理各家官网后给出的结论
|
||||||
|
(周会任务 261102-002 的前置依赖)。骨架已就位,等对比结论到位后填表即可,
|
||||||
|
框架与其它页面一致,不需要再改代码。
|
||||||
|
|
||||||
|
对比口径建议按「能不能装起来 / 能不能接运营商 / 能不能管住卡 / 二次开发成本」四条线走,
|
||||||
|
每条线只写能公开验证的事实(官网文档、许可证、仓库结构),不写主观评价。
|
||||||
|
:::
|
||||||
|
|
||||||
|
## 对比维度(待填)
|
||||||
|
|
||||||
|
| 维度 | 说明 | 可验证依据 |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| 部署门槛 | 是否单机一条命令起、依赖多少中间件 | 官方部署文档 |
|
||||||
|
| 运营商接入 | 支持哪些运营商协议、是否需要逐家申请凭据 | 官方接口文档 |
|
||||||
|
| 卡生命周期 | 入库、划拨、激活、续费、停机、销户覆盖到哪一步 | 官方功能手册 |
|
||||||
|
| 流量与用量 | 实时用量、月累计、达量断网 | 官方功能手册 |
|
||||||
|
| 对外接口 | OpenAPI 版本、鉴权方式、兼容策略 | 官方接口合同 |
|
||||||
|
| 账号与权限 | 多租户、角色、API 凭证 | 官方功能手册 |
|
||||||
|
| 许可证 | 商用与再分发限制 | 仓库 LICENSE |
|
||||||
|
| 二次开发 | 技术栈、语言、代码规模、模块边界 | 仓库结构 |
|
||||||
|
| 文档与教程 | 有无完整手册、部署文档、录屏教程 | 官网与仓库 |
|
||||||
|
|
||||||
|
## 本方案的已知事实
|
||||||
|
|
||||||
|
写这张表时,下面这些是本方案自身已经确定、可直接引用的:
|
||||||
|
|
||||||
|
- 单仓多服务,一次 clone 拿到全部后端服务、前端应用、文档站与部署编排
|
||||||
|
- 一条命令部署:`cd deploy && docker compose up -d`,实测约 30 秒 ~ 1 分钟完成初始化
|
||||||
|
- 运营商协议内置:中国移动 OneLink、中国电信 5G CMP、中国联通 10646,另有共享 Token 接入多家三方渠道商
|
||||||
|
- 卡生命周期覆盖入库 → 划拨 → 激活/续费/停机 → 流量与状态同步 → 销户
|
||||||
|
- 对外接口:OpenAPI V3 + 旧版兼容接口 + 运营商能力代理
|
||||||
|
- 双端界面:Web 管理平台与小程序端(H5)
|
||||||
|
- 许可证:Apache-2.0
|
||||||
|
- 文档站随仓发布,含使用手册、OpenAPI 合同与部署手册
|
||||||
|
|
||||||
|
## 与门户内其它项目的关系
|
||||||
|
|
||||||
|
门户内三个项目的定位不同,不构成竞品关系:
|
||||||
|
|
||||||
|
| 项目 | 定位 | 与其它项目的关系 |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| iotLCM | 物联网卡全生命周期管理平台 | 业务系统,可自行部署到客户环境 |
|
||||||
|
| 秀杰 DTU 管理平台 | DTU 设备全生命周期管理平台 | 业务系统,技术栈与 iotLCM 一致,后台可基于同类底座 |
|
||||||
|
| XiuAdmin | 中后台开发框架 | 开发底座,新项目可用它搭后台 |
|
||||||
|
|
||||||
|
三个项目均为 Apache-2.0,可自由组合使用。
|
||||||
@@ -20,6 +20,8 @@ outline: deep
|
|||||||
|
|
||||||
## 能力概览
|
## 能力概览
|
||||||
|
|
||||||
|
按业务域拆开的能力矩阵:
|
||||||
|
|
||||||
| 域 | 能力 |
|
| 域 | 能力 |
|
||||||
| --- | --- |
|
| --- | --- |
|
||||||
| 卡资产 | 卡信息、批量导入、入库 / 库存 / 出库、批量开停复机、续费、变更套餐、达量断网 |
|
| 卡资产 | 卡信息、批量导入、入库 / 库存 / 出库、批量开停复机、续费、变更套餐、达量断网 |
|
||||||
@@ -27,10 +29,22 @@ outline: deep
|
|||||||
| 资费 | 套餐与流量池、定价、生效与到期策略 |
|
| 资费 | 套餐与流量池、定价、生效与到期策略 |
|
||||||
| 代理商 | 代理商与分佣、划拨与回收 |
|
| 代理商 | 代理商与分佣、划拨与回收 |
|
||||||
| 数据同步 | 流量 / 状态 / IMEI 全量同步与增量对齐、历史账期时序数据 |
|
| 数据同步 | 流量 / 状态 / IMEI 全量同步与增量对齐、历史账期时序数据 |
|
||||||
| OpenAPI | V3 接口、旧版兼容接口、运营商能力代理(白名单转发 / 共享 Token) |
|
| 对外接口 | V3 接口、旧版兼容接口、运营商能力代理(白名单转发 / 共享 Token) |
|
||||||
| 运营 | 工单、预警、执行日志、审计、智能诊断 |
|
| 运营 | 工单、预警、执行日志、审计、智能诊断 |
|
||||||
| 端 | Web 管理端、小程序 / H5 用户端 |
|
| 端 | Web 管理端、小程序 / H5 用户端 |
|
||||||
|
|
||||||
|
细分能力:
|
||||||
|
|
||||||
|
| 模块 | 说明 |
|
||||||
|
| --- | --- |
|
||||||
|
| 卡与库存 | 卡信息检索、按三码查卡、批量导入出入库、库存与出库、批量开停复机 |
|
||||||
|
| 智能诊断 | 结合卡状态、通道与用量给出诊断结论与处置建议 |
|
||||||
|
| 资费与计费 | 套餐与定价管理、用量与流量查询、达量断网阈值 |
|
||||||
|
| 业务受理 | 开通、续费、停复机、变更套餐 |
|
||||||
|
| 通道与上游 | 上游通道配置与凭据、协议适配、共享 Token、缓存转发 |
|
||||||
|
| 组织与账号 | 多租户下的企业与账号治理、角色权限、对外 API 凭证 |
|
||||||
|
| 运维支撑 | 全量同步、批次执行、工单与告警、执行日志、飞书通知、指标与日志 |
|
||||||
|
|
||||||
## 服务构成
|
## 服务构成
|
||||||
|
|
||||||
单仓多服务:全部后端服务、前端应用、文档站与部署编排都在同一个仓库里。
|
单仓多服务:全部后端服务、前端应用、文档站与部署编排都在同一个仓库里。
|
||||||
@@ -56,3 +70,7 @@ outline: deep
|
|||||||
- [快速开始](/projects/iotlcm/guide/quickstart) — 三步把整套跑起来
|
- [快速开始](/projects/iotlcm/guide/quickstart) — 三步把整套跑起来
|
||||||
- [部署与运维](/projects/iotlcm/guide/deploy) — 生产部署前的必改项、可选组件、离线部署与排错
|
- [部署与运维](/projects/iotlcm/guide/deploy) — 生产部署前的必改项、可选组件、离线部署与排错
|
||||||
- [教程视频](/projects/iotlcm/guide/tutorial) — 部署与使用的录屏教程
|
- [教程视频](/projects/iotlcm/guide/tutorial) — 部署与使用的录屏教程
|
||||||
|
|
||||||
|
## 边界
|
||||||
|
|
||||||
|
开源版发布的是微服务家族,不含老平台的私有定制模块。运营商通道的生产凭据不随仓发布,需自行申请与配置。
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 344 B After Width: | Height: | Size: 344 B |
Reference in New Issue
Block a user