Vibe Coder

雲端平台選擇:Vercel、Railway、Render、Supabase 怎麼挑

純靜態或 Next.js 網站選 Vercel;有後端又需要資料庫選 Railway;只有後端 API 選 Render;需要資料庫加登入功能就用 Supabase 搭 Vercel。四個平台的計費方式差很多,部署前先看清楚免費額度與費用陷阱,才不會帳單爆炸。
雲端平台選擇:Vercel、Railway、Render、Supabase 怎麼挑

雲端平台選擇: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 後端服務
SupabasePostgreSQL+Auth+儲存2 個免費專案需要資料庫+登入功能的 App
平台計費方式最常踩的費用陷阱
Vercel按 Function 執行次數、頻寬流量爆炸,頻寬超出免費額度
Railway按資源使用時間(CPU+記憶體)服務一直跑但沒人用,credit 一下就用完
Render按方案月費免費方案 15 分鐘無請求就休眠,第一次請求要等 30 秒
Supabase按資料庫大小、API 呼叫數免費方案 7 天不活動就暫停
必設帳單警報每個平台都要設定費用警報,超過指定金額立刻通知。Railway 在 Settings → Usage Alerts;Vercel 在 Dashboard → Settings → Billing。設一次永久有效,不設才是真的貴。

什麼專案用什麼平台:決策樹

你的專案主要是純前端 / Next.js有後端服務或背景工作只要資料庫與登入VercelRailway 或 RenderSupabase
先問專案型態,再對照該用哪個平台。
  1. 純靜態網站或 Next.js?選 Vercel。最快、最便宜,和 Next.js 同一家公司,整合最好。
  2. 有 Python/Node 後端+需要資料庫?選 Railway。一個平台同時跑後端和 PostgreSQL,省去串聯麻煩。
  3. 只有後端 API,不需要資料庫?選 Render。免費方案可用,但要接受冷啟動。
  4. 需要資料庫+使用者登入功能?選 Supabase+Vercel。Supabase 管資料和認證,Vercel 跑前端和 API。
  5. 需要跑 AI 模型或 GPU?可以考慮 Modal 或 RunPod,這類平台超出本篇範圍,但先知道有這個選項。

Vercel 部署實戰

  1. 把程式碼推到 GitHub repo。
  2. 到 vercel.com 登入,點「Add New Project」,選擇你的 GitHub repo。
  3. 在「Environment Variables」填入 .env 裡的所有 Key,這很重要,不填就跑不起來。
  4. 點「Deploy」,Vercel 自動安裝套件、建置、部署,幾分鐘後給你一個 .vercel.app 的網址。
  5. 之後每次 git push 到 main 分支,Vercel 自動重新部署。

Railway 部署實戰

  1. 到 railway.app 登入,點「New Project」→「Deploy from GitHub repo」。
  2. 選擇你的 repo,Railway 自動偵測語言(Python/Node)並設定建置指令。
  3. 在「Variables」tab 填入環境變數。需要資料庫的話,點「Add Plugin」→「PostgreSQL」,Railway 自動建立並注入 DATABASE_URL。
  4. 設定啟動指令:Python 用 uvicorn app:app --host 0.0.0.0 --port $PORT,Node 用 node server.js。
  5. 點「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

延伸學習

把這篇文章分享給需要的人FacebookLINEThreadsX

常見問答

什麼是部署(Deploy)?
部署就是把本機寫好的程式放到網路上,讓任何人透過 URL 就能存取,不需要你的電腦開著。Vercel、Railway 這類平台讓你用 git push 就能完成部署,不必自己管伺服器。
只有一個 Next.js 前端網站,該選哪個平台?
選 Vercel。Vercel 和 Next.js 是同一家公司做的,整合度最好,免費額度對個人專案也很夠用,是最快、最省事的選擇。
Railway 部署最常踩的坑是什麼?
PORT 環境變數。Railway 會注入 PORT 環境變數告訴你的程式該監聽哪個 port,程式必須讀取這個值,不能把 port 寫死,否則服務啟動後會立刻崩潰。
Render 的免費方案有什麼要注意的地方?
免費方案 15 分鐘沒有請求就會休眠,下一次請求要等大約 30 秒才會醒來,也就是常說的冷啟動。如果服務需要隨時保持在線,就要考慮升級付費方案。