Vercel Proは月額$20だが、帯域やFunction Invocationsの従量課金で請求が膨らむことがある。「git pushだけでデプロイ」の体験は最高だが、月末の請求画面をビクビクしながら開くのは本末転倒だ。
Coolifyを使えば、同じ「git push → 自動デプロイ」の体験を月¥500〜のVPSで実現できる。帯域制限なし、従量課金なし。この記事では、VPSの選定からCoolifyのインストール、Next.jsアプリのデプロイまでを一気に解説する。
この記事にはアフィリエイトリンクが含まれています。
Coolifyとは
CoolifyはオープンソースのPaaS(Platform as a Service)だ。ざっくり言えば「自分のVPSにインストールするVercel」。
| 項目 | 内容 |
|---|---|
| GitHub Stars | 51,000+ |
| ライセンス | Apache 2.0(完全無料、商用利用可) |
| 現在のバージョン | v4 |
| 開発者 | Andras Bacsai氏 |
Vercel、Netlify、Herokuがやっていることを、自分のサーバー上で再現できる。具体的にはこうだ。
- GitリポジトリへのPush → 自動ビルド → デプロイ
- プレビューデプロイ(PRごとに一時的な環境を作成)
- 環境変数のGUI管理
- Let's Encrypt SSL証明書の自動発行・更新
- PostgreSQL、Redis、MongoDB等をワンクリックで構築
- Docker Composeの直接デプロイ
Vercelの全機能をカバーするわけではないが、「Next.jsアプリを自分のサーバーで動かしたい」という用途には十分すぎる。
Vercel ProとCoolify + VPSのコスト比較
| Vercel Pro | Coolify + VPS | |
|---|---|---|
| 月額固定費 | $20(約¥3,000) | ¥500〜2,000(VPS代のみ) |
| 帯域 | 1TB含む、超過$0.15/GB | 無制限(VPSプランに依存) |
| Function実行 | 100万回含む、超過$0.60/100万 | 無制限 |
| ビルド時間 | 100時間含む、超過課金 | 無制限 |
| SSL証明書 | 自動 | 自動(Let's Encrypt) |
| CDN | グローバルエッジ | なし(単一サーバー) |
| スケーリング | 自動 | 手動 |
ポイントは「従量課金が一切ない」ことだ。VPSは月額固定で、どれだけトラフィックが来ても追加費用はゼロ。バズっても寝ている間に請求が膨らむことはない。
Vercelの従量課金の詳しい仕組みはSpend Managementの設定ガイドで解説している。
一方、Vercelのエッジネットワークや自動スケーリングは強力だ。世界中からアクセスが来るサービスでは、CDNなしの単一サーバーは不利になる。日本国内向けのサイトや、月間100万PV以下のプロジェクトなら、VPSで十分対応できる。
VPSを選ぶ
Coolifyの最小要件
| リソース | 最小 | 推奨 |
|---|---|---|
| CPU | 2コア | 2コア以上 |
| メモリ | 2GB | 4GB以上 |
| ディスク | 30GB | 50GB以上 |
| OS | Ubuntu 22.04 / 24.04 LTS | Ubuntu 24.04 LTS |
Next.jsアプリ1〜2個なら2GBプランで動く。データベースも一緒に動かすなら4GB以上が安心だ。
おすすめの国内VPS
日本国内のサーバーを選べば、国内ユーザーへのレスポンスが速い。
初期費用無料・時間課金で始められるVPS
- 1GBプラン 月額468円〜(36ヶ月)
- 初期費用無料・時間課金あり(2.5円/時)
- SSD 100GB・仮想2コア
老舗の安定感。エンコード用途にも使える国内VPS
- 2GBプラン 月額1,594円〜(石狩)
- 東京・大阪・石狩の3リージョン
- SSD 100GB・仮想3コア
26年以上の実績。Web開発に使える高コスパVPS
- V1プラン(1.5GB)月額554円〜
- 初期費用無料・10日間お試し
- SSD 40GB・仮想2コア
CoolifyをVPSにインストールする
1. VPSにSSH接続する
VPSを契約すると、IPアドレスとrootパスワード(またはSSH鍵)が発行される。ターミナルから接続する。
ssh root@YOUR_SERVER_IP
2. ファイアウォールを設定する
Coolifyが使うポートを開放する。
ufw allow 22/tcp # SSH
ufw allow 80/tcp # HTTP(Traefik)
ufw allow 443/tcp # HTTPS(Traefik)
ufw allow 8000/tcp # Coolify ダッシュボード
ufw allow 6001/tcp # Coolify Realtime(リアルタイム更新)
ufw allow 6002/tcp # Coolify Terminal(Web経由のシェル)
ufw enable
ポート8000、6001、6002はCoolifyのダッシュボード用だ。カスタムドメインを設定してリバースプロキシ経由でアクセスする場合は、これらのポートは閉じてもいい。
3. Coolifyをインストールする
ワンラインでインストールできる。
curl -fsSL https://cdn.coollabs.io/coolify/install.sh | sudo bash
Docker、Docker Compose、Coolify本体がまとめてインストールされる。所要時間は2〜5分。
4. ダッシュボードにアクセスする
インストールが完了したら、ブラウザで http://YOUR_SERVER_IP:8000 にアクセスする。初回セットアップ画面で管理者アカウントを作成すれば、ダッシュボードが使えるようになる。
Next.jsアプリをCoolifyにデプロイする
1. next.config.jsを設定する
セルフホストする場合、output: "standalone" を設定する。Next.jsが依存関係を含む単独の実行ファイルを生成してくれる。
// next.config.js
const nextConfig = {
output: "standalone",
};
export default nextConfig;
この設定がないと、node_modules 全体をコンテナに含める必要があり、イメージサイズが膨張する。
2. Coolifyでプロジェクトを作成する
- Coolifyダッシュボード → Projects → Add New
- New Resource → Public / Private Repository (with GitHub App)
- GitHub連携を設定(GitHub Appをインストール)
- デプロイしたいリポジトリとブランチを選択
CoolifyはNixpacksを使って自動的にビルド環境を検出する。Next.jsプロジェクトならNode.jsが自動で選ばれ、npm run build → npm run start が実行される。Nixpacksがうまく動かない場合はDockerfileビルドに切り替えることもできる。
Next.js 15以降でNixpacksビルドが失敗する場合は、プロジェクトルートに nixpacks.toml を作成して対処する。
# nixpacks.toml
[phases.install]
cmds = ["npm ci --legacy-peer-deps"]
3. 環境変数を設定する
ダッシュボードの Environment Variables セクションで、本番環境の変数を設定する。.env.local に入れていたものと同じだ。
DATABASE_URL=postgresql://user:pass@localhost:5432/mydb
NEXT_PUBLIC_SITE_URL=https://example.com
4. ドメインを設定する
Domains セクションでカスタムドメインを追加する。CoolifyがLet's Encrypt証明書を自動で発行してくれる。
DNSでドメインのAレコードをVPSのIPアドレスに向ければ完了だ。
5. デプロイする
Deploy ボタンを押す。初回はビルドキャッシュがないため3〜5分かかるが、以降は設定したブランチにpushするたびに自動デプロイが走る。Vercelと同じ体験だ。
Coolifyでできないこと
Vercelと完全に同じではない。以下の機能はCoolifyでは提供されない。
| 機能 | Vercel | Coolify |
|---|---|---|
| Edge Functions | ✅ 世界中のエッジで実行 | ❌ なし |
| グローバルCDN | ✅ 自動 | ❌ 単一サーバー |
| Image Optimization | ✅ next/image ローダー自動 | ⚠️ sharp を自分で設定 |
| Analytics | ✅ 組み込み | ❌ 自分で導入(Plausible等) |
| Preview Deployments | ✅ PRごとに自動 | ✅ PRごとに自動 |
| Web Application Firewall | ✅ Pro以上 | ❌ 自分で設定(Fail2ban等) |
Edge Functionsが必要ならVercelを使うべきだ。 認証のエッジ処理、地域ベースのリダイレクト、A/Bテストなどをエッジで実行したい場合、Coolify + VPSでは代替が難しい。
CDNが必要な場合は、Cloudflareを前段に置くことで対応できる。Cloudflareの無料プランでも帯域無制限のCDNが使える。VPS + Coolify + Cloudflareの組み合わせで、Vercelに近い配信性能を月額¥500〜で実現可能だ。
静的サイト、SSRブログ、管理画面付きのWebアプリなど、エッジ処理が不要なプロジェクトならCoolifyで十分対応できる。
まとめ
| 判断基準 | Vercel | Coolify + VPS |
|---|---|---|
| トラフィック予測が難しい | ✅ 自動スケーリング | ⚠️ 自分でリソース管理 |
| 月額を固定したい | ❌ 従量課金リスクあり | ✅ 月額固定 |
| Edge Functionsが必要 | ✅ 対応 | ❌ 非対応 |
| インフラを触りたくない | ✅ フルマネージド | ❌ 自分で管理 |
| 国内向けサイト | ✅ だがCDNは海外寄り | ✅ 国内VPSで高速 |
Vercelは「何も考えたくない」人のための最高のプラットフォームだ。ただしその快適さの対価として従量課金リスクがある。Spend Managementを正しく設定しておかないと、予想外の請求が届くこともある。
Coolify + VPSは「多少の手間をかけてでもコストを確定させたい」人の選択肢だ。初期設定に30分〜1時間かかるが、一度セットアップすれば月額¥500〜の固定費でNext.jsアプリを運用できる。
どちらが正解ということはない。プロジェクトの規模、予算、自分の技術力に合わせて選べばいい。