# ============================================================= # 环境变量清单(模板) # # 用法:复制成 .env,按需修改,然后由启动脚本注入。 # cp .env.example .env # # 注意:本工程**不会自动读取 .env 文件**(未引入 dotenv), # Spring Boot 只认进程环境变量。所以 .env 必须被"加载"进去: # # Linux/macOS: set -a; . ./.env; set +a; java -jar target/aomin-gateway-*.jar # Windows cmd: for /f "usebackq tokens=1,* delims==" %i in (".env") do set %i=%j # 容器: docker compose --env-file .env up -d # # 真实的 .env **不入库**(.gitignore 已挡)。本文件只放占位值。 # 新增变量时同步本文件,否则接手的人不知道要配什么。 # ============================================================= # ---------- 数据库 ---------- # DB_PASS 是唯一必填项。留空或缺失时应用立即退出(退出码 1), # 不会带空口令去连库,也不会回退到任何内置口令。填了真实值也别提交。 DB_PASS= DB_HOST=127.0.0.1 DB_PORT=3306 DB_NAME=aomin_dev # 开发机常用 root;生产必须换成只有 DML 权限的业务账号 DB_USER=root # ---------- Redis(仅作锁与缓存,非数据源) ---------- REDIS_HOST=127.0.0.1 REDIS_PORT=6379 # ---------- 日志 ---------- LOG_DIR=./logs # ---------- 内部接口鉴权(/internal/**) ---------- # 默认关闭签名校验,仅靠来源网络闸防护。上线前必须改为 true。 GATEWAY_AUTH_ENABLED=false # 共享密钥。J-00 §1.2 的签名公式里 key 就是它。 # 当前值是占位值,生产必须替换;留空则签名校验必然失败。 GATEWAY_TOKEN= # 来源网络闸,与签名开关独立,默认开。 # 签名可以晚点开,网络闸必须一开始就有——两个都关,/internal/** 就是裸奔。 GATEWAY_NETWORK_GUARD=true # ---------- 业务安全 ---------- # 家属端 token 的签名密钥。占位值 dev-only-change-me-2026 仅用于本机。 BIZ_TOKEN_SECRET= # 身份证等 PII 字段的加密密钥。占位值 dev-only-pii-key-2026 仅用于本机。 # 换密钥会导致已入库的密文无法解密,上线后不要再改。 BIZ_PII_KEY= # ---------- 短信 ---------- # demo=true 时不真发短信,只落库并在响应里回显验证码 BIZ_SMS_DEMO=true BIZ_SMS_ECHO=true # 同一手机号在此窗口内的短信合并为一条 BIZ_SMS_MERGE_SECONDS=60 # ---------- 演示数据 ---------- # true 会向数据库播种演示账号与样例数据。**生产环境严禁开启。** BIZ_DEMO_ENABLED=false # ---------- 告警 ---------- # 单条告警最大重试次数 ALARM_MAX_TRY=3 # 同一设备此窗口内的推送合并为一次 ALARM_PUSH_MERGE_SECONDS=5 # ---------- 分区维护 ---------- # 定时任务,依赖 Redis 取锁;Redis 不可用时跳过并告警,不影响告警主链 PARTITION_MAINTAIN_ENABLED=true # ---------- 设备模拟器(demo/sim,仅本地联调用) ---------- # 不属于后端配置,只被 sim_device.py 读取 SIM_BASE=http://127.0.0.1:8080 SIM_PORT=9901