CoolifyはオープンソースのPaaSで、Vercelと同じ「git push → 自動デプロイ」を月額固定のVPS上で実現する。従量課金は一切ない。
Vercel Proは月額$20/席だが、帯域やFunction Invocationsの従量課金で請求が膨らむことがある。「git pushだけでデプロイ」の体験は最高だが、月末の請求画面をビクビクしながら開くのは本末転倒だ。
Coolifyを使えば、同じ体験を月¥500〜のVPSで実現できる。帯域制限なし、従量課金なし。さくらのVPSやXServer VPSなら月¥590〜¥990で始められる。この記事では、VPSの選定からCoolifyのインストール、Next.jsアプリのデプロイまでを一気に解説する。
Coolifyとは
CoolifyはオープンソースのPaaS(Platform as a Service)だ。ざっくり言えば「自分のVPSにインストールするVercel」。
Vercel、Netlify、Herokuがやっていることを、自分のサーバー上で再現できる。具体的にはこうだ。
- GitリポジトリへのPush → 自動ビルド → デプロイ
- プレビューデプロイ(PRごとに一時的な環境を作成)
- 環境変数のGUI管理
- Let's Encrypt SSL証明書の自動発行・更新
- PostgreSQL、Redis、MongoDB等をワンクリックで構築
- Docker Composeの直接デプロイ
Vercelの全機能をカバーするわけではないが、「Next.jsアプリを自分のサーバーで動かしたい」という用途には十分すぎる。公式ドキュメントも充実しており、Discordのコミュニティも活発だ。
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以上 |
| ディスク | 20GB+ | 50GB以上 |
| OS | Ubuntu 22.04 / 24.04 LTS | Ubuntu 24.04 LTS |
公式のインストール要件に基づく。Next.jsアプリ1〜2個なら2GBプランで動く。データベースも一緒に動かすなら4GB以上が安心だ。
おすすめの国内VPS
日本国内のサーバーを選べば、国内ユーザーへのレスポンスが速い。
国内シェアNo.1のエックスサーバーが提供する高性能VPS
- NVMe SSD・AMD EPYC搭載の高速サーバー
- 2GBプラン 月額990円〜(3コア / 50GB SSD)
- 初期費用無料
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で十分対応できる。
FAQ
Coolifyは本当に無料?
はい。CoolifyはApache 2.0ライセンスで、個人利用・商用利用ともに無料だ。かかるのはVPSの月額料金だけ。Coolify自体のホスティングも不要にしたいならCoolify Cloudというマネージドオプションもある。
1台のVPSで複数のNext.jsアプリを動かせる?
動かせる。CoolifyはDockerコンテナで複数アプリを管理するので、4GB RAMのVPSならNext.jsアプリ2〜3個+データベースを余裕で動かせる。すべてダッシュボード上で管理できる。
next/image の画像最適化はCoolifyで使える?
使えるが、sharpを自分でインストールする必要がある。Vercelでは next/image が組み込みの最適化ローダーを使うが、Coolifyではsharpライブラリにフォールバックする。npm install sharp を実行し、外部画像を使う場合は images.remotePatterns を next.config.js で設定すればいい。
HTTPS/SSL証明書はどうやって設定する?
CoolifyがLet's Encryptと自動連携する。Domainsセクションでカスタムドメインを追加すると、内蔵のTraefikリバースプロキシが証明書をリクエスト・発行してくれる。更新も自動で、手動作業は不要だ。
VercelからCoolifyにダウンタイムなしで移行できる?
できる。DNSベースの切り替えで対応すればいい。まずCoolifyにアプリをデプロイして動作確認 → DNSのAレコードをVPSのIPに変更。DNS伝播は通常数分〜数時間で完了する。伝播中は一部ユーザーがVercel、一部がCoolifyにアクセスするが、同じアプリが動いているのでダウンタイムはゼロだ。
Coolifyの安定性は本番運用に耐える?
Coolify v4は2024年から本番運用されており、定期的にアップデートが配信されている(最新: v4.0.0-beta.470)。「beta」の表記は紛らわしいが、v4は本番利用に問題ないレベルだ。v5への全面書き換えが進行中だが、v4のメンテナンスは継続されている。GitHubのスター52,000+、Discordコミュニティのレスポンスも速い。
バックアップはどうする?
Coolifyはデータベースの定期バックアップをS3互換ストレージに保存する機能がある。アプリデータやボリュームについては、VPSプロバイダーのスナップショット機能を使うのが手軽だ。
まとめ
| 判断基準 | Vercel | Coolify + VPS |
|---|---|---|
| トラフィック予測が難しい | ✅ 自動スケーリング | ⚠️ 自分でリソース管理 |
| 月額を固定したい | ❌ 従量課金リスクあり | ✅ 月額固定 |
| Edge Functionsが必要 | ✅ 対応 | ❌ 非対応 |
| インフラを触りたくない | ✅ フルマネージド | ❌ 自分で管理 |
| 国内向けサイト | ✅ だがCDNは海外寄り | ✅ 国内VPSで高速 |
Vercelは「何も考えたくない」人のための最高のプラットフォームだ。ただしその快適さの対価として従量課金リスクがある。Spend Managementを正しく設定しておかないと、予想外の請求が届くこともある。
Coolify + VPSは「多少の手間をかけてでもコストを確定させたい」人の選択肢だ。初期設定に30分〜1時間かかるが、一度セットアップすれば月額¥500〜の固定費でNext.jsアプリを運用できる。
どちらが正解ということはない。プロジェクトの規模、予算、自分の技術力に合わせて選べばいい。
関連記事: