chore: Archive all pending OpenSpec proposals
Force archive the following proposals: - add-audio-device-selector (complete) - add-embedded-backend-packaging (19/26 tasks) - add-flexible-deployment-options (20/21 tasks) New specs created: - audio-device-management (7 requirements) - embedded-backend (8 requirements) Updated specs: - transcription (+2 requirements for model download progress) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,85 @@
|
||||
# Change: Extract Hardcoded Configurations to Environment Variables
|
||||
|
||||
## Why
|
||||
|
||||
專案中存在大量硬編碼的路徑、URL、API 端點、埠號及敏感資訊,這些配置散落在前後端程式碼中。為了支援獨立部署(後端部署於 1Panel 伺服器,前端獨立打包),需要將這些配置統一提取到環境變數檔案中管理,提高部署彈性與安全性。
|
||||
|
||||
## What Changes
|
||||
|
||||
### 後端配置提取
|
||||
|
||||
後端使用兩個 Dify 服務:
|
||||
- **LLM 服務**(`DIFY_API_KEY`)- 產生會議結論及行動事項
|
||||
- **STT 服務**(`DIFY_STT_API_KEY`)- 上傳音訊檔案的語音轉文字
|
||||
|
||||
1. **新增環境變數**
|
||||
- `BACKEND_HOST` - 後端監聽地址(預設:0.0.0.0)
|
||||
- `BACKEND_PORT` - 後端監聽埠號(預設:8000)
|
||||
- `DB_POOL_SIZE` - 資料庫連線池大小(預設:5)
|
||||
- `JWT_EXPIRE_HOURS` - JWT Token 過期時間(預設:24)
|
||||
- `UPLOAD_TIMEOUT` - 檔案上傳超時時間(預設:600000ms)
|
||||
- `DIFY_STT_TIMEOUT` - Dify STT 轉錄超時時間(預設:300000ms)
|
||||
- `LLM_TIMEOUT` - Dify LLM 處理超時時間(預設:120000ms)
|
||||
- `AUTH_TIMEOUT` - 認證 API 超時時間(預設:30000ms)
|
||||
- `TEMPLATE_DIR` - Excel 範本目錄路徑
|
||||
- `RECORD_DIR` - 會議記錄匯出目錄路徑
|
||||
- `MAX_FILE_SIZE` - 最大上傳檔案大小(預設:500MB)
|
||||
- `SUPPORTED_AUDIO_FORMATS` - 支援的音訊格式
|
||||
|
||||
**註**:CORS 保持 `allow_origins=["*"]`,因為前端是 Electron 桌面應用,無需細粒度控制。
|
||||
|
||||
2. **已存在環境變數**(確認文件化)
|
||||
- `DB_HOST`, `DB_PORT`, `DB_USER`, `DB_PASS`, `DB_NAME` - 資料庫配置
|
||||
- `AUTH_API_URL` - 認證 API 端點
|
||||
- `DIFY_API_URL` - Dify API 基礎 URL
|
||||
- `DIFY_API_KEY` - Dify LLM 服務金鑰
|
||||
- `DIFY_STT_API_KEY` - Dify STT 服務金鑰
|
||||
- `ADMIN_EMAIL` - 管理員郵箱
|
||||
- `JWT_SECRET` - JWT 密鑰
|
||||
|
||||
### 前端/Electron 配置提取
|
||||
|
||||
前端包含 Sidecar(本地 Whisper 即時轉錄服務)。
|
||||
|
||||
1. **Vite 環境變數**(打包時使用)
|
||||
- `VITE_API_BASE_URL` - 後端 API 基礎 URL(預設:http://localhost:8000/api)
|
||||
- `VITE_UPLOAD_TIMEOUT` - 大檔案上傳超時時間(預設:600000ms)
|
||||
- `VITE_APP_TITLE` - 應用程式標題
|
||||
|
||||
2. **Sidecar/Whisper 環境變數**(執行時使用)
|
||||
- `WHISPER_MODEL` - 模型大小(預設:medium)
|
||||
- `WHISPER_DEVICE` - 執行裝置(預設:cpu)
|
||||
- `WHISPER_COMPUTE` - 運算精度(預設:int8)
|
||||
- `SIDECAR_DIR` - Sidecar 目錄路徑(Electron 打包時使用)
|
||||
|
||||
### 部署文件與腳本
|
||||
|
||||
1. **1Panel 部署指南** - `docs/1panel-deployment.md`
|
||||
2. **後端部署腳本** - `scripts/deploy-backend.sh`
|
||||
3. **環境變數範例檔案**
|
||||
- 更新 `backend/.env.example`
|
||||
- 新增 `client/.env.example`
|
||||
|
||||
## Impact
|
||||
|
||||
- Affected specs: `middleware`
|
||||
- Affected code:
|
||||
- `backend/app/config.py` - 新增配置項
|
||||
- `backend/app/database.py` - 使用連線池配置
|
||||
- `backend/app/routers/ai.py` - 使用 Dify 超時配置
|
||||
- `backend/app/routers/auth.py` - 使用認證超時配置
|
||||
- `backend/app/routers/export.py` - 使用目錄路徑配置
|
||||
- `client/src/services/api.js` - 使用 Vite 環境變數
|
||||
- `client/src/main.js` - Sidecar 路徑配置
|
||||
- `start.sh` - 更新啟動腳本
|
||||
|
||||
## 部署流程簡化
|
||||
|
||||
**IT 只需提供:**
|
||||
1. 後端伺服器 IP/域名
|
||||
2. 後端使用的 PORT
|
||||
|
||||
**開發者打包前端時:**
|
||||
1. 設定 `VITE_API_BASE_URL=http://<伺服器>:<PORT>/api`
|
||||
2. 執行打包命令
|
||||
3. 分發 EXE 給使用者
|
||||
Reference in New Issue
Block a user