n8nのインストール方法とUbuntu VPSへのセルフホスティング手順

n8nは、さまざまなアプリケーションやAPI間のシームレスな連携を可能にするワークフロー自動化ツールです。Ubuntu VPS上でセルフホスティングすることで、マネージド型のソリューションと比べて、データのプライバシーが強化され、カスタマイズの自由度が高まり、コスト削減にもつながります。
このガイドでは、Hostingerの簡単な1クリックセットアップと、より細かな操作を好むユーザー向けの手動インストールという2つの方法を紹介します。このチュートリアルの最後には、VPS上でn8nが正常に動作する状態になり、ワークフローの自動化をすぐに始められるようになります。
前提条件
n8nをインストールする前に、ホスティング環境が以下の要件を満たしていることを確認してください:
- Ubuntu仮想専用サーバー(VPS)
最小要件: 1 vCPU, 1GB RAM (KVM1)
推奨要件: 2 vCPU, 2GB RAM (KVM2)
まだVPSをお持ちでない場合は、Hostingerがn8n向けVPSホスティングを含むさまざまなVPSオプションを提供しています。
- ドメイン/サブドメイン: 任意ですが、HTTPSの設定やアクセスを簡単にするために推奨されます。
- VPSへのアクセス: SSH(root権限が必要)またはホスティングコントロールパネル(hPanelなど)を使ってVPSに接続する必要があります。
- Docker: 手動インストールを行う場合は、VPSにDockerがインストールされていることを確認してください(テンプレートを使用する場合は不要です)。

HostingerのVPSテンプレートを使ってn8nをインストールする方法
最も簡単な方法から始めましょう。Hostingerの1クリックn8nテンプレートを使用する方法です。この方法では、Ubuntuサーバーのセットアップが自動化され、n8nおよびその依存関係がインストールされます。
1. VPSダッシュボードにアクセスする
まず、VPSダッシュボードにアクセスする必要があります。
- hPanelに移動し、お好みの方法でログインしてください。
- ログイン後、左側のメニューからVPSセクションに移動します。
- n8nテンプレートを適用したいVPSを選び、その横にある「管理」ボタンをクリックします。

2. n8nテンプレートをインストールする
- VPSダッシュボードに入ったら、左側の「OS & パネル」ドロップダウンメニューを開き、「オペレーティングシステム」を選択します。

ここでは、VPSサーバーで利用可能なオペレーティングシステムとそのテンプレートを確認できます。
- 「OSを変更」パネルで検索バーに「n8n」と入力し、n8nテンプレートを選択します。
- 表示されるダイアログウィンドウで「OSを変更」をクリックまたはタップします。
- VPSのOSが上書きされ、すべてのファイルが削除されるという内容のダイアログウィンドウが表示されます。「すべてのファイルが削除され、復元できないことを認識しています」にチェックを入れ、「次へ」をクリックします。
- rootユーザー用のパスワードを入力し、「確認」をクリックします。

テンプレートのセットアップが開始されます。ダッシュボード上部に、以下の例のような進行状況バーが表示されます:

少し待つと、n8nインスタンスの利用準備が整います。
3. インストールをテストする
VPS上にn8nがセットアップされると、ログインして正常に動作しているか確認できるようになります。
- VPSの概要ページで「アプリを管理」をクリックします。

- これにより、n8nの登録用ダイアログウィンドウが開きます。以下のような画面が表示されます:

- 表示されている仕様に従って、必要な情報を入力し、パスワードを作成してください。「次へ」ボタンをクリックし、追加のポップアップが表示された場合は、今は空欄のまま進んでください。これでn8nの概要ページが表示されるはずです。

- このようにn8nパネルがデフォルトの表示で確認できれば、セットアップは正常に完了しています!
4. n8nインスタンスを設定する
n8nインスタンスが起動しているので、セキュリティとカスタマイズのために設定を調整していきましょう。
- 左下にあるお名前の横の三点アイコンをクリックまたはタップし、「設定」を選択します:

- 左側のメニューで「個人設定」を選択します:

ここでは、名前、姓、メールアドレス、パスワードなど、すべての認証情報を確認・変更できます。
また、環境変数を使ってn8nをカスタマイズすることも可能です:
- SSHまたはブラウザターミナルを使ってVPSに接続してください。
- 次にdocker compose.ymlファイルをnanoで開きます。
nano ../root/docker compose.yml
- 「Environment」セクションを編集し、環境変数を追加または調整します。例えば、ベーシック認証を有効にしたい場合は、以下を追加します:
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=username
- N8N_BASIC_AUTH_PASSWORD="password"
上記のusernameとpasswordは、お客様の実際のユーザー名とパスワードに置き換えてください。

