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>
3.4 KiB
3.4 KiB
Change: Extract Hardcoded Configurations to Environment Variables
Why
專案中存在大量硬編碼的路徑、URL、API 端點、埠號及敏感資訊,這些配置散落在前後端程式碼中。為了支援獨立部署(後端部署於 1Panel 伺服器,前端獨立打包),需要將這些配置統一提取到環境變數檔案中管理,提高部署彈性與安全性。
What Changes
後端配置提取
後端使用兩個 Dify 服務:
- LLM 服務(
DIFY_API_KEY)- 產生會議結論及行動事項 - STT 服務(
DIFY_STT_API_KEY)- 上傳音訊檔案的語音轉文字
-
新增環境變數
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 桌面應用,無需細粒度控制。 -
已存在環境變數(確認文件化)
DB_HOST,DB_PORT,DB_USER,DB_PASS,DB_NAME- 資料庫配置AUTH_API_URL- 認證 API 端點DIFY_API_URL- Dify API 基礎 URLDIFY_API_KEY- Dify LLM 服務金鑰DIFY_STT_API_KEY- Dify STT 服務金鑰ADMIN_EMAIL- 管理員郵箱JWT_SECRET- JWT 密鑰
前端/Electron 配置提取
前端包含 Sidecar(本地 Whisper 即時轉錄服務)。
-
Vite 環境變數(打包時使用)
VITE_API_BASE_URL- 後端 API 基礎 URL(預設:http://localhost:8000/api)VITE_UPLOAD_TIMEOUT- 大檔案上傳超時時間(預設:600000ms)VITE_APP_TITLE- 應用程式標題
-
Sidecar/Whisper 環境變數(執行時使用)
WHISPER_MODEL- 模型大小(預設:medium)WHISPER_DEVICE- 執行裝置(預設:cpu)WHISPER_COMPUTE- 運算精度(預設:int8)SIDECAR_DIR- Sidecar 目錄路徑(Electron 打包時使用)
部署文件與腳本
- 1Panel 部署指南 -
docs/1panel-deployment.md - 後端部署腳本 -
scripts/deploy-backend.sh - 環境變數範例檔案
- 更新
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 只需提供:
- 後端伺服器 IP/域名
- 後端使用的 PORT
開發者打包前端時:
- 設定
VITE_API_BASE_URL=http://<伺服器>:<PORT>/api - 執行打包命令
- 分發 EXE 給使用者