前言:你的部署平台账单有多高?
作为一名独立开发者或小团队,每个月在Vercel Pro($20/人/月)或Netlify Pro($19/人/月)上的开销看似不多,但一年下来每个用户就是240美元(约1700元人民币)。如果你是5人团队,年费用轻松突破万元大关。
本文将用实际操作告诉你:如何用免费或极低成本的方案替代这些付费部署平台,同时保留核心功能。我们聚焦两个方向:Cloudflare Pages(零成本SaaS方案)和Coolify/Dokku/CapRover(开源自托管方案)。
一、付费工具定价深度分析
Vercel Pro — $20/月/用户
| 功能 | Free | Pro |
|---|---|---|
| 构建时长 | 6000分钟/月 | 24000分钟/月 |
| 带宽 | 100GB/月 | 1TB/月 |
| Serverless Functions | 100GB-hrs | 1000GB-hrs |
| 团队成员 | 1人 | 无限 |
| 自定义域名 | ✅ | ✅ |
| 预览部署 | ✅ | ✅ |
| 分析面板 | 基础 | 高级 |
隐藏成本:超出带宽$40/100GB,超出构建时长$0.015/分钟。一个中等流量项目很容易超出免费额度。
Netlify Pro — $19/月/成员
| 功能 | Free | Pro |
|---|---|---|
| 构建分钟 | 300分钟/月 | 25000分钟/月 |
| 带宽 | 100GB/月 | 1TB/月 |
| 表单提交 | 100/月 | 1000/月 |
| 身份验证用户 | 1000 | 10000 |
| 团队成员 | 1 | 无限 |
| Edge Functions | 基础 | 高级 |
定价陷阱:Netlify的Add-on生态(表单、身份验证、函数)都有独立计费,叠加后成本不可控。
年度总成本计算:
- 单人开发者:$228-$240/年(约1600-1700元)
- 5人团队:$1140-$1200/年(约8000-8400元)
- 10人团队:$2280-$2400/年(约16000-17000元)
二、免费替代方案全景
方案A:Cloudflare Pages(推荐首选)
核心优势:
- 免费额度极其慷慨:每月500次构建、无限带宽、无限请求
- 全球300+边缘节点,CDN性能顶级
- 支持SSR(通过Functions)、静态站点、全栈应用
- 与Cloudflare Workers无缝集成
适用场景:前端项目、Next.js/Nuxt/VuePress等框架、API代理
方案B:Coolify(自托管全栈方案)
核心优势:
- 开源免费,界面美观,功能对标Heroku/Netlify
- 支持Docker、数据库(PostgreSQL/MySQL/Redis)、静态站点、应用
- 一键SSL、自动部署、多服务器管理
- 支持GitHub/GitLab/Gitea Webhook自动构建
适用场景:需要数据库的全栈应用、多项目管理、团队协作
方案C:Dokku(极简PaaS)
核心优势:
- Heroku风格的
git push部署 - 插件生态丰富(数据库、缓存、存储等)
- 资源占用极低(单机即可运行)
- 10年+的稳定项目,文档完善
方案D:CapRover(一键部署)
核心优势:
- Web管理面板,操作最简单
- 内置Let's Encrypt自动HTTPS
- 应用商店一键安装(WordPress、GitLab、MinIO等)
- 支持集群模式
三、实战部署:从零开始
3.1 Cloudflare Pages 部署(5分钟搞定)
Step 1:创建项目
登录 Cloudflare Dashboard,进入 Workers & Pages → Create → Pages → Connect to Git。
Step 2:连接GitHub仓库
选择你的前端仓库,配置构建命令:
# Next.js 项目
Framework preset: Next.js
Build command: npx next build
Build output directory: .next
# Vite/React 项目
Framework preset: Vite
Build command: npm run build
Build output directory: dist
# VuePress/静态站点
Build command: npm run docs:build
Build output directory: docs/.vuepress/dist
Step 3:配置环境变量
在Settings → Environment variables中添加你的环境变量,支持区分Production和Preview环境。
Step 4:使用Wrangler CLI本地部署
# 安装Wrangler CLI
npm install -g wrangler
# 登录
wrangler login
# 直接部署静态目录
wrangler pages deploy ./dist --project-name=my-app
# 部署Next.js
npm install -D @cloudflare/next-on-pages
npx @cloudflare/next-on-pages
wrangler pages deploy .vercel/output/static --project-name=my-next-app
Step 5:自定义域名
在项目设置 → Custom domains中添加你的域名,Cloudflare会自动配置DNS和SSL。
3.2 Coolify 部署(自托管,需一台VPS)
服务器要求:2核4G内存起步,推荐Debian 12或Ubuntu 22.04
Step 1:一键安装Coolify
# 一键安装脚本(需要root权限)
curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash
# 安装完成后访问 http://your-server-ip:8000
# 首次访问会要求创建管理员账号
Step 2:配置服务器
在Coolify面板中:
- 添加你的服务器(默认本地服务器已自动添加)
- 配置DNS指向你的服务器IP
- 在Settings中配置你的域名
Step 3:部署应用
在Coolify面板 → New Project → New Resource → Public Repository,填入仓库URL,选择构建类型(Dockerfile/Docker Compose/Nixpacks/Paketo),点击Deploy即可。
Step 4:部署带数据库的应用
在Coolify面板 → New Resource → Database,支持 PostgreSQL、MySQL、MongoDB、Redis、DragonflyDB。创建数据库后,在应用的环境变量中引用数据库连接信息。
3.3 Dokku 部署
Step 1:在VPS上安装Dokku
# 一键安装(Ubuntu/Debian)
wget -NP . https://dokku.com/install/v0.34.6/bootstrap.sh
sudo DOKKU_TAG=v0.34.6 bash bootstrap.sh
# 配置SSH密钥
cat ~/.ssh/id_rsa.pub | ssh root@your-server "sudo dokku ssh-keys:add admin"
Step 2:创建应用并部署
# SSH到服务器,创建应用
ssh root@your-server "dokku apps:create my-node-app"
# 在本地添加远程仓库
cd your-project
git remote add dokku dokku@your-server:my-node-app
# 部署!
git push dokku main
# 设置环境变量
ssh root@your-server "dokku config:set my-node-app NODE_ENV=production"
# 绑定域名
ssh root@your-server "dokku domains:set my-node-app myapp.example.com"
# 启用Let's Encrypt自动SSL
ssh root@your-server "sudo dokku plugin:install https://github.com/dokku/dokku-letsencrypt.git"
ssh root@your-server "dokku letsencrypt:set my-node-app email [email protected]"
ssh root@your-server "dokku letsencrypt:enable my-node-app"
Step 3:添加数据库
# 安装PostgreSQL插件
ssh root@your-server "sudo dokku plugin:install https://github.com/dokku/dokku-postgres.git"
# 创建数据库并链接到应用
ssh root@your-server "dokku postgres:create my-db"
ssh root@your-server "dokku postgres:link my-db my-node-app"
3.4 CapRover 部署
Step 1:安装CapRover
# 在VPS上用Docker运行
docker run -p 80:80 -p 443:443 -p 3000:3000 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v captain:/captain \
caprover/caprover
# 或者使用npm CLI
npm install -g caprover
caprover serversetup
Step 2:部署项目
caprover login
cd your-project
caprover deploy
Step 3:使用应用商店
在CapRover Web面板 → Apps → One-Click Apps/Databases,可以一键安装PostgreSQL、MySQL、MongoDB、Redis、WordPress、Ghost、GitLab、MinIO等。
四、功能对比表
| 功能 | Vercel Pro | Netlify Pro | Cloudflare Pages | Coolify | Dokku | CapRover |
|---|---|---|---|---|---|---|
| 价格 | $20/月/人 | $19/月/人 | 免费 | 免费 | 免费 | 免费 |
| 服务器成本 | $0 | $0 | $0 | $5-20/月 | $5-20/月 | $5-20/月 |
| 年总成本(单人) | ~$240 | ~$228 | $0 | $60-240 | $60-240 | $60-240 |
| 年总成本(5人) | ~$1200 | ~$1140 | $0 | $60-240 | $60-240 | $60-240 |
| 部署难度 | ⭐极简 | ⭐极简 | ⭐极简 | ⭐⭐中等 | ⭐⭐⭐较难 | ⭐⭐中等 |
| 静态站点 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| SSR支持 | ✅原生 | ✅ | ✅Functions | ✅ | ✅ | ✅ |
| 数据库 | 外部 | 外部 | 外部 | ✅内置 | ✅插件 | ✅应用商店 |
| 自定义域名 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 自动SSL | ✅ | ✅ | ✅ | ✅Let's Encrypt | ✅插件 | ✅内置 |
| 全球CDN | ✅ | ✅ | ✅300+节点 | ❌单区域 | ❌单区域 | ❌单区域 |
| 构建时间 | 24000分/月 | 25000分/月 | 500次/月 | 无限 | 无限 | 无限 |
| 带宽 | 1TB/月 | 1TB/月 | 无限 | 无限 | 无限 | 无限 |
| Web管理面板 | ✅ | ✅ | ✅ | ✅ | ❌CLI | ✅ |
| 预览部署 | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ |
| Docker支持 | ❌ | ❌ | ❌ | ✅原生 | ✅原生 | ✅原生 |
| 服务器维护 | 不需要 | 不需要 | 不需要 | 需要 | 需要 | 需要 |
五、方案选择建议
选Cloudflare Pages的场景:
- 纯前端项目(React/Vue/Next.js静态导出)
- 个人博客、文档站
- 预算为零,不想维护服务器
- 需要全球CDN加速
选Coolify的场景:
- 全栈应用需要数据库
- 团队有多项目需要统一管理
- 需要完整的CI/CD流水线
- 希望有美观的Web管理界面
选Dokku的场景:
- 习惯Heroku工作流(git push部署)
- 服务器资源有限(Dokku开销最低)
- 只需要简单部署,不需要花哨的UI
选CapRover的场景:
- 想要最简单的操作体验
- 需要一键安装常用应用(WordPress等)
- Docker初学者
六、迁移实战:从Vercel迁移到Cloudflare Pages
# 1. 克隆你的项目
git clone https://github.com/your-username/your-app.git
cd your-app
# 2. 移除Vercel相关配置
rm -rf .vercel
# 3. 安装Cloudflare适配器
npm install -D @cloudflare/next-on-pages
# 4. 创建wrangler.toml
cat > wrangler.toml << 'EOF'
name = "my-app"
compatibility_date = "2024-01-01"
compatibility_flags = ["nodejs_compat"]
pages_build_output_dir = ".vercel/output/static"
EOF
# 5. 测试本地构建
npm run build
# 6. 部署到Cloudflare Pages
wrangler pages deploy .vercel/output/static --project-name=my-app
总结
| 场景 | 推荐方案 | 年成本 |
|---|---|---|
| 个人前端项目 | Cloudflare Pages | $0 |
| 小团队全栈 | Coolify($5 VPS) | $60 |
| 极简部署 | Dokku($5 VPS) | $60 |
| 一键体验 | CapRover($5 VPS) | $60 |
| 继续用付费方案 | Vercel Pro | $240+/人 |
核心结论:对于大多数中小型项目,免费方案完全够用。Cloudflare Pages的免费额度对个人开发者来说绑绑有余;如果需要数据库和后端服务,一台$5/月的VPS加上Coolify或Dokku,就能获得媲美$240/年的Vercel Pro的体验。
省下来的钱,够请团队吃好几顿火锅了。
评论