Vibe Coder
雲端平台選擇:Vercel、Railway、Render、Supabase 怎麼挑
純靜態或 Next.js 網站選 Vercel;有後端又需要資料庫選 Railway;只有後端 API 選 Render;需要資料庫加登入功能就用 Supabase 搭 Vercel。四個平台的計費方式差很多,部署前先看清楚免費額度與費用陷阱,才不會帳單爆炸。
雲端平台選擇:Vercel、Railway、Render、Supabase 怎麼挑
本機能跑,不代表上線能跑。環境變數沒設、套件沒安裝、port 綁錯,每一個都可能讓你辛苦寫好的程式在正式環境掛掉。更麻煩的是,選錯部署平台不只是麻煩,還可能讓帳單默默爆掉,因為同樣的用量在不同平台可能差到十倍。這篇帶你搞懂四個最常用的部署平台,用一棵決策樹幫你一次選對。
你將學到什麼
部署到底是什麼
從本機、測試到正式環境,三種環境各自的角色與差異。
四大平台比一比
Vercel、Railway、Render、Supabase 的定位、免費額度與計費陷阱。
選平台決策樹
依專案型態五步驟判斷該用哪一個平台,不必每次都重新猜。
Vercel/Railway 實戰步驟
從推上 GitHub 到拿到公開網址,照著步驟做一次就會。
部署是什麼
部署(Deploy)就是把你在本機寫好的程式放到網路上讓別人使用的過程。部署完成後,任何人透過 URL 就能存取你的應用程式,不需要你的電腦開著。做產品的最小部署路徑很簡單:本機開發,推上 GitHub,平台自動部署到正式環境。不需要管伺服器,不需要設定 Nginx,平台全包了。
| 環境 | 誰能用 | 特性 |
|---|---|---|
| 本機(localhost) | 只有你 | 開發和測試用,電腦關機就消失 |
| 測試環境(staging) | 你和測試人員 | 驗收用,像正式環境但不給使用者 |
| 正式環境(production) | 所有人 | 真實使用者使用,要穩定、要安全 |
四大平台比較
| 平台 | 定位 | 免費額度 | 最適合 |
|---|---|---|---|
| Vercel | 前端+Serverless Function | 慷慨,個人專案夠用 | React、Next.js、靜態網站、簡單 API |
| Railway | 全端服務+資料庫 | 5 美元 credit/月 | 有後端的全端 App、需要資料庫的專案 |
| Render | 後端服務 | 有(冷啟動慢) | FastAPI、Flask、Express 後端服務 |
| Supabase | PostgreSQL+Auth+儲存 | 2 個免費專案 | 需要資料庫+登入功能的 App |
| 平台 | 計費方式 | 最常踩的費用陷阱 |
|---|---|---|
| Vercel | 按 Function 執行次數、頻寬 | 流量爆炸,頻寬超出免費額度 |
| Railway | 按資源使用時間(CPU+記憶體) | 服務一直跑但沒人用,credit 一下就用完 |
| Render | 按方案月費 | 免費方案 15 分鐘無請求就休眠,第一次請求要等 30 秒 |
| Supabase | 按資料庫大小、API 呼叫數 | 免費方案 7 天不活動就暫停 |
必設帳單警報每個平台都要設定費用警報,超過指定金額立刻通知。Railway 在 Settings → Usage Alerts;Vercel 在 Dashboard → Settings → Billing。設一次永久有效,不設才是真的貴。
什麼專案用什麼平台:決策樹
- 純靜態網站或 Next.js?選 Vercel。最快、最便宜,和 Next.js 同一家公司,整合最好。
- 有 Python/Node 後端+需要資料庫?選 Railway。一個平台同時跑後端和 PostgreSQL,省去串聯麻煩。
- 只有後端 API,不需要資料庫?選 Render。免費方案可用,但要接受冷啟動。
- 需要資料庫+使用者登入功能?選 Supabase+Vercel。Supabase 管資料和認證,Vercel 跑前端和 API。
- 需要跑 AI 模型或 GPU?可以考慮 Modal 或 RunPod,這類平台超出本篇範圍,但先知道有這個選項。
Vercel 部署實戰
- 把程式碼推到 GitHub repo。
- 到 vercel.com 登入,點「Add New Project」,選擇你的 GitHub repo。
- 在「Environment Variables」填入 .env 裡的所有 Key,這很重要,不填就跑不起來。
- 點「Deploy」,Vercel 自動安裝套件、建置、部署,幾分鐘後給你一個 .vercel.app 的網址。
- 之後每次 git push 到 main 分支,Vercel 自動重新部署。
Railway 部署實戰
- 到 railway.app 登入,點「New Project」→「Deploy from GitHub repo」。
- 選擇你的 repo,Railway 自動偵測語言(Python/Node)並設定建置指令。
- 在「Variables」tab 填入環境變數。需要資料庫的話,點「Add Plugin」→「PostgreSQL」,Railway 自動建立並注入 DATABASE_URL。
- 設定啟動指令:Python 用 uvicorn app:app --host 0.0.0.0 --port $PORT,Node 用 node server.js。
- 點「Deploy」,完成後在「Settings」→「Domains」生成公開網址。
Railway 最常見的坑:PORT 環境變數Railway 會注入 PORT 環境變數,告訴你的程式要監聽哪個 port,程式必須用這個值,不能寫死成 8000。
port = int(os.getenv("PORT", 8000))
常見部署失敗原因
| 症狀 | 原因 | 解法 |
|---|---|---|
| 部署成功但網站 500 | 環境變數沒設,程式找不到 API Key | 在平台填入所有 .env 的值 |
| Build 失敗 | requirements.txt 缺少套件,或版本不相容 | 確認 requirements.txt 是最新的 |
| 服務啟動後立刻崩潰 | PORT 寫死或啟動指令錯誤 | 改用 os.getenv("PORT") |
| CORS 錯誤 | 後端沒有加正確的 CORS 設定 | 把正式網域加到 allow_origins |
延伸學習
常見問答
什麼是部署(Deploy)?
部署就是把本機寫好的程式放到網路上,讓任何人透過 URL 就能存取,不需要你的電腦開著。Vercel、Railway 這類平台讓你用 git push 就能完成部署,不必自己管伺服器。
只有一個 Next.js 前端網站,該選哪個平台?
選 Vercel。Vercel 和 Next.js 是同一家公司做的,整合度最好,免費額度對個人專案也很夠用,是最快、最省事的選擇。
Railway 部署最常踩的坑是什麼?
PORT 環境變數。Railway 會注入 PORT 環境變數告訴你的程式該監聽哪個 port,程式必須讀取這個值,不能把 port 寫死,否則服務啟動後會立刻崩潰。
Render 的免費方案有什麼要注意的地方?
免費方案 15 分鐘沒有請求就會休眠,下一次請求要等大約 30 秒才會醒來,也就是常說的冷啟動。如果服務需要隨時保持在線,就要考慮升級付費方案。