その他によく使用される環境変数で、追加または調整を検討するとよいもの:
- N8N_HOST – ドメインを使用する場合は、ここにそのドメインを設定します。
- N8N_PORT – デフォルトは5678ですが、必要に応じて変更できます。
- N8N_PROTOCOL – n8nが使用するプロトコルを指定します。
- WEBHOOK_URL – ドメインと一緒にWebhookを使用する場合に必要です。
- GENERIC_TIMEZONE – 任意のタイムゾーン設定です。
- CTRL+X、続いてY、ENTERを入力してnanoを保存・終了します。変更内容が保存されたことを確認するには、次のコマンドを実行します:
cat docker compose.yml
これにより、Docker Composeファイル全体が表示されます。そこで、お客様が加えた変更内容を確認できるはずです。
- 変更を反映させるために、Docker Composeを再起動します:
docker compose down
docker compose up -d
Docker Composeを再起動すると、変更内容が反映されます。n8nは設定した環境変数を使用するようになります。
カスタムドメインを使用している場合は、SSLの設定も行うべきです。安全なHTTPS接続を実現するには、NGINXをリバースプロキシとして使用し、Let’s Encryptを導入する方法があります:
- CertbotとNGINXをインストールします:
sudo apt install certbot nginx python3-certbot-nginx -y
- n8n用のNGINXサイトファイルを作成または開きます:
sudo nano /etc/nginx/sites-available/n8n
- n8nへのトラフィックを転送するプロキシとしてNGINXを設定します。以下の内容を追加し、yourdomain.comの部分はご自身のカスタムドメイン名に置き換えてください:
server {
server_name yourdomain.com;
location / {
proxy_pass http://localhost:5678;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
CTRL+Xを押し、次に YとENTERを入力してファイルを保存して閉じます。
- 設定を有効にし、NGINXを再起動します:
sudo ln -s /etc/nginx/sites-available/n8n /etc/nginx/sites-enabled/
sudo systemctl restart nginx
- カスタムドメイン用にSSL証明書を取得します(下記のyourdomain.comはご自身のカスタムドメイン名に置き換えてください):
sudo certbot --nginx -d yourdomain.com
- crontabを開きます:
sudo certbot renew
エディターの選択を求められた場合は、nanoを選択します。
- 次のcronジョブを追加します:
0 2 * * * certbot renew --quiet --post-hook "systemctl restart nginx"
Let’s Encryptの証明書は、デフォルトで90日ごとに有効期限が切れます。このジョブを設定しておけば、certbotが必要に応じて証明書を自動更新します。
- nanoでdocker-compose.ymlファイルを開きます:
nano ../root/docker compose.yml
- 次の環境変数を更新します:
- WEBHOOK_URL=https://yourdomain.com/
- N8N_HOST=yourdomain.com
- N8N_PORT=5678
- N8N_PROTOCOL=https
CTRL+Xを押し、次にYとENTERを入力してファイルを保存して閉じます。
- 変更を反映させるためにDocker Composeを再起動します。
docker compose down
docker compose up -d
これで、n8nインスタンスにはお客様のカスタムドメイン名(例:https://yourdomain.com)を使って安全にアクセスできるようになります。
Ubuntuに手動でn8nをインストールする方法
1クリックのn8nテンプレートがないVPSホスティングプロバイダーを使用している場合は、n8nを手動でインストールする必要があります。ここでは、Ubuntu上でn8nを起動・実行するための手順を順を追って説明します。
1. 依存関係をインストールする
n8nを手動でセットアップする前に、必要な依存関係をいくつかインストールする必要があります。まず、SSHまたはウェブベースのコンソールを使ってVPSに接続してください。次に、以下のコマンドを実行してパッケージリストを更新し、既存のパッケージを最新バージョンにアップグレードします:
sudo apt-get update && sudo apt-get upgrade -y
これにより、作業を進める前にシステムが最新のセキュリティパッチとソフトウェアバージョンを備えていることが保証されます。
セルフホスティング版のn8nを実行する方法には、主に2つの方法があります:
- 直接インストール
- コンテナ化インストール
ほとんどのケースではコンテナ化インストールが推奨されますが、ここでは両方の方法を簡単に説明します。
直接インストール
n8nはNode.js環境で直接実行できるため、Dockerを使用しない場合は、Node.jsの最新版の長期サポート(LTS)バージョンをインストールしてください:
- curlとNode.jsのセットアップスクリプトをインストールします:
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
- Node.jsとnpmをインストールします:
sudo apt-get install -y nodejs
- インストールを確認します:
node -v
npm -v
これらのコマンドを実行すると、npmおよびNode.jsがインストールされている場合に、それぞれのバージョンが表示されます。
コンテナ化インストール
n8nをDockerコンテナで実行したい場合は、まずDockerをインストールします。
- 必要な依存関係をインストールします:
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
- :Dockerの公式GPGキーを追加します:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
- Dockerリポジトリを追加し、Dockerをインストールします:
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io
- Dockerがインストールされているか確認します:
docker --version
このコマンドを実行すると、Dockerがインストールされている場合はバージョン情報が表示されます。
2. n8nをセットアップする
すべての依存関係をインストールしたら、n8nのセットアップを行うことができます。
直接インストール
Node.jsを先にインストールしている場合は、npmを使ってn8nをグローバルにインストールできます:
npm install -g n8n
n8nという名前のscreenセッションを開始します:
screen -S n8n
screenセッション内でn8nを実行します:
n8n
screenセッションから切り離すには、CTRL+Aを押した後にDを入力します。n8nと再び対話するためにセッションへ再接続したい場合は、次のコマンドを実行します:
screen -R n8n
デフォルトでは、n8nはポート5678で実行されます。次のURLでアクセスできます:
http://your-server-ip:5678
この時点でセキュアクッキーに関するエラーが表示されることがあります。SSL証明書の作成については後の手順で説明します。
コンテナ化インストール
最新のn8n Dockerイメージを取得します:
docker pull n8nio/n8n
ポートマッピングを指定してコンテナを実行します:
docker run -d --name n8n -p 5678:5678 n8nio/n8n
- -d – コンテナをバックグラウンドで実行します。
- –name n8n – コンテナにn8nという名前を付けます。
- -p 5678:5678 – サーバーのポート5678をコンテナ内のポート5678にマッピングします。
n8nにブラウザからアクセスするには、次のURLを開きます:
http://your-server-ip:5678
上記のインストール手順と同様に、セキュアクッキーに関するエラーが表示されることがあります。SSL証明書の作成については、以下のセクションを参照してください。
デフォルトでは、Dockerコンテナ内のデータは永続化されません。ワークフローや設定を保存するには、ボリュームをマウントしてn8nを実行します:
docker stop n8n && docker rm n8n #stop and remove previous n8n container
docker run -d --name n8n -p 5678:5678 -v ~/.n8n:/home/node/.n8n n8nio/n8n
この設定により、ローカルの~/.n8nフォルダーがコンテナ内のn8nのデータディレクトリにマッピングされます。
コンテナが起動しない場合は、ボリュームへの書き込み権限がない可能性があります。
次のコマンドを実行して権限を取得します:
sudo chown -R 1000:1000 ~/.n8n
sudo chmod -R 755 ~/.n8n
次にコンテナを起動します:
docker start n8n
3. n8nを設定する
デフォルトでは、n8nは認証を強制しないため、サーバーのIPにアクセスできる誰もが利用できてしまいます。インスタンスを保護するには、コンテナを実行する前に環境変数を設定してください。
直接インストールの場合は、exportコマンドを使って変数を追加できます。
以下の例では、username、password、yourdomain.comをお客様が選んだ情報に置き換えてください:
export N8N_BASIC_AUTH_ACTIVE=true
export N8N_BASIC_AUTH_USER=username
export N8N_BASIC_AUTH_PASSWORD=password
export N8N_HOST=yourdomain.com
export N8N_PORT=5678
export WEBHOOK_URL=https://yourdomain.com/
export GENERIC_TIMEZONE=UTC
n8nをDockerコンテナとして実行する場合(コンテナ化インストール)、これらの環境変数は-eフラグを使って渡すことができます(以下の値はご自身の認証情報に置き換えてください):
docker stop n8n && docker rm n8n #stop and remove previous n8n container
docker run -d --name n8n \
-p 5678:5678 \
-e N8N_BASIC_AUTH_ACTIVE=true \
-e N8N_BASIC_AUTH_USER=username \
-e N8N_BASIC_AUTH_PASSWORD=password \
-e N8N_HOST=yourdomain.com \
-e N8N_PORT=5678 \
-e WEBHOOK_URL=https://yourdomain.com/ \
-e GENERIC_TIMEZONE=UTC \
-v ~/.n8n:/home/node/.n8n \
n8nio/n8n
4. 安全なアクセスを有効にする
.n8nインスタンスを保護し、暗号化された接続を確保するために、Let’s EncryptとNGINXを使用してSSL(HTTPS)を設定します。カスタムドメインを使用している場合は特に重要です。
- NGINXとCertbotをインストールします:
sudo apt update && sudo apt install nginx certbot python3-certbot-nginx -y
- NGINXを有効化して起動します:
sudo systemctl enable nginx
sudo systemctl start nginx
- n8n用の新しいNGINX構成ファイルを作成して開きます:
sudo nano /etc/nginx/sites-available/n8n
- 以下の設定を追加します。yourdomain.comはご自身の実際のドメインに置き換えてください:
server {
server_name yourdomain.com;
location / {
proxy_pass http://localhost:5678; # Forward requests to n8n
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
listen 80;
}
次に、CTRL+Xを押してからY、ENTERの順に入力して保存・終了します。
- 設定を有効にします:
sudo ln -s /etc/nginx/sites-available/n8n /etc/nginx/sites-enabled/
- NGINXを再起動します:
sudo systemctl restart nginx
- Let’s Encryptの無料SSL証明書を生成します:
sudo certbot --nginx -d yourdomain.com
- crontabを開きます:
sudo certbot renew
エディターの選択を求められた場合は、nanoを選択します。
- 次のcronジョブを追加します:
0 2 * * * certbot renew --quiet --post-hook "systemctl restart nginx"
Let’s Encryptの証明書は、デフォルトで90日ごとに有効期限が切れます。このcronジョブを設定しておけば、Certbotが証明書を自動的に更新します。
n8nがHTTPSで動作していることを確認するには、ブラウザを開いて、https://yourdomain.comの形式でドメイン名を入力してください。SSLの警告が表示されずにn8nのインターフェースが表示されれば、セットアップは成功しており、n8nをすぐに利用できます。
まとめ
おめでとうございます!n8nのインストールとセルフホスティングが無事完了しました。Hostingerの1クリックセットアップを使った場合でも、手動でn8nをインストールした場合でも、これで強力なワークフロー自動化ツールを自由に活用できるようになりました。
さあ、ここからはワークフローの作成とタスクの自動化を始めましょう。シンプルなn8nの連携から複雑な業務プロセスまで、n8nを使えば大量のコードを書くことなく、アプリ、API、データベースを柔軟につなげることができます。日々の業務を効率化し、作業をシンプルにするさまざまなn8nの自動化アイデアを試してみてください。
覚えておきたいポイント:
- n8nを安全に保つ:認証を使用し、HTTPSを有効にし、必要に応じてアクセス制限を設定しましょう。
- 定期的にアップデート:n8nやセキュリティパッチの最新情報に対応するため、インストールを定期的に更新してください。
- データのバックアップ:Dockerを使用している場合は、永続的なストレージを確保してワークフローや認証情報を安全に保管しましょう。
問題が発生した場合や高度な設定に挑戦したい場合は、n8nのドキュメントを確認するか、n8nコミュニティに参加してサポートを受けてください。
n8nのインストールに関するよくある質問
n8nをローカルで実行できますか?
はい、npmを使ってnpm install n8n -gというコマンドでグローバルにインストールすることで、n8nをローカルで実行できます。インストール後は、n8n または n8n start を実行して起動します。
n8nを実行するにはどのVPSプランが必要ですか?
2つのvCoreと4GBのRAMを備えたVPSがあれば、n8nを始めるには十分です。その場合、HostingerのKVM2で問題ありません。
インストール後、n8nにどのようにアクセスしますか?
n8nをローカルにインストールした後は、ローカルで実行している場合、ブラウザでhttp://localhost:5678にアクセスすることでインターフェースを表示できます。カスタムドメイン付きのVPSでセルフホスティングしている場合は、http://yourdomain.com:5678、またはSSLを設定していればhttps://yourdomain.comにアクセスしてください。