# PROJECT CONTROL Backend FastAPI 後端服務 ## 系統需求 ### 必要服務 | 服務 | 版本 | 說明 | |-----|------|-----| | Python | 3.11+ | 執行環境 | | MySQL | 8.0+ | 主要資料庫 | | Redis | 6.0+ | Session 存儲 | ### Redis Server 安裝 Redis Python 套件 (`redis==5.0.1`) 僅為客戶端,需另外安裝 Redis Server: **macOS (Homebrew):** ```bash brew install redis brew services start redis ``` **Ubuntu/Debian:** ```bash sudo apt update sudo apt install redis-server sudo systemctl start redis-server sudo systemctl enable redis-server ``` **Docker:** ```bash docker run -d --name redis -p 6379:6379 redis:alpine ``` **驗證安裝:** ```bash redis-cli ping # 應回傳 PONG ``` ## 環境建置 ```bash # 使用 Conda conda env create -f environment.yml conda activate pjctrl # 或使用 pip pip install -r requirements.txt ``` ## 設定 複製並編輯環境變數: ```bash cp .env.example .env ``` 主要設定項目: - `MYSQL_*` - 資料庫連線 - `REDIS_*` - Redis 連線 - `JWT_SECRET_KEY` - JWT 簽名密鑰 (生產環境必須更換) - `AUTH_API_URL` - 外部認證 API ## 執行 ```bash # 開發模式 uvicorn app.main:app --reload --port 8000 # 生產模式 uvicorn app.main:app --host 0.0.0.0 --port 8000 ``` ## 資料庫遷移 ```bash # 升級至最新版本 alembic upgrade head # 回滾一個版本 alembic downgrade -1 ``` ## 測試 ```bash pytest -v ```