bc2c7bcc6b
内容: - 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 启动运营商接口挡板,即可在无真实运营商环境时跑通全链路。
96 lines
2.9 KiB
Bash
96 lines
2.9 KiB
Bash
# ============================================================
|
||
# 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
|