docs(config): 补 .env.example 并修正 .gitignore 误伤模板

.gitignore 的 `.env.*` 会把 `.env.example` 一起排除,等于把变量清单挡在仓库外,
接手的人只能翻 application.yml 逐个猜要配什么。加 `!.env.example`(含
`.sample`、`.template`)例外,规则顺序放在忽略之后。

同时补 .env.example:从 application.yml 与代码里实际提取 20 个变量,分组注明
默认值与是否必须替换。三个必改项(DB_PASS 无默认、GATEWAY_TOKEN 占位、
BIZ_TOKEN_SECRET 与 BIZ_PII_KEY 为 dev-only)单独标出。

本文件只放占位值;真实的 .env 仍不入库。另注明工程不自动读 .env
(未引入 dotenv),必须由启动脚本加载或 docker compose --env-file 注入——
这一条不说清,会有人建了 .env 直接启动然后发现 DB_PASS 还是缺。
This commit is contained in:
aomin committed 2026-11-13 17:38:08 +08:00
1 parent a7605ef8b8
commit 983191628e
6 files changed
+109 -5

No files matched your search

+12 -5
View File
@@ -36,6 +36,7 @@
│ ├── handover/ 交付与安全清理材料(Z-01/Z-02)
│ ├── contract/ 接口契约:J-00 规格、OpenAPI、内部五接口、状态机
│ └── reference/ 原始交付包指纹与迁移脚本哈希
├── .env.example 环境变量清单模板(20 项,真实 .env 不入库)
├── .gitattributes 行尾与二进制策略
├── .editorconfig 缩进与编码
├── CHANGELOG.md 版本记录
@@ -52,15 +53,21 @@ cd aomin-gateway
mvn -DskipTests clean package
# 产物:target/aomin-gateway-0.0.1-SNAPSHOT.jar
# 2) 启动(DB_PASS 必填,缺失时应用立即退出,不会回退到任何内置口令)
export DB_PASS='<口令>'
export DB_USER=aomin
java -jar target/aomin-gateway-0.0.1-SNAPSHOT.jar --server.port=8080 --server.address=0.0.0.0
# 2) 配置环境变量(20 个变量的清单见仓库根 .env.example)
cd ..
cp .env.example .env # 把 DB_PASS 填上,其余按需改
set -a; . ./.env; set +a # 工程不会自动读 .env,必须加载进进程环境
# 3) 自检
# 3) 启动(DB_PASS 必填,缺失时应用立即退出,不会回退到任何内置口令)
export DB_USER=aomin
java -jar aomin-gateway/target/aomin-gateway-0.0.1-SNAPSHOT.jar --server.port=8080 --server.address=0.0.0.0
# 4) 自检
curl -s http://127.0.0.1:8080/health
```
`.env.example` 是变量清单模板,含数据库、Redis、内部接口鉴权、业务密钥、短信、告警、分区维护、模拟器共 20 项,每项都注明默认值与是否必须替换。真实的 `.env` 不入库。
正常返回需同时满足 `db: connected`、`tables: 87`、`flyway: 1.0.28`、`status: UP`。
建库、环境变量、systemd 单元、Flyway 校验和不符的处理,全部在 [`aomin-gateway/README.md`](aomin-gateway/README.md)。