本機 Headless CMS 部署流程
本機 Headless CMS 部署流程
適用情境
需要一個「可讓非工程師協作上稿」的後台,但不想付 SaaS CMS 的人頭月費、不想租主機、資料希望留在自己手上。典型案例:小團隊部落格、企業形象網站、內部工具。
核心架構
[本機 WordPress Playground] ←── Cloudflare Tunnel ── [遠端同事瀏覽器]
│
│ REST API(build-time fetch)
▼
[本機 Astro build]
│
│ wrangler deploy
▼
[Cloudflare Workers/Pages] ←── 讀者
步驟流程
1. 本機 CMS 就位
- 用 WordPress Playground 在本機啟動 WordPress(SQLite,無需 MySQL / Docker)
- 裝好橋接外掛(提供 webhook、健康檢查、API 金鑰管理)
2. 前台整合
- Astro 加入一個 content collection(例如
wpPosts),用 loader 在 build-time 從本機 WordPress REST API 撈資料 - 撈下來的 HTML 清洗成乾淨 Markdown,跟本機 Markdown 集合合併
- 列表頁、分類頁、單篇頁同時撈兩個集合
3. 暴露 CMS 給遠端同事
- 用 Cloudflare Tunnel 建立本機到公網的加密通道
- 兩種模式:永久網址(需要自有網域)或臨時
trycloudflare.com網址 - 搭配
httpHostHeader設定,讓 WordPress 不必修改siteurl
4. 自動發布
- 同事在遠端 WordPress 存檔 → 外掛觸發 webhook
- 本機 deploy server 監聽 webhook → 觸發
astro build - build 成功後
wrangler deploy上傳到 Cloudflare
5. 漸進可用性升級
- 階段 A:跑在個人筆電,適合單人 + 偶爾委派
- 階段 B:跑在公司備用電腦(接電源、接有線網路),適合小團隊
- 階段 C:搬到雲端主機,設定檔改一個 URL 就好,適合跨時區或 24/7 需求
關鍵取捨
| 維度 | 本機模式 | 雲端主機 |
|---|---|---|
| 月費 | 0 元 | 主機費 $5–20/月 |
| 可用性 | 依工作機作息 | 24/7 |
| 資料位置 | 自己硬碟 | 雲端主機商 |
| 備份 | 複製資料夾 | 需要設定備份策略 |
| 維運 | 無 | 需要定期更新 WP |
| 適合對象 | 單時區小團隊 | 分散式團隊 / 媒體 |
常見失敗模式
- 家用網路不穩,Tunnel 時斷時續。 解法:用 Cloudflare Zero Trust 的錯誤重試機制;或搬到公司備用電腦
- ISP 封 80/443 / 公司防火牆擋出站。 Cloudflare Tunnel 用 QUIC,多數封鎖可穿透,但企業嚴格 Proxy 環境需白名單
- 極度依賴 MySQL 特殊語法的外掛失效。 裝外掛前先在 Playground 跑一次測試
- 工作機關機導致發布卡住。 建立「備用電腦 + 同事打開網站沒更新時 ping 作者」的協作默契
與既有方法論的關聯
- 這是 [[靜態網站架設]] 的進階變體:原本只有本機 Markdown 單一來源,現在加上 WordPress 第二來源
- 可以視為 [[AI 內容產出管線]] 的「人類編輯入口」補完——原本管線只允許工程師用 Claude Code 產文,現在補上非工程師的 WordPress 入口
關聯概念
- [[Headless CMS 架構模式]]
- [[內容自主權 vs 託管便利]]
- [[靜態網站架設]]
- [[非工程師的 AI 工具採用]]