# Coolify 與 Claude Code：將專案部署到自己的 VPS

> 安裝 Coolify、連結 GitHub、部署 Next.js、設定網域與 HTTPS、MCP、VPS 需求及疑難排解。價格以美元計價，並保留原始限制。

Source: https://ailoot.ai/blog/zh-hant-tw/coolify-claude-code-deploy/
Canonical: https://ailoot.ai/blog/zh-hant-tw/coolify-claude-code-deploy/
Language: zh-Hant-TW
Publisher: Ailoot (https://ailoot.ai/)
Translation: guide-087
Revision: sha256-6dfa96cb2a8ff2446a15bdb23d921b7ff2193add71ed6c6acb2504ead5e73131


<div class="aside" data-semantic="editorial-reference" role="note" aria-label="Ailoot 文件">

[Ailoot 文件](https://ailoot.ai/docs/) — 使用這項服務的參考資料。

</div>

## 2026 年的平台限制與付款條件

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="本節重點">

重點摘要

免費方案會一直可用，直到你第一次超出限制；之後就需要國際信用卡。Heroku 在 2022 年對所有人關閉免費方案，並於 2026 年 2 月進入維護模式。使用自架 Coolify 時，伺服器由你擁有；沒有按席位計費，也不會被供應商綁定。

</div>

2026 年常見的氛圍編碼情境：你在 Cursor 或 Claude Code 花一個晚上打造 MVP，將它移到 GitHub 儲存庫，開啟 vercel.com → 連結儲存庫 → 進入訂閱畫面 → 輸入信用卡 → 收到 `Transaction declined`。

這不是錯誤，也不是暫時性服務中斷。

Railway、Render、Heroku——情況都一樣。Heroku 確實在 2022 年對所有人關閉免費方案，並於 2026 年 2 月進入維護模式——不再推出新功能，也不再簽訂新的 Enterprise 合約。對使用不受支援信用卡的使用者來說，這代表：「大門關上了；只能透過收取 20% 手續費的中介繞道。」

你可以透過哈薩克的虛擬 Visa 卡或企業付款服務付款。但這代表價格增加 20%、每筆交易多花 30 分鐘，而且付款處理商發現國家不符時，你的帳戶可能遭到封鎖。

原始範例包含三次嘗試——分別使用 Vercel Pro、Railway 和 Render。

## Coolify 是什麼？自架平台如何運作？

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="本節重點">

重點摘要

Coolify 是開放原始碼、可自行託管的 PaaS，也是 Heroku、Vercel 和 Netlify 的直接替代方案。只要在任何執行 Ubuntu 的 VPS 上輸入一個 curl 指令即可安裝。底層使用 Docker + Traefik 做反向代理，並使用 Let's Encrypt 提供 HTTPS。它支援 GitHub 整合、自動部署的 webhook、S3 備份，以及 280 多種一鍵安裝服務（PostgreSQL、Redis、MinIO）。自架版本永遠免費且沒有任何限制。它在 GitHub 上有 55,800 顆星，採用 Apache-2.0 授權。

</div>

Coolify 是以 Laravel + Docker 建置的開放原始碼專案，可將任何空白 VPS 變成應用程式部署平台。安裝一次 Coolify，之後便可透過網頁介面完成所有操作：連結 GitHub、選擇儲存庫，然後按下 Deploy。

官方文件簡潔而精確地說明：

<figure>
<blockquote>
<p>Coolify 是 Heroku / Netlify / Vercel 等服務的開放原始碼、自架替代方案。</p>
</blockquote>
<figcaption>— Coolify GitHub README，https://github.com/coollabsio/coolify</figcaption>
</figure>

Coolify 底層由四個部分組成：

1.  **使用 Laravel 12 + Livewire 3 + Tailwind v4 建置的網頁介面** — 管理應用程式的儀表板。
2.  **Docker + Docker Compose** — 每個應用程式都在容器中執行，彼此隔離。
3.  **反向代理（Traefik 或 Caddy）** — 接收傳入的 HTTP/HTTPS 流量，並轉送至容器。
4.  **Let's Encrypt 整合** — 自動為所有網域簽發並更新 SSL 憑證。

讓 Coolify 在功能上可與 Vercel 相比的主要功能：

| 功能 | Vercel | Coolify |
|----|----|----|
| git push 時自動部署 | ✅ | ✅（透過 GitHub webhook） |
| 免費 HTTPS | ✅ | ✅（Let's Encrypt） |
| PR 預覽部署 | ✅ | ✅（透過 GitHub App） |
| 環境變數 UI | ✅ | ✅ |
| 資料庫備份 | ❌（沒有自有資料庫） | ✅（備份至相容 S3 的儲存空間） |
| PostgreSQL / Redis / MongoDB | 每個 \$20+/月 | ✅ 一鍵安裝，免費 |
| 排程工作（cron） | ❌ | ✅（cron 語法） |
| 按席位計費 | \$20/席位/月 | 無 |
| 供應商綁定 | 高（Edge Functions、ISR） | 零（使用自己的 Docker） |
| 全球 CDN | ✅ | ❌（只有自己的 VPS） |

Coolify 開箱即用未提供的只有全球 CDN。這就是實話。如果你的專案面向全球使用者，且需要降低美國和歐洲使用者的延遲，可在前面加上 Cloudflare；靜態內容可免費使用。

價格：**自架版本永遠免費**，應用程式、伺服器或部署數量都不受限制。Coolify Cloud 每月 \$5，可管理 2 台伺服器；每增加一台再加 \$3——但伺服器仍由你擁有；Coolify Cloud 只負責託管儀表板。

最新版本是 **v4.1.0，於 May 18, 2026 發布**。新功能包括 Beta 版 Railpack 建置套件、稽核記錄、部署間的設定差異，以及原生 MCP 端點（唯讀）。來源：[GitHub 發行版本](https://github.com/coollabsio/coolify/releases)。

## 2026 年該選哪一種 VPS 來執行 Coolify？

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="本節重點">

重點摘要

Coolify 最低需求為 2 vCPU、2 GB RAM、30 GB SSD，以及 Ubuntu LTS（20.04、22.04 或 24.04）。這類 VPS 足以同時舒適地執行 3–5 個氛圍編碼專案。

</div>

Coolify 的最低需求直接列於[官方文件](https://coolify.io/docs/get-started/installation)：

| 參數 | 最低需求 | 建議規格 |
|-------------|----------------------------------|---------------------------|
| CPU | 2 核心 | 2–4 核心 |
| RAM | 2 GB | 4 GB（為建置預留餘裕） |
| 儲存空間 | 30 GB | 50–80 GB（供映像檔與資料庫使用） |
| 架構 | AMD64 或 ARM64（64-bit） | AMD64 |
| 作業系統 | Ubuntu LTS 20.04 / 22.04 / 24.04 | 22.04 LTS |
| Root | 必須 | 使用 SSH 金鑰，而非密碼 |

最低規格——2 GB RAM——是**硬性下限**。若只有 1 GB，安裝程式會執行到 Docker，接著遇到 OOM（記憶體不足）而卡住。不要在 RAM 上省錢。

價格來源：[Timeweb Cloud](https://timeweb.cloud/services/vds-vps)、[FirstVDS](https://firstvds.ru/products/vds_vps_hosting) 和 [Selectel](https://selectel.ru/services/cloud/vps-vds)。

如果需要更高效能（100 GB 資料庫、多個 Postgres 執行個體），可選擇 Aeza Dedicated。

不該選擇的方案：

- **512 MB–1 GB RAM 的共享 VPS** — 連 Coolify 都跑不動。這適合放在 nginx 上的靜態網站，不適合 PaaS。

除了設定部署，你也想打造一套**讓 Claude 更可靠的設定**嗎？Coolify 是執行工具，但若沒有結構化的上下文（[`CLAUDE.md`](https://ailoot.ai/blog/zh-hant-tw/claude-md-template/)、[第二大腦](https://ailoot.ai/blog/zh-hant-tw/claude-code-second-brain/)和[上下文工程](https://ailoot.ai/blog/zh-hant-tw/context-engineering/)），Claude 在長任務中仍會產生幻覺。完整設定包含這三者：**AI 分身 + 第二大腦 + 上下文工程**——這個組合能讓 Claude 從「會產生幻覺的助理」變成可靠的工具。

## 如何在 5 分鐘內安裝 Coolify

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="本節重點">

重點摘要

安裝只需要執行文件中的一個 curl 指令。啟動後，網頁介面會出現在連接埠 8000。你可以在那裡建立第一個管理員使用者，並看到空白儀表板。從空白 Ubuntu 安裝到 Coolify 執行，實際需要 5–7 分鐘，其中 3–4 分鐘用於 `apt-get install docker`。安裝腳本會取得必要相依項目並自行設定 Docker；你只需等它完成。

</div>

**步驟 1. 透過 SSH 連線至 VPS。**

在供應商處建立 VPS 後，伺服器 IP 位址和 root 密碼會出現在電子郵件或控制台中。從本機電腦連線：

```bash
ssh root@1.2.3.4
```

如果供應商提供 SSH 金鑰而非密碼，請使用 `-i path/to/key` 連線。以下假設你使用的是全新安裝的 Ubuntu 22.04 或 24.04 LTS。

**步驟 2. 執行 Coolify 安裝指令。**

來自[官方文件](https://coolify.io/docs/get-started/installation)的一個指令：

```bash
curl -fsSL https://cdn.coollabs.io/coolify/install.sh | sudo bash
```

腳本會執行三件事：

1.  檢查系統（Ubuntu LTS？root？AMD64？）
2.  如果尚未安裝 Docker 和 Docker Compose，就進行安裝
3.  下載 Coolify 映像檔（`coolify/coolify`、`coolify/realtime`、`traefik`），並透過 docker-compose 在背景執行

這需要 3–5 分鐘。你會看到 `apt-get` 記錄快速捲動，接著是 `docker pull`。看到 `Coolify v4.1.0 is now running` 時，進入步驟 3。

**步驟 3. 開啟網頁介面。**

在瀏覽器中開啟：

```
http://1.2.3.4:8000
```

Coolify 會顯示設定精靈——建立第一位使用者的表單。輸入電子郵件和密碼並儲存。這位使用者會自動成為管理員；目前不需要其他使用者。

儲存後，你會進入空白儀表板：左側是含有 Resources / Projects / Servers / Sources / Notifications / Settings 的側邊欄，中央則提示 “Add your first resource.”

**步驟 4. 在供應商的防火牆（而非 UFW）開啟連接埠。**

Coolify 已經在執行，但從外部只能連到連接埠 8000（儀表板）。若要讓使用者連到你的應用程式，就必須開啟連接埠 80（HTTP）和 443（HTTPS）：

| 連接埠 | 用途 |
|----|----|
| 22 | 透過 SSH 存取伺服器 |
| 80 | 接收 HTTP 流量，供 Let's Encrypt 驗證使用 |
| 443 | 接收使用者的 HTTPS 流量 |
| 8000 | Coolify 儀表板（設定自訂儀表板網域後會關閉） |

官方文件提到一個重要陷阱：

<figure>
<blockquote>
<p>Docker 使用以 NAT 為基礎的 iptables 規則，可能會繞過 UFW 等傳統 Linux 防火牆。</p>
</blockquote>
<figcaption>— Coolify 文件（防火牆），https://coolify.io/docs/knowledge-base/server/firewall</figcaption>
</figure>

也就是說，即使啟用 UFW 並關閉所有連接埠，Docker 仍會透過 iptables 對外公開容器。UFW 在這裡不起作用。解法是**在供應商的控制台開啟和關閉連接埠**，而不是透過 UFW。在 Timeweb / Selectel / Aeza，請前往網頁主控台的「Network → Firewall」區段操作。

**步驟 5（選用）。將儀表板綁定至你的網域。**

若要造訪 `https://coolify.example.com` 而非 `http://1.2.3.4:8000`，請建立 DNS A 記錄 `coolify.example.com → 1.2.3.4`，接著在 Coolify 前往 **Settings → Instance Settings → Instance Domain**，輸入子網域並儲存。Coolify 會申請 Let's Encrypt 憑證，並在一分鐘後透過 HTTPS 重新載入儀表板。

之後，你可以在防火牆中關閉連接埠 8000——儀表板會透過標準連接埠 443 上的 HTTPS 提供服務。

## 如何連結 GitHub：App 還是 PAT？

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="本節重點">

重點摘要

Coolify 支援兩種連結 GitHub 的方式：**GitHub App**（建議）和 **Personal Access Token（PAT）**。請使用 GitHub App：透過精靈設定只需 5 分鐘、PR 預覽功能可正常運作，而且可以精細設定存放庫層級的權限範圍。PAT 是過時的選項，適用於舊有情境；它沒有預覽部署功能，而且可能使所有儲存庫都面臨全域存取風險。官方文件明確指出：「95% 的使用者，GitHub App 都是正確選擇。」

</div>

在 Coolify 中前往 **Sources → + Add → GitHub App**。Coolify 會顯示三個畫面的設定精靈：

1.  **名稱與說明** — 為來源命名（輸入 `github-main`），也可選擇加入說明。
2.  **Configure on GitHub** — 按鈕會帶你前往 GitHub.com，並自動開啟權限設定正確的 GitHub App 建立表單。
3.  **Confirm** — 從 GitHub 返回後，按一下 “Save.”

在第二個步驟中，GitHub 會要求你確認 Coolify 申請的權限：

| 權限 | 層級 | 用途 |
|-----------------|------------|----------------------------------------------|
| Contents | 唯讀 | 複製儲存庫 |
| Pull Requests | 讀寫 | 建立預覽部署並在 PR 上留言 |
| 電子郵件地址 | 唯讀 | 識別提交 |
| Metadata | 唯讀 | 列出儲存庫 |

這些是**最低限度的權限**——GitHub App 看不到你的私密金鑰，不能寫入 `main`，也無法存取你未明確連結的儲存庫。

官方文件指出：



Personal Access Token（PAT）是舊方法；我**不建議使用**。缺點如下：

- PAT 能全域存取你的所有儲存庫（包括私人儲存庫）
- PR 預覽無法使用——這項功能只有 GitHub App 才有
- Token 的有效期限很長（90 天、一年或永久）——若外洩，後果不堪設想

只有在你使用組織儲存庫，且安全政策禁止 GitHub Apps、又沒有替代方法時，才使用 PAT。

在 Coolify 中儲存來源後，你會在儀表板看到 GitHub App 和已連結的儲存庫清單。建立新應用程式時，只要按一下就能選取其中任一個。

## 使用 Claude Code 部署 Next.js 專案的 6 個步驟

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="本節重點">

重點摘要

從空白的 Claude Code 設定到上線網站的完整流程：1) 在空資料夾中執行 `claude`、描述專案，Claude 就會產生程式碼；2) 執行 `git init && git remote add`（Claude 也可以透過 slash 指令自行完成）；3) 推送到 GitHub；4) 在 Coolify 中選擇「+ New Resource → Application」並選取儲存庫；5) 新增環境變數；6) 按下 Deploy。Coolify 會偵測這是 Next.js、選擇 Nixpacks 建置套件，在 3–5 分鐘內建置 Docker 映像檔，並提供暫用網域，開箱即用支援 HTTPS。

</div>

**步驟 1. 在空資料夾中向 Claude Code 描述專案。**

```bash
mkdir my-vibe-app
cd my-vibe-app
git init
claude
```

在工作階段中輸入：

```
建立一個 Next.js 14 app router 專案：
- 首頁列出使用者清單
- /api/users 端點從資料庫傳回陣列
- 使用 Prisma 連接 Postgres
- 使用 Tailwind 設定樣式
- 建立含有 DATABASE_URL 的 .env.example
- 建立 README.md，說明如何執行專案
```

Claude 會產生檔案結構、package.json、prisma/schema.prisma 和 .env.example。也可以要求：

```
為正式環境建置建立 Dockerfile 和 .dockerignore。
```

這是選用步驟——即使沒有 Dockerfile，Coolify 也會使用 Nixpacks 建置。但 Dockerfile 能讓你控制建置流程，對較大型專案而言也更快。

**步驟 2. 建立 GitHub 儲存庫並推送。**

你可以透過 GitHub UI 手動操作 + `git remote add origin ...`，但 Claude Code 也能自行處理：

```
/commit-push-pr 使用 Claude Code 產生的初始 Next.js 應用程式
```

或直接說：「將所有內容提交，並推送到我帳戶下名為 `my-vibe-app` 的新儲存庫。」Claude 會使用 `gh` CLI 建立私人（或公開）儲存庫並首次推送。來源：[官方 Claude Code 指令](https://github.com/anthropics/claude-code/blob/main/.claude/commands/commit-push-pr.md)。

**步驟 3. 在 Coolify 中建立 Application。**

在 Coolify 儀表板中，按一下 **+ New → Application**。表單會開啟：

1.  **Source** — 選取 `github-main`（你在前一個 H2 章節中連結的 GitHub App）
2.  **Repository** — 從清單選取 `my-vibe-app`
3.  **Branch** — `main`
4.  **Build Pack** — Coolify 會自動偵測。若有 Dockerfile，就會使用 `dockerfile`；否則會使用 `nixpacks`。你可以手動覆寫。
5.  **Domain** — 目前先保留建議值（`xxx.1-2-3-4`）；這是暫用網域，稍後會換成自己的
6.  **Port** — Next.js 預設為 `3000`

儲存。

**步驟 4. 新增環境變數。**

在剛建立的應用程式中，開啟 **Environment Variables** 分頁。逐一新增變數：

```
DATABASE_URL=postgresql://user:pass@db-host:5432/mydb
NODE_ENV=production
ANTHROPIC_API_KEY=sk-ant-...
```

如果沒有資料庫，可以直接在 Coolify 建立：**+ New → Database → PostgreSQL**。Coolify 會在 30 秒內啟動 Postgres 容器，並提供格式為 `postgresql://postgres@postgres-xyz:5432/postgres` 的內部 DATABASE_URL——將它填入應用程式。

所有變數都會在 Coolify 資料庫中加密，且不會顯示在建置記錄中。

**步驟 5. 按下 Deploy。**

右上角有一個藍色 Deploy 按鈕。即時記錄會顯示在 Logs 分頁：

```
[stage: clone]   Cloning '<repository-url-from-github>'
[stage: build]   Detected Next.js, using Nixpacks
[stage: build]   Installing Node 20, npm 10
[stage: build]   npm install (245s)
[stage: build]   npm run build (87s)
[stage: deploy]  Creating container my-vibe-app-xyz
[stage: deploy]  Container started, health check passed
[stage: proxy]   Traefik routing configured for xxx.1-2-3-4
[stage: ssl]     Let's Encrypt cert issued for xxx.1-2-3-4
```

第一次建置需要 3–5 分鐘（會下載 Node 基礎映像檔並安裝相依項目）。之後因為 Docker 層快取，建置只需 60–90 秒。

狀態變成 **Running** 時，複製 Coolify **Domains** 欄位顯示的應用程式 URL，開啟該確切網址。下文以 `<app-url-from-coolify>` 表示它；尖括號標籤是佔位文字，不是真實地址。應該會看到首頁，而且已開箱即用支援 HTTPS。這是免費的暫用萬用字元 DNS 網域，可將包含 IP 位址的子網域解析至該 IP（例如 `1-2-3-4` 解析至 `1.2.3.4`）。Coolify 使用這類網域，讓你不用設定自己的 DNS 就能立即開啟網站。

**步驟 6. 確認一切正常。**

在上一步應用程式 URL 後加入 `/api/users`，例如 `<app-url-from-coolify>/api/users`，勿重複斜線。這是步驟 1 建立的 JSON 端點，根網址則是首頁。如果發生 500 錯誤，Logs 分頁中會顯示堆疊追蹤。首次部署最常見的問題是 DATABASE_URL 指向不存在的資料庫。請在 Coolify 建立 PostgreSQL 執行個體（參見上方步驟 4），然後替換 DATABASE_URL，即可修正。

從訂購 VPS 開始算起，15 分鐘。原始範例在全新伺服器上花了 12–18 分鐘完成這套流程。

## 如何設定自訂網域與 HTTPS

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="本節重點">

重點摘要

設定自訂網域只要 3 個步驟：建立指向伺服器 IP 的 DNS A 記錄，在 Coolify 設定中輸入自己的網域取代暫用網域，啟用自動 HTTPS，然後按下 Redeploy。DNS 傳播後 2–3 分鐘，Let's Encrypt 就會自動簽發 SSL 憑證（DNS 通常需要 5–30 分鐘傳播）。關鍵條件是按下 Redeploy 時 DNS 已能解析；否則 Let's Encrypt 驗證會失敗，你必須等 12 分鐘才能再試。

</div>

**步驟 1. 在網域註冊商控制台建立 DNS A 記錄。**

原始範例使用託管於 Reg.ru、Beget 或 Timeweb 的網域。流程相同：

| 記錄類型 | 名稱 | 值 |
|------------|---------------------------|------------------------|
| A | `app`（根網域使用 `@`） | `1.2.3.4`（伺服器 IP） |

儲存後開啟主控台並檢查：

```bash
dig app.example.com +short
# 應傳回 1.2.3.4
```

如果沒有傳回任何內容，或 IP 不同，代表 DNS 尚未傳播。請等候 5–30 分鐘。

**步驟 2. 在 Coolify 輸入你的網域。**

在應用程式中開啟 **Configuration → General** 分頁。在 **Domains** 欄位中，將從 Coolify 複製的暫用應用程式 URL，換成 `https://app.example.com`（實際請用自己已設定網域）。啟用 **Automatic HTTPS**（通常預設已啟用）。

儲存並按下 **Redeploy**。

**步驟 3. 等待 Let's Encrypt 憑證。**

建置記錄會顯示：

```
[stage: ssl]  Requesting Let's Encrypt cert for app.example.com
[stage: ssl]  HTTP challenge sent to /.well-known/acme-challenge/xxx
[stage: ssl]  Validation passed, cert issued
[stage: ssl]  Cert installed, HTTPS enabled
```

2–3 分鐘後，你的網站就能透過 `https://app.example.com` 連線，網址列會顯示綠色鎖頭。

Let's Encrypt 可能出現的問題（見[官方疑難排解指南](https://coolify.io/docs/troubleshoot/dns-and-domains/lets-encrypt-not-working)列出的前三個問題）：

1.  **防火牆關閉了連接埠 80。** Let's Encrypt 使用 HTTP challenge 驗證——會將請求傳送至 `http://app.example.com/.well-known/acme-challenge/xxx`。連接埠 80 未開啟就無法通過驗證。請在供應商的防火牆中開啟。
2.  **Cloudflare proxy 已啟用（橘色雲朵）。** 它會攔截 Let's Encrypt 請求並傳回自己的佔位頁面，導致驗證失敗。解法是切換至「DNS only」（灰色雲朵），或透過 Cloudflare API 設定 DNS-01 challenge。
3.  **DNS 尚未傳播。** 如果你在 30 秒前才建立 A 記錄，便立刻按下 Redeploy，Let's Encrypt 將無法找到網域。請等候 5–30 分鐘，讓 DNS 傳播至各伺服器。

Let's Encrypt 的速率限制：**單一網域每小時最多失敗 5 次**，每 12 分鐘恢復一次額度。如果達到限制，不要連續按 Redeploy 10 次；請檢查記錄、修正問題，並在 12 分鐘後再試。

## Claude Code 如何透過 MCP 管理 Coolify？

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="本節重點">

重點摘要

透過 Model Context Protocol，Claude Code 可以直接存取 Coolify API——你可以說「部署這個應用程式」，啟動建置、檢查狀態、讀取記錄或更新環境變數。共有三種選項：forsonny/Coolify-MCP-Server（基本功能，7 種操作類別）、dazeb/coolify-mcp-enhanced（額外提供 15 種以上工具，包含一鍵部署資料庫），以及 ajmcclary/Coolify-Manager（以官方 CLI 為基礎的 Claude Skill）。從 v4.1.0（May 18, 2026）起，Coolify 提供原生 MCP 端點，不需第三方伺服器——但目前只能唯讀。

</div>

Model Context Protocol（MCP）是 Anthropic 制定的標準，讓 Claude Code 能與外部系統通訊（詳情請參閱[MCP 伺服器指南](https://ailoot.ai/blog/zh-hant-tw/mcp-servers-claude-code/)）。連結 MCP 伺服器後，Claude 就會取得一組可呼叫的工具。Coolify 有三種現成伺服器，另有一種原生選項。

**選項 1. forsonny/Coolify-MCP-Server-for-Claude-Code——基本版。**



可執行的操作：

- <strong>應用程式：</strong>建立、啟動、停止、重新啟動
- <strong>服務：</strong>列出、建立、啟動/停止/重新啟動
- <strong>部署：</strong>檢視執行中的部署、依 UUID 擷取
- <strong>團隊與成員：</strong>列出、取得資訊
- <strong>SSH 金鑰：</strong>列出、建立
- <strong>環境變數：</strong>對應用程式和服務執行完整 CRUD
- <strong>伺服器資訊：</strong>每台伺服器的網域、健康狀態、版本

安裝：

```bash
git clone '<OFFICIAL_URL>'
cd Coolify-MCP-Server-for-Claude-Code
npm install
npm run build
# 在 .env 中：
#   COOLIFY_BASE_URL=https://coolify.example.com
#   COOLIFY_API_TOKEN=[來自 Coolify Settings → API Tokens]
npm run setup  # 自動設定 Claude Code
```

接著，你可以在 Claude Code 中輸入：

```
顯示 Coolify 中 my-vibe-app 應用程式的狀態，以及最近 3 次部署。
```

Claude 會傳回一個表格。

**選項 2. dazeb/coolify-mcp-enhanced——增強版（推薦）。**



它在基本功能上新增了：

- **一鍵部署 PostgreSQL / Redis / MinIO**——透過 AI 要求「幫我設定 Postgres」，它就會建立容器並傳回 DATABASE_URL
- **即時監控與資源使用量**——即時查看各應用程式的 CPU/RAM
- **大量更新 env 設定**——用一個指令更新 20 個變數
- **Docker Compose 支援**——部署多服務應用程式

Claude Code 的設定（專案根目錄中的 `.mcp.json`）：

```json
{
  "mcpServers": {
    "coolify-enhanced": {
      "command": "node",
      "args": ["/path/to/coolify-mcp-enhanced/dist/index.js"],
      "env": {
        "COOLIFY_ACCESS_TOKEN": "your-token-here",
        "COOLIFY_BASE_URL": "https://coolify.example.com"
      }
    }
  }
}
```

**選項 3. ajmcclary/Coolify-Manager——以 CLI 為基礎的 Claude Skill。**



它不是 MCP 伺服器，而是包裝官方 Coolify CLI 的 Claude Code Skill。包含：

- 服務和容器健康診斷
- SSL 憑證診斷
- 多執行個體支援（如果你有多台 Coolify 伺服器）
- 疑難排解操作指引

安裝：下載這項 skill，並放入 `~/.claude/skills/coolify-manager/`。Claude Code 會自動載入，並在適合的任務中提供使用。

**選項 4（2026 年 5 月新增）。Coolify v4.1.0 的原生 MCP。**

v4.1.0 於 May 18, 2026 發布的變更紀錄提到：

> 新增執行個體層級的 MCP 支援，提供唯讀工具存取 Coolify 資源及 API/UI。

Coolify 現在有自己的 MCP 端點——你可以不透過第三方伺服器，直接連結 Claude Code。目前它**只能唯讀**（應用程式清單、狀態、設定），不支援修改操作。不過，這已足以完成「告訴我基礎架構的狀況」等多數任務。

透過 `.mcp.json` 連結：

```json
{
  "mcpServers": {
    "coolify-native": {
      "url": "https://coolify.example.com/api/v1/mcp",
      "headers": {
        "Authorization": "Bearer <your-api-token>"
      }
    }
  }
}
```

等待原生 MCP 在 v4.2 或 v4.3 開放完整寫入權限——Coolify 團隊承諾會在 2026 年底前完成。

## 首次部署常見的 5 個陷阱，以及如何避免

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="本節重點">

重點摘要

首次部署最常見的錯誤包括 RAM 不足、連接埠 80 關閉、Cloudflare proxy 造成 Let's Encrypt 失敗、UFW 無法保護 Docker，以及選擇 PAT 而非 GitHub App。官方文件都涵蓋了這些問題，但沒有實際經驗時很容易遇上。以下是根據首次安裝 Coolify 的原始經驗整理的 5 點檢查清單。

</div>

**陷阱 1：RAM 少於 2 GB——安裝因 OOM 而失敗。**

症狀：`curl install.sh` 執行到 `docker pull coolify/coolify`，卡在 70%，接著程序因 `Killed (signal 9)` 而遭終止。`dmesg | tail` 記錄會顯示 `Out of memory: Killed process`。

解法：

```bash
# 暫時建立 4 GB swap 檔案以解決問題
sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
```

長期來看，請升級至 4 GB RAM。Coolify 可使用 swap，但大型 Next.js 專案的建置可能會失敗。

**陷阱 2：UFW 已啟用，但 Docker 仍會開啟連接埠。**

症狀：你啟用 UFW，並關閉除了 22 之外的所有連接埠，但應用程式仍能透過網際網路從某個隨機連接埠（例如 3000）存取。

根據[官方文件](https://coolify.io/docs/knowledge-base/server/firewall)，原因是：

<figure>
<blockquote>
<p>Coolify 執行於 Docker 之上，而 Docker 使用以 NAT 為基礎的 iptables 規則，可能繞過 UFW 等傳統 Linux 防火牆。</p>
</blockquote>
<figcaption>— Coolify 文件（防火牆），https://coolify.io/docs/knowledge-base/server/firewall</figcaption>
</figure>

解法：使用**供應商控制台中的防火牆**，而非 UFW。Timeweb / Selectel / Aeza 有「Firewall」或「Network → Firewall」區段，可在虛擬網路層級設定規則——封包到達 Docker 前就會先套用這些規則。

另一種方法是使用 ufw-docker，這是一個修改 UFW 以支援 Docker 的腳本。不過，在控制台中按幾下比這個方法簡單。

**陷阱 3：Cloudflare proxy（橘色雲朵）會讓 Let's Encrypt 失效。**

症狀：按下 Redeploy 後，記錄顯示 `Let's Encrypt validation failed - challenge returned 403`。

原因：Cloudflare 代理 Let's Encrypt 的 HTTP 請求，並傳回自己的頁面，而非你的 challenge 檔案。

解法——二選一：

1.  **切換至「DNS only」**（Cloudflare 中的灰色雲朵）。缺點：你會失去 Cloudflare CDN 和防護功能。
2.  **透過 Cloudflare API 設定 DNS-01 challenge。** 在 Coolify 中前往 Settings → SSL Configuration，選擇 Cloudflare 供應商，並輸入具有 Zone:Read 和 DNS:Edit 權限的 API token。Let's Encrypt 會透過 TXT 記錄，而非 HTTP 進行驗證。

第二種方法設定起來較複雜，但可以保留 Cloudflare proxy。

**陷阱 4：使用 PAT 而非 GitHub App——PR 預覽無法運作。**

症狀：你使用 Personal Access Token 連結 GitHub；其他功能都正常，但不會為 PR 建立預覽部署。你在 GitHub 開了 PR，Coolify 卻沒有任何反應。

原因：PR 預覽是 GitHub App 專屬功能。PAT 不會透過 webhook 接收 `pull_request` 事件。

解法：透過 App 重新連結 GitHub。Sources → Add → GitHub App → 完成設定精靈。你可以刪除舊的 PAT 來源。

**陷阱 5：「Coolify == Vercel」並不完全正確。**

Coolify 開箱即用**無法提供**的功能：

| Vercel | Coolify | 解決方法 |
|----|----|----|
| 全球 CDN | 無 | 在前面加上 Cloudflare（靜態內容可免費使用） |
| Incremental Static Regeneration | 無 | `revalidatePath` 只會在自己的伺服器上運作 |
| 圖片最佳化 | 無 | 使用本機 loader 的 `next/image` 或 Cloudflare Images |
| 流量尖峰時自動擴充 | 無 | 手動擴充；升級 VPS |
| Edge Functions | 無 | 使用一般 API 路由 |

如果你的專案是面向全球使用者、流量很高，且全球延遲需求為 \< 100 ms 的 SaaS，Coolify 就不適合；請選擇 Vercel Enterprise。如果你是氛圍編碼者，正在用每天 100–1,000 名使用者測試 MVP，Coolify 就能滿足所有需求。

來自一份坦誠的自架分析：



本指南標題中的 15 分鐘，指的是首次部署單一專案的順利流程。要完成含監控、備份和警示的完整基礎架構設定，得花上一兩個晚上。請誠實看待所需時間。

## 與 Vercel 相比，一年可以省下多少？

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="本節重點">

重點摘要

另有 5–10 小時的初始設定時間，以及每月 1–2 小時維護時間的「隱形時間成本」。

</div>

以下 Vercel 數字是本文 2026 年 5 月情境估算，不是目前報價，也只是比較的一邊。自架 Coolify 沒有授權費，但 VPS、備份、儲存、流量與維運仍有成本。請取得符合上述要求的報價；情境未提供 VPS 數字，因此不能宣稱固定節省。

令 **C** 為每月 VPS、備份儲存、額外流量、監控與付費控制台的總基礎架構帳單，各項只計一次；**r** 為每小時維運成本，全程用同一幣別。本文時間估算為初始 5–10 小時，加每月 1–2 小時，即**首年 17–34 小時、之後每年 12–24 小時**。

| 情境 | Vercel 每月估算 | Vercel 每年 | Coolify 每月基礎架構 | Coolify 首年含人力 TCO | 首年比 Vercel 節省 |
|----|----|----|----|----|----|
| 單一原型、每月 100,000 次造訪 | $20 基本費 + 約 $5 頻寬 = $25 | $300 | C | 12C + (17–34)r | $300 − 12C − (17–34)r |
| 一台 VPS、五個專案 | $20 基本費 + $30 頻寬/functions = $50 | $600 | C | 12C + (17–34)r | $600 − 12C − (17–34)r |
| 三位開發者、五個專案 | $60 席位 + $30 頻寬 = $90 | $1,080 | C | 12C + (17–34)r | $1,080 − 12C − (17–34)r |

工作量需要不同主機時，各情境用自己的 C。將首年設定時間攤到 12 個月，每月等值為 **C + (17–34)r/12**；之後年 TCO 為 **12C + (12–24)r**。Vercel 也要納入相對應維運成本；節省為負數時，代表依你的輸入自架更貴。r 已含工程師成本時，不要再重複加整份薪資。

切換前以真實報價與備份計畫填 C、選定 r，再用一個月實際用量比較；缺少這些輸入，本文只能提供成本模型，不能宣稱節省金額。

主要好處並不是省錢。改用 Coolify 後，**「受制於他人的付款政策」這個類別就消失了**。不再需要收取 20% 手續費的虛擬中介卡。

Coolify 不是更便宜的 Vercel，而是另一類產品：基礎架構由你擁有，責任由你承擔，並以接受其複雜度來節省成本。

如果你在 Claude Code 生成專案後，第一件事就是部署原型，那麼管理環境（env、密鑰、排程工作、備份）就是[**上下文工程**](https://ailoot.ai/blog/zh-hant-tw/context-engineering/)的一部分。若沒有「所有東西放在哪裡」的架構，Claude 就會迷失方向，而你每次修改都得浪費時間。完整設定包括：**AI 分身**（依照你的方法論調整的 [Skills](https://ailoot.ai/blog/zh-hant-tw/claude-code-skills-library/) 和 [Subagents](https://ailoot.ai/blog/zh-hant-tw/claude-code-subagents/)）+ [**第二大腦**](https://ailoot.ai/blog/zh-hant-tw/claude-code-second-brain/)（專案知識庫）+ **上下文工程**（[Plan Mode](https://ailoot.ai/blog/zh-hant-tw/claude-code-plan-mode/)、`/compact`、執行環境）。這就是 AI 無法避免產生幻覺的**三大支柱**。

<div class="section" role="doc-bibliography" aria-label="來源">

### 來源

- [Coolify 官方文件：介紹](https://coolify.io/docs/get-started/introduction)
- [Coolify 安裝指南](https://coolify.io/docs/get-started/installation)
- [Coolify 建置套件總覽](https://coolify.io/docs/applications/build-packs/overview)
- [Coolify 防火牆知識庫](https://coolify.io/docs/knowledge-base/server/firewall)
- [Coolify Let's Encrypt 疑難排解](https://coolify.io/docs/troubleshoot/dns-and-domains/lets-encrypt-not-working)
- [Coolify 價格](https://coolify.io/pricing)
- [Coolify GitHub：v4.1.0 發行版本](https://github.com/coollabsio/coolify/releases)
- [Claude Code 概覽](https://code.claude.com/docs/en/overview)
- [Timeweb Cloud VPS](https://timeweb.cloud/services/vds-vps)
- [FirstVDS VPS](https://firstvds.ru/products/vds_vps_hosting)
- [Selectel VPS/VDS](https://selectel.ru/services/cloud/vps-vds/)
- [Vercel 價格](https://vercel.com/pricing)

</div>

完整上下文工作流程：**AI 分身 + 第二大腦 + 上下文工程**。



更多資料請參閱 [Ailoot](https://ailoot.ai/)。

## 常見問題：Coolify 與 Claude Code：將專案部署到自己的 VPS

### 部署後，哪個 URL 應回傳 JSON？

複製 Coolify Domains 欄位中的應用程式 URL，再開啟它的 /api/users 路徑。根網址是首頁；/api/users 才是範例專案建立的 JSON 端點。

### 如何計算自架是否省錢？

將每月 VPS、備份、儲存、流量、監控及選用控制台費加成 C。首年自架 TCO 為 12C 加 17–34 小時乘你的時薪成本，再與情境中的 Vercel 年估價比較；兩邊都應納入可比較的維運成本。


## Ailoot · 公司及其專案組合

Ailoot以累積的營運經驗、廣大的客戶群、穩定的服務及持續的KPI管理為基礎。

公司及其專案組合：數百萬客戶，每月銷售額達數十億。

Ailoot將這些營運經驗用於API存取，讓客戶的產品、代理、應用程式及自動化流程使用AI功能。
