Include supplementary documentation, research notes on Lexical/UX, and setup guides.
2.5 KiB
2.5 KiB
Coolify + Cloudflare Tunnel 部署指南
問題摘要
原本透過 Coolify 的 Traefik 反向代理部署 Docker 容器,遇到 503/404 錯誤。
根本原因
- Coolify beta 版本 (4.0.0-beta.442) 的 Traefik 無法正確路由 Docker 容器
- Cloudflare Tunnel 萬用字元規則 (
*.anlstudio.cc) 優先於特定主機名稱規則
解決方案
繞過 Traefik,改用 Cloudflare Tunnel 直接連線到容器。
部署新映像檔 (Docker Image) 步驟
1. 建立 Coolify 應用程式
coolify app create dockerimage \
--server-uuid <伺服器UUID> \
--project-uuid <專案UUID> \
--docker-registry-image-name "your-image:tag" \
--ports-exposes "3000" \
--domains "http://your-domain.anlstudio.cc"
2. 同步環境變數
coolify app env sync <app-uuid> --file .env.your-app
3. 取得容器 IP
# SSH 進入伺服器
ssh -i ~/Desktop/ssh-key.key ubuntu@138.2.104.7
# 查詢容器 IP
docker inspect $(docker ps -qf 'label=coolify.name=<app-uuid>') \
--format '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}'
4. 設定 Cloudflare Tunnel
在 Cloudflare Zero Trust Dashboard → Networks → Tunnels 新增 Public Hostname:
| 欄位 | 值 |
|---|---|
| Subdomain | your-subdomain |
| Domain | anlstudio.cc |
| Type | HTTP (非 HTTPS!) |
| URL | <容器IP>:3000 |
5. ⚠️ 重要:調整路由順序
特定主機名稱必須排在萬用字元之前!
正確順序:
1. your-domain.anlstudio.cc → http://<容器IP>:3000
2. *.anlstudio.cc → http://138.2.104.7:80
6. 重啟 Cloudflared
docker restart cloudflared-pw00w88ss4ckkg8kwcgw0kws
部署注意事項
Warning
容器 IP 會在每次重啟/重新部署後變更!
每次重新部署後需要:
- 重新查詢容器 IP
- 更新 Cloudflare Tunnel 的 URL
長期解決方案
- 升級 Coolify 到正式版本,讓 Traefik 正常運作
- 或將 cloudflared 加入容器網路,使用容器名稱而非 IP
快速驗證指令
# 測試連線
curl -sS -o /dev/null -w "%{http_code}" https://your-domain.anlstudio.cc/
# 查看容器狀態
coolify app get <app-uuid> --format pretty
# 查看容器日誌
coolify app logs <app-uuid> --lines 30
相關 UUID 參考
| 項目 | UUID |
|---|---|
| 伺服器 | igcskocw4kcgko4wswc8wwoo |
| PayloadCMS 專案 | j8kkko4gc0gs00w44gs8swk0 |
| Enchuna CMS v2 應用程式 | q0kcgo0gs8w4c08wowowg4ss |