32blogby StudioMitsu
vercel11 min read

Coolify+VPSでNext.jsをセルフホストする全手順

Vercelの従量課金が不安なら、月500円のVPSにCoolifyを入れてセルフホスト。インストールからNext.jsデプロイまでの手順を解説する。

CoolifyVPSNext.jsセルフホストVercel代替
目次

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 Stars51,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 ProCoolify + 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の最小要件

リソース最小推奨
CPU2コア2コア以上
メモリ2GB4GB以上
ディスク30GB50GB以上
OSUbuntu 22.04 / 24.04 LTSUbuntu 24.04 LTS

Next.jsアプリ1〜2個なら2GBプランで動く。データベースも一緒に動かすなら4GB以上が安心だ。

おすすめの国内VPS

日本国内のサーバーを選べば、国内ユーザーへのレスポンスが速い。

PR
ConoHa VPS

初期費用無料・時間課金で始められるVPS

  • 1GBプラン 月額468円〜(36ヶ月)
  • 初期費用無料・時間課金あり(2.5円/時)
  • SSD 100GB・仮想2コア
ConoHa VPS
PR
さくらのVPS

老舗の安定感。エンコード用途にも使える国内VPS

  • 2GBプラン 月額1,594円〜(石狩)
  • 東京・大阪・石狩の3リージョン
  • SSD 100GB・仮想3コア
さくらのVPS
PR
ABLENET VPS

26年以上の実績。Web開発に使える高コスパVPS

  • V1プラン(1.5GB)月額554円〜
  • 初期費用無料・10日間お試し
  • SSD 40GB・仮想2コア
ABLENET VPS

CoolifyをVPSにインストールする

1. VPSにSSH接続する

VPSを契約すると、IPアドレスとrootパスワード(またはSSH鍵)が発行される。ターミナルから接続する。

bash
ssh root@YOUR_SERVER_IP

2. ファイアウォールを設定する

Coolifyが使うポートを開放する。

bash
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をインストールする

ワンラインでインストールできる。

bash
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が依存関係を含む単独の実行ファイルを生成してくれる。

js
// next.config.js
const nextConfig = {
  output: "standalone",
};

export default nextConfig;

この設定がないと、node_modules 全体をコンテナに含める必要があり、イメージサイズが膨張する。

2. Coolifyでプロジェクトを作成する

  1. Coolifyダッシュボード → ProjectsAdd New
  2. New ResourcePublic / Private Repository (with GitHub App)
  3. GitHub連携を設定(GitHub Appをインストール)
  4. デプロイしたいリポジトリとブランチを選択

CoolifyはNixpacksを使って自動的にビルド環境を検出する。Next.jsプロジェクトならNode.jsが自動で選ばれ、npm run buildnpm run start が実行される。Nixpacksがうまく動かない場合はDockerfileビルドに切り替えることもできる。

Next.js 15以降でNixpacksビルドが失敗する場合は、プロジェクトルートに nixpacks.toml を作成して対処する。

toml
# nixpacks.toml
[phases.install]
cmds = ["npm ci --legacy-peer-deps"]

3. 環境変数を設定する

ダッシュボードの Environment Variables セクションで、本番環境の変数を設定する。.env.local に入れていたものと同じだ。

text
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では提供されない。

機能VercelCoolify
Edge Functions✅ 世界中のエッジで実行❌ なし
グローバルCDN✅ 自動❌ 単一サーバー
Image Optimizationnext/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で十分対応できる。


まとめ

判断基準VercelCoolify + VPS
トラフィック予測が難しい✅ 自動スケーリング⚠️ 自分でリソース管理
月額を固定したい❌ 従量課金リスクあり✅ 月額固定
Edge Functionsが必要✅ 対応❌ 非対応
インフラを触りたくない✅ フルマネージド❌ 自分で管理
国内向けサイト✅ だがCDNは海外寄り✅ 国内VPSで高速

Vercelは「何も考えたくない」人のための最高のプラットフォームだ。ただしその快適さの対価として従量課金リスクがある。Spend Managementを正しく設定しておかないと、予想外の請求が届くこともある。

Coolify + VPSは「多少の手間をかけてでもコストを確定させたい」人の選択肢だ。初期設定に30分〜1時間かかるが、一度セットアップすれば月額¥500〜の固定費でNext.jsアプリを運用できる。

どちらが正解ということはない。プロジェクトの規模、予算、自分の技術力に合わせて選べばいい。