docs/´ò°ü²¿Êð˵Ã÷.md
@@ -233,6 +233,19 @@
| jar åŒçº§çš„ `backend/application.yml` | éƒ¨ç½²æœºçœŸå®žå€¼ï¼ˆä¼˜å…ˆçº§é«˜äºŽ jar å†…置) | å¦ | å¦ï¼ˆåœ¨åŒ…外,现场填) |
| çŽ¯å¢ƒå˜é‡ `TRAFFIC_DB_PASSWORD` / `TRAFFIC_DB_USER` / `TRAFFIC_DB_URL` / `TRAFFIC_JWT_SECRET` / `DEEPSEEK_API_KEY` | è¦†ç›–以上任意一项 | å¦ | å¦ |
### æœ¬æœºå¼€å‘(值放环境变量,不落文件)
```powershell
setx TRAFFIC_DB_PASSWORD "本机 MySQL å£ä»¤"     # è®¾ä¸€æ¬¡å³å¯ï¼Œä¹‹åŽæ–°å¼€çš„终端自动带上
setx DEEPSEEK_API_KEY   "DeepSeek key"
# éœ€è¦æ—¶å†è¦†ç›–:setx TRAFFIC_DB_URL / TRAFFIC_DB_USER / TRAFFIC_JWT_SECRET
powershell -NoProfile -ExecutionPolicy Bypass -File start-dev.ps1   # ä¼šè‡ªåŠ¨ä»Žæ³¨å†Œè¡¨è¡¥é½å¹¶æ³¨å…¥åŽç«¯è¿›ç¨‹
```
- `traffic-audit-server/config/application.yml` åªç•™æ³¨é‡Šè¯´æ˜Žï¼ˆæ— æ˜Žæ–‡ï¼‰ï¼›åˆ æŽ‰å®ƒä¹Ÿä¸å½±å“ï¼ˆå€¼å…¨åœ¨çŽ¯å¢ƒå˜é‡é‡Œï¼‰ã€‚
- è‹¥ç”¨ IDE ç›´æŽ¥è·‘主类,请在**新开的**终端/IDE é‡Œå¯åŠ¨ï¼ˆè®©æ–°ç»ˆç«¯ç»§æ‰¿ç”¨æˆ·çŽ¯å¢ƒå˜é‡ï¼‰ï¼Œæˆ–æ‰‹åŠ¨ `setx` åŽé‡å¯ IDE。
### æ‰“包前自查(30 ç§’)
```powershell
@@ -242,6 +255,30 @@
python -c "import zipfile;print(zipfile.ZipFile('traffic-audit-server/target/traffic-audit-server-1.0.0-SNAPSHOT.jar').read('BOOT-INF/classes/application.yml').decode('utf-8'))" | Select-String "password:|api-key:"
```
### ä¸€é”®æ‰“包(推荐,2026-09-27 èµ·ï¼‰
```powershell
powershell -NoProfile -ExecutionPolicy Bypass -File pack-deploy.ps1
# å¯é€‰å‚数: -OutRoot "E:\试验"   -SkipFrontend
```
脚本做四件事:
1. `mvn clean package -DskipTests` æž„建后端 jar;
2. **解压 jar è‡ªæ£€**:检查 `BOOT-INF/classes/application.yml` æ˜¯å¦å…¨ä¸ºå ä½ç¬¦â€”—一旦发现 `sk-` æˆ–明文口令**直接中止打包**;
3. `npm run build` é‡å»ºå‰ç«¯ `dist`;
4. æŒ‰ `deploy-templates/` ç»„装完整部署包(backend / frontend / db / README-部署说明.txt),输出到 `<OutRoot>\traffic-audit-deploy-<yyyyMMdd>`。
模板件统一放在 **`deploy-templates/`**(已入库):外部 `application.yml`、`start-backend.cmd/.sh`、`nginx.conf.example`、`db\{init.sql,sql_city_bus,sql_city_taxi,sql_wyc}.sql`、`README-部署说明.txt`。改模板即改打包产物。
### è½®æ¢å¯†é’¥åŽåŒæ­¥æœ¬æœº
```powershell
powershell -NoProfile -ExecutionPolicy Bypass -File set-secrets.ps1
```
交互式输入(回车跳过某一项),自动 `setx` åˆ°ç”¨æˆ·çŽ¯å¢ƒå˜é‡å¹¶æç¤ºé‡å¯åŽç«¯ï¼›å€¼ä¸ä¼šå†™å…¥ä»»ä½•æ–‡ä»¶ã€‚
### éƒ¨ç½²æœºä¸ŠåŠ /换 DeepSeek key
1. æ‰“包上传后,编辑 **jar åŒçº§**的 `backend/application.yml`:`deepseek.api-key: "你的新key"`(留空则页面 AI åˆ†æžä¸å¯ç”¨ï¼Œå…¶ä½™åŠŸèƒ½æ­£å¸¸ï¼‰ï¼›