73adad97f3
部署仓已改为开箱即用:config/ 直接是配置文件、口令等值内置在
docker-compose.yml、不再有 .env。
同步调整:
- 概览:部署流程改为 git clone + docker compose up -d 三步
- 配置说明:重写为「编排层 + 应用层」,说明为何不用环境变量
(GoFrame 不展开配置文件中的 ${VAR})、改口令需同步三处、
口令不能含 @ : / 等字符
- 启动与验证:去掉准备步骤,schema 脚本数改为 13 个
- 环境准备:镜像仓库改为描述编排文件中的实际地址
- 升级备份/离线/分离/自建镜像:.env 相关操作改为修改编排文件
98 lines
3.7 KiB
Markdown
98 lines
3.7 KiB
Markdown
---
|
|
title: 部署概览
|
|
description: IotLCM 平台的部署方式、构成与前置条件
|
|
outline: deep
|
|
---
|
|
|
|
# 部署概览
|
|
|
|
IotLCM 平台通过 Docker Compose 在单机上部署。部署编排与数据库初始化脚本在独立仓库:
|
|
|
|
```bash
|
|
git clone https://git.5iot.com/iotlcm-public/iotlcm-deploy.git
|
|
cd iotlcm-deploy
|
|
```
|
|
|
|
```text
|
|
iotlcm-deploy/
|
|
├── docker-compose.yml # 服务编排(含默认口令与端口)
|
|
├── config/ # 各服务配置,10 份,已带可用默认值
|
|
└── schema/ # 数据库初始化脚本,13 个,首次启动自动执行
|
|
```
|
|
|
|
## 部署内容
|
|
|
|
| 类别 | 服务 |
|
|
| --- | --- |
|
|
| 基础组件 | MySQL、Redis、RabbitMQ、Consul |
|
|
| 管理端 | admin-svr(后端)、admin-ui(前端) |
|
|
| 对外接口 | openapi |
|
|
| 小程序 / H5 | app-server(后端)、app-web(前端) |
|
|
| 运营商对接 | upstream-chan(协议适配)、upstream-proxy(缓存转发) |
|
|
| 异步任务 | worker-svr(批次执行、全量同步) |
|
|
| 配套 | sms(短信)、docs(本文档站) |
|
|
| 可选 | onelink-mock(运营商接口挡板)、bot(飞书通知)、nginx(反向代理) |
|
|
|
|
## 部署流程
|
|
|
|
```bash
|
|
git clone <部署仓地址> iotlcm-deploy
|
|
cd iotlcm-deploy
|
|
docker compose up -d
|
|
```
|
|
|
|
三步,不需要复制或修改任何文件——配置与编排都随仓库分发且带可用默认值。首次启动自动建库并导入 schema,约 1~2 分钟。
|
|
|
|
启动后访问 `http://<宿主机IP>:8009`,账号 `admin`,口令见 `docker-compose.yml`。
|
|
|
|
::: warning 默认口令只用于试用
|
|
正式部署前必须修改数据库、Redis、RabbitMQ、admin 账号口令与 JWT 密钥,详见[配置说明](configuration)。
|
|
:::
|
|
|
|
## 文档导航
|
|
|
|
| 文档 | 内容 |
|
|
| --- | --- |
|
|
| [环境准备](prerequisites) | 硬件、系统、Docker 版本、镜像仓库、端口规划 |
|
|
| [配置说明](configuration) | `docker-compose.yml` 与 `config/` 各项含义 |
|
|
| [启动与验证](install) | 启动流程、验证清单、首次登录 |
|
|
| [其他部署方式](alternatives) | 二进制、自建镜像、分离、离线 |
|
|
| [可选服务](optional) | 接口挡板、飞书通知、反向代理 |
|
|
| [升级与备份](operations) | 版本固定、升级回滚、数据备份 |
|
|
| [故障排查](troubleshooting) | 常见问题与处理 |
|
|
|
|
## 关键约束
|
|
|
|
::: warning JWT 密钥必须三处一致
|
|
`admin-svr`、`openapi`、`app-server` 共用同一个 `JWT_SIGNING_KEY`。不一致的表现是能登录管理端,但调用外部 API 或小程序端提示未授权。
|
|
|
|
更换该值会使已签发的全部登录态与接口令牌立即失效,需在维护窗口操作。
|
|
:::
|
|
|
|
::: tip 镜像标签不要用 latest
|
|
生产环境必须把 `TAG` 固定到具体版本号。`latest` 会随仓库推送变化,同一份编排在不同时间拉到的镜像不同,出问题无法定位,也无法明确回滚。
|
|
:::
|
|
|
|
::: danger 修改 schema 脚本不会自动生效
|
|
数据库初始化只在 `data/mysql` 为空时执行。改了 `schema/` 下的脚本必须清空数据卷才会重跑,而清空会丢失全部数据。生产环境禁止这样操作。
|
|
:::
|
|
|
|
## 服务端口
|
|
|
|
默认端口规划:
|
|
|
|
| 端口 | 服务 | 是否对外 |
|
|
| --- | --- | --- |
|
|
| 8000 | openapi | 经反向代理 |
|
|
| 8008 | admin-svr | 经反向代理 |
|
|
| 8009 | admin-ui | 经反向代理 |
|
|
| 8010 | app-server | 经反向代理 |
|
|
| 8018 | app-web | 经反向代理 |
|
|
| 8019 | docs | 经反向代理 |
|
|
| 3306 / 6379 / 5672 / 8500 | MySQL / Redis / RabbitMQ / Consul | 仅内网 |
|
|
| 8110 / 8310 / 8510 | upstream-chan / upstream-proxy | 仅内网 |
|
|
| 11190 / 11200 | sms | 仅内网 |
|
|
| 8080 | onelink-mock | 仅联调 |
|
|
|
|
端口冲突时修改 `docker-compose.yml` 中对应变量,不要直接改 `docker-compose.yml`。
|