1 ▸ 先用 DevTools 快速判斷是哪一層壞掉
觀察項目 | 判斷 | 典型 Console / Network 錯誤 |
---|---|---|
靜態檔 *.js 、*.css 都 200 OK,但 <app-root> 仍空白 |
前端(Angular)在執行階段拋例外 | TypeError: Cannot read properties of undefined |
main.*.js 、vendor.*.js 變成 503 / 403,或被轉向到 challenge-platform/... |
Cloudflare/反向代理把檔案攔截或改寫 | Failed to load resource: the server responded with a status of 503 |
/api/accounts/prelogin 、/identity/connect/token 回 502 / 500 |
後端 container 沒起來或版本不一致 | ERR_HTTP_RESPONSE_CODE_FAILURE |
建議做法:
① F12 → Network → 重新整理,只看「.js/.css/.woff」。
② Console 看第一條紅字,通常就能決定往「伺服器」還是「Cloudflare」或「瀏覽器」方向排查。
2 ▸ Cloudflare 常把 Angular 網站變黑畫面
Bitwarden Web Vault 是純前端 SPA,若 Cloudflare 對 *.js
做 Rocket Loader、JS Challenge、HTML Minify 等改寫,Angular 找不到正確的 bundle 就會停在黑底 Logo 頁。
- 確認是否啟用 Rocket Loader
Cloudflare › Speed › Optimization → Rocket Loader = Off。
Rocket Loader 已知會讓前端直接空白(其他社群案例亦相同)(Bricks Community Forum) - 把 Security Level / WAF 調低
Cloudflare › Security → 設Security Level = Essentially Off
或對/app/*, /static/*, *.js, *.css
設 Page Rule「Disable Security」。 - Purge Cache 後再試
Cloudflare 有時會把舊版main.xxx.js
緩存在 Edge,升級後檔名變了就找不到。
如果你必須保留 Cloudflare,可用 Configuration Rules 僅針對
/cdn-cgi/challenge-platform
以外路徑停用安全功能,避免整站裸奔。
3 ▸ 確認 Docker Stack & 版本一致
-
一鍵升級並重建
cd ~/bitwarden ./bitwarden.sh updateself ./bitwarden.sh update # 下載所有新映像 ./bitwarden.sh rebuild # 重新產生設定檔 ./bitwarden.sh restart
-
檢查容器狀態
docker ps --format 'table {{.Names}}\t{{.Status}}'
web
,api
,identity
,mssql
(或postgresql
)都要是 Up 才行。 -
看 Log 有無 500 / 404
docker logs bitwarden-api --tail 100 docker logs bitwarden-identity --tail 100
若錯誤是 “Cannot open database”,多半是版本升級後遺失 migration,
rebuild
能自動補上。
4 ▸ 本地瀏覽器快取 / 擴充衝突
- 硬重新整理 (Ctrl + F5) 或清除 Service Worker。
- 用 無痕視窗 + 停用所有擴充 測一次,排除密碼管理器或內容阻擋外掛注入衝突。
- 若有自行修改
bwdata/config.yml
路徑前綴,確認globalSettings__webVaultBasePath
與 Nginxsub_filter
規則同步。
5 ▸ 最後手段:改用 Vaultwarden
若你只需個人 / 小團隊使用,可直接:
docker run -d --name vaultwarden \
-e WEBSOCKET_ENABLED=true \
-p 80:80 -v /bw-data:/data \
vaultwarden/server:latest
Rust 版本啟動速度快、佔用 < 150 MB,且前端程式碼完全相同,省去官方鏡像的多容器複雜度。
總結 Checklist
- DevTools 確認是哪層失敗。
- Cloudflare:關 Rocket Loader / JS Challenge → Purge Cache。
./bitwarden.sh update && rebuild
,確保所有容器版本一致。- 瀏覽器硬刷 / 停用擴充 排除本機因素。
- 如果還是黑畫面,再檢查 Docker log 或考慮轉 Vaultwarden。
依照以上順序處理,通常能在十分鐘內讓 Web UI 復活。祝排錯順利!