Files
iotlcm/docs/deploy/prerequisites.md
T
Dai0814 e43640d0fe docs: 部署手册改为平台部署,替换原文档站自身部署说明
原 /deploy/ 内容是文档站自身(VitePress/Node/nginx)的部署说明,
与用户所需的「IotLCM 平台部署手册」不符。

改为基于 iotlcm-public/iotlcm-deploy 部署仓的平台部署手册:
- 部署概览:部署构成、三步流程、端口规划、关键约束
- 环境准备:硬件分档、系统与 Docker 版本、镜像仓库、防火墙、可选外部依赖
- 配置说明:.env 必填 8 项与可选 4 项、10 份应用配置逐项说明
- 启动与验证:首次初始化流程、7 步验证清单、首次登录必做项
- 可选服务:运营商挡板 onelink-mock、飞书 bot、反向代理(含 HTTPS)
- 升级与备份:版本固定、升级回滚、备份与恢复、日志清理、监控指标
- 故障排查:启动/功能/性能/网络四类共 20 个问题

删除原 6 页(docker-nginx / path-prefix / static-hosting / local-dev /
offline / faq),侧边栏同步改为「部署手册 + 运维」两组。
2026-10-28 14:00:58 +08:00

111 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: 环境准备
description: 部署 IotLCM 所需的硬件、系统、Docker 与网络条件
outline: deep
---
# 环境准备
## 硬件要求
按数据规模选择:
| 场景 | CPU | 内存 | 磁盘 | 说明 |
| --- | --- | --- | --- | --- |
| 试用 / 演示 | 2 核 | 4 GB | 40 GB | 少量卡片,建议停用定时同步任务 |
| 生产(中小规模) | 4 核 | 8 GB | 200 GB | 万级卡片,开启全量同步 |
| 生产(大规模) | 8 核+ | 16 GB+ | 500 GB+ | 十万级卡片,建议数据库独立部署 |
磁盘估算:MySQL 数据约 1~2 KB/张卡;日志随同步任务量增长,建议单独挂载并配置轮转。
生产 8 GB 场景的内存分配参考:
| 服务 | 占用 |
| --- | --- |
| MySQL | 1~2 GB |
| Redis | 200~500 MB |
| RabbitMQ | 300~500 MB |
| worker-svr | 500 MB~1 GB(与并发同步卡片数相关) |
| 其余业务服务 | 各 100~200 MB |
## 系统要求
| 项 | 要求 |
| --- | --- |
| 操作系统 | Linux x86_64(CentOS 7+ / Ubuntu 20.04+ / Debian 11+) |
| 内核 | 3.10 以上 |
| 文件系统 | ext4 / xfs |
| 时区 | 建议 `Asia/Shanghai`,与 `.env` 的 `TZ` 保持一致 |
## Docker 要求
| 组件 | 最低版本 | 说明 |
| --- | --- | --- |
| Docker Engine | 20.10 | 需支持 `healthcheck` 与 `profiles` |
| Docker Compose | v2.0(插件版) | 使用 `docker compose` 而非 `docker-compose` |
验证:
```bash
docker version
docker compose version
```
`docker compose version` 需 ≥ v2.0。若只有 `docker-compose`(v1),请升级到 Compose V2 插件。
## 镜像仓库
平台镜像由官方镜像仓库分发,需要:
1. 能访问镜像仓库地址(内网仓库需先配置网络或代理)
2. 具备拉取权限
```bash
docker login <镜像仓库地址>
```
`.env` 的 `REGISTRY` 填写仓库地址,不含 `https://` 与末尾斜杠:
```bash
REGISTRY=registry.example.com
```
基础组件从 `<REGISTRY>/library/` 拉取(mysql、redis、rabbitmq、consul、nginx),业务镜像从 `<REGISTRY>/iotlcm/` 拉取。
## 网络与防火墙
仅需对外开放反向代理端口(默认 80 / 443),其余服务端口应限制为内网访问。
```bash
# 示例:firewalld 仅放行 80/443
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
```
::: tip 默认只监听本机
`admin-svr`、`admin-ui`、`openapi`、`app-server`、`app-web`、`docs` 默认绑定 `127.0.0.1`,只能本机访问。对外需通过反向代理,见[可选服务](optional)。
:::
## 外部依赖(可选)
| 服务 | 用途 | 不配置的影响 |
| --- | --- | --- |
| TDengine 3.x | 存流量历史数据 | 历史流量查询不可用,主流程正常 |
| 短信服务商 | 发送验证码 | 无法发送短信 |
| 微信支付 | 在线支付 | 支付功能不可用 |
| 飞书 | 运维通知 | 不启动 bot 即可 |
TDengine 需开启 WebSocket 接口(默认 6041),在 `.env` 中配置:
```bash
TDENGINE_HOST=tdengine.example.com
TDENGINE_PORT=6041
TDENGINE_USER=root
TDENGINE_PASSWORD=
TDENGINE_DAILY_DB=iotlcm_daily
TDENGINE_MONTHLY_DB=iotlcm_monthly
```
不使用时全部留空。