Spaces:
Running
Running
| # Hugging Face Space Deployment | |
| ## Target | |
| - Space: `XiaoBai1221/Bloom_Ware` | |
| - URL: `https://hf.co/spaces/XiaoBai1221/Bloom_Ware` | |
| - SDK: `docker` | |
| - App port: `7860` | |
| ## Runtime Shape | |
| - API server: `FastAPI` | |
| - Entry point: `app.py` | |
| - Main frontend: `static/frontend` | |
| - Login frontend build output: `bloom-ware-login/out` | |
| `app.py` 會掛載: | |
| - `/static` -> `static/frontend` | |
| - `/login` -> `bloom-ware-login/out` | |
| 因此 Docker image 在 build 階段必須先完成 `bloom-ware-login` 的 `npm run build`。 | |
| ## Deployment Files | |
| - `README.md` | |
| - Hugging Face Space metadata | |
| - deployment quickstart | |
| - `Dockerfile` | |
| - Python runtime | |
| - Node.js build for `bloom-ware-login` | |
| - `uvicorn` startup command | |
| - `.dockerignore` | |
| - exclude local secrets, tests, git metadata, temporary files | |
| - `requirements.txt` | |
| - runtime dependencies only | |
| - `requirements-dev.txt` | |
| - local test dependencies | |
| ## Secret Handling | |
| 不要把以下內容提交到 repo,也不要讓它們進入 Docker build context: | |
| - `.env` | |
| - `.env.*` | |
| - `config.json` | |
| - Firebase service account JSON | |
| - Google speech service account JSON | |
| Hugging Face Space 內請改用 `Settings -> Secrets` 設定。 | |
| ## Push Flow | |
| 既有 remote 已對到 Hugging Face: | |
| ```bash | |
| git remote -v | |
| ``` | |
| 應看到: | |
| ```bash | |
| hf https://huggingface.co/spaces/XiaoBai1221/Bloom_Ware | |
| ``` | |
| 推送流程: | |
| ```bash | |
| git add README.md Dockerfile .dockerignore requirements.txt requirements-dev.txt docs/huggingface-space-deployment.md | |
| git commit -m "Prepare Bloom Ware for Hugging Face Space deployment" | |
| git push hf main | |
| ``` | |
| 若出現驗證提示: | |
| - username: `XiaoBai1221` | |
| - password: Hugging Face User Access Token | |
| ## Verification Checklist | |
| - `README.md` YAML 包含 `sdk: docker` | |
| - `README.md` YAML 包含 `app_port: 7860` | |
| - `.dockerignore` 已排除 `.env` 與憑證 JSON | |
| - `bloom-ware-login/package-lock.json` 存在,`Dockerfile` 可用 `npm ci` | |
| - `app.py` 仍以 `${PORT:-7860}` 啟動 | |
| - Space Secrets 已補齊 | |
| ## Known Risks | |
| - BM runtime 依賴 `torch`、`torchaudio`、`speechbrain`、`transformers`,Docker build 仍偏重,首次 build 會慢。 | |
| - 若 `bloom-ware-login` 的 Next.js 輸出策略改變,需同步確認 `app.py` 掛載的 `bloom-ware-login/out` 是否仍存在。 | |
| - 若 Space secrets 缺漏,build 會過,但 runtime 可能在啟動後才報錯。 | |