Files
iotlcm/.env.example
T
MiFaZhan bc2c7bcc6b 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 启动运营商接口挡板,即可在无真实运营商环境时跑通全链路。
2026-10-28 13:40:12 +08:00

96 lines
2.9 KiB
Bash
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.
# ============================================================
# IotLCM 部署环境变量
#
# cp .env.example .env
#
# 标注「必填」的变量未设置时 docker compose 会直接报错退出,
# 避免用弱口令启动。口令建议用 openssl rand -base64 24 生成。
# ============================================================
# ---------- 镜像 ----------
# 镜像仓库地址(不含末尾斜杠)。
# 基础组件从 <REGISTRY>/library/ 拉取,业务镜像从 <REGISTRY>/iotlcm/ 拉取。
REGISTRY=your-registry.example.com
# 镜像标签。生产建议用不可变标签(版本号或 commit sha),不要用 latest。
TAG=latest
# ---------- 时区 ----------
TZ=Asia/Shanghai
# ---------- 必填:数据库 ----------
# MySQL root 口令
MYSQL_ROOT_PASSWORD=change-me-strong-password
# 数据库名
MYSQL_DATABASE=db_iotlcm
# 应用连接账号 u_iotlcm 的口令(首次启动时创建)
MYSQL_APP_PASSWORD=change-me-strong-password
# admin 初始登录口令(首次启动时写入数据库)
# 登录后请立即在「个人中心」修改
MYSQL_ADMIN_PASSWORD=change-me-admin-password
# ---------- 必填:Redis ----------
REDIS_PASSWORD=change-me-strong-password
# ---------- 必填:RabbitMQ ----------
RABBITMQ_USER=iotlcm
RABBITMQ_PASSWORD=change-me-strong-password
# ---------- 必填:JWT 签名密钥 ----------
# admin-svr / openapi / app-server 必须使用同一个值,否则令牌跨服务不通用。
# 生成:openssl rand -hex 32
# 注意:更换此值会使已签发的所有登录态与接口令牌立即失效。
JWT_SIGNING_KEY=change-me-run-openssl-rand-hex-32
# ---------- 可选:智能诊断内部凭据 ----------
# admin-svr 与 upstream-proxy 必须一致。留空则该功能不可用。
DIAGNOSIS_INTERNAL_TOKEN=
# ---------- 可选:短信服务商 ----------
# 不启用短信时保持空值,并把配置里的 warning.sms.enabled 改为 false
SMS_ACCESS_KEY_ID=
SMS_ACCESS_KEY_SECRET=
# ---------- 可选:飞书通知(bot 服务) ----------
# 不启用 bot 时不填,且不启动该容器
FEISHU_APP_ID=
FEISHU_APP_SECRET=
FEISHU_CHAT_ID=
# ---------- 端口(宿主机侧) ----------
# 仅监听 127.0.0.1 的服务需通过反向代理对外
ADMIN_SVR_PORT=8008
ADMIN_UI_PORT=8009
OPENAPI_PORT=8000
APP_SERVER_PORT=8010
APP_WEB_PORT=8018
DOCS_PORT=8019
MOCK_PORT=8080
# 以下服务监听所有网卡(容器间互访也走这些端口)
MYSQL_PORT=3306
REDIS_PORT=6379
RABBITMQ_PORT=5672
RABBITMQ_MGMT_PORT=15672
CONSUL_PORT=8500
CHAN_HTTP_PORT=8110
CHAN_GRPC_PORT=8310
PROXY_PORT=8510
SMS_HTTP_PORT=11190
SMS_GRPC_PORT=11200
# nginx 对外端口(仅 --profile with-nginx)
NGINX_HTTP_PORT=80
# ---------- 可选:TDengine(流量历史) ----------
# 不启用时序库时全部留空,相关历史流量查询功能不可用,不影响主流程。
TDENGINE_HOST=
TDENGINE_PORT=6041
TDENGINE_USER=root
TDENGINE_PASSWORD=
TDENGINE_DAILY_DB=iotlcm_daily
TDENGINE_MONTHLY_DB=iotlcm_monthly