n8n をローカルで実行する方法:完全セットアップガイド (2026年版)
n8nオートメーション・プラットフォームを自身のマシンでセルフホストする
Hyperealで構築を始めよう
Kling、Flux、Sora、Veoなどに単一のAPIでアクセス。無料クレジットで開始、数百万規模まで拡張可能。
クレジットカード不要 • 10万人以上の開発者 • エンタープライズ対応
n8nをローカルで実行する方法:2026年版 完全セットアップガイド
n8nは、ビジュアルなノードベースのエディタを使用して、API、サービス、データソースを接続できるオープンソースのワークフロー自動化プラットフォームです。ZapierやMake.comのセルフホスト版の代替ツールと考えてください。最大の特徴は、データを自身で所有でき、ワークフローの実行制限がないことです。
n8nをローカルで実行することで、完全なコントロール、クラウドコストゼロ、そしてローカルネットワーク上のサービスへの接続能力を手に入れることができます。このガイドでは、Docker(推奨)、npm、および本番環境向けのDocker Composeを使用したすべてのセットアップ方法について解説します。
なぜn8nをセルフホストするのか?
| 機能 | n8n Cloud | n8n セルフホスト |
|---|---|---|
| 月額費用 | $24 - $299/月 | 無料 |
| ワークフロー実行数 | プランによる制限あり | 無制限 |
| データプライバシー | n8n サーバー内 | 自分のマシン内 |
| カスタムノード | 制限あり | 無制限 |
| ネットワークアクセス | インターネットのみ | ローカル + インターネット |
| メンテナンス | 管理不要 | ユーザーが実施 |
| アップデート | 自動 | 手動 |
事前準備
- Docker Desktop(推奨)または Node.js 18以上
- 2GB RAM 以上(4GB推奨)
- 1GBのディスク容量(n8n本体用。ワークフローデータ用に別途追加容量が必要)
- モダンなブラウザ(Chrome、Firefox、Edge)
方法 1:Docker(推奨)
Dockerは、n8nをローカルで実行するための最も簡単で信頼性の高い方法です。
ステップ 1:Dockerのインストール
Dockerがインストールされていない場合:
- macOS: Docker Desktop for Mac をダウンロード
- Windows: Docker Desktop for Windows をダウンロード
- Linux: Docker Engineをインストール:
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
Dockerが動作していることを確認します:
docker --version
ステップ 2:Dockerでn8nを実行する
1つのコマンドでn8nを起動します:
docker run -d \
--name n8n \
-p 5678:5678 \
-v n8n_data:/home/node/.n8n \
n8nio/n8n
このコマンドの役割:
- デタッチモード(
-d)でn8nを実行 - ポート 5678 をマシンにマッピング
- 永続ボリューム
n8n_dataを作成し、コンテナを再起動してもワークフローが消えないように保持
ステップ 3:n8nにアクセスする
ブラウザを開き、以下にアクセスします。
http://localhost:5678
オーナーアカウントの作成を求められます。これがローカルインスタンスの管理者アカウントになります。
停止と起動
# n8nを停止
docker stop n8n
# n8nを起動
docker start n8n
# ログを表示
docker logs n8n
# コンテナを削除(データはボリューム内に保持されます)
docker rm n8n
# データボリュームを削除(警告:すべてのワークフローが削除されます)
docker volume rm n8n_data
方法 2:npm(Dockerを使用しない場合)
Dockerを使用しないことを好む場合:
ステップ 1:n8nをグローバルにインストール
npm install -g n8n
ステップ 2:n8nを起動
n8n start
n8nはデフォルトで http://localhost:5678 で起動します。
バックグラウンドで実行する
pm2 のようなプロセス管理ツールを使用します:
npm install -g pm2
pm2 start n8n
pm2 save
pm2 startup # OS起動時の自動起動を有効にする
方法 3:Docker Compose(本番環境向け)
(SQLiteの代わりに)PostgreSQLを使用し、自動再起動機能を備えた、より堅牢なセットアップ:
docker-compose.yml ファイルを作成します:
version: "3.8"
services:
n8n:
image: n8nio/n8n
restart: always
ports:
- "5678:5678"
environment:
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=admin
- N8N_BASIC_AUTH_PASSWORD=your-secure-password
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_DATABASE=n8n
- DB_POSTGRESDB_USER=n8n
- DB_POSTGRESDB_PASSWORD=n8n-db-password
- N8N_ENCRYPTION_KEY=your-encryption-key-here
- GENERIC_TIMEZONE=Asia/Tokyo
- TZ=Asia/Tokyo
volumes:
- n8n_data:/home/node/.n8n
depends_on:
- postgres
postgres:
image: postgres:16
restart: always
environment:
- POSTGRES_USER=n8n
- POSTGRES_PASSWORD=n8n-db-password
- POSTGRES_DB=n8n
volumes:
- postgres_data:/var/lib/postgresql/data
volumes:
n8n_data:
postgres_data:
スタックを起動します:
docker compose up -d
重要な環境変数
| 変数 | デフォルト値 | 説明 |
|---|---|---|
N8N_PORT |
5678 | n8nが待機するポート |
N8N_PROTOCOL |
http | プロトコル (http または https) |
N8N_HOST |
localhost | ホスト名 |
N8N_BASIC_AUTH_ACTIVE |
false | ベーシック認証を有効にする |
N8N_BASIC_AUTH_USER |
- | ベーシック認証のユーザー名 |
N8N_BASIC_AUTH_PASSWORD |
- | ベーシック認証のパスワード |
N8N_ENCRYPTION_KEY |
自動生成 | 認証情報を暗号化するためのキー |
DB_TYPE |
sqlite | データベースの種類 (sqlite または postgresdb) |
GENERIC_TIMEZONE |
UTC | クロン(実行予約)トリガー用タイムゾーン |
N8N_METRICS |
false | Prometheusメトリクスを有効にする |
EXECUTIONS_DATA_PRUNE |
true | 古い実行データを自動削除する |
EXECUTIONS_DATA_MAX_AGE |
336 | 実行データを保持する時間 |
初めてのワークフロー作成
n8nが起動したら、簡単なワークフローを構築してみましょう。
例:WebhookからSlackへの通知
- n8nダッシュボードで Add workflow をクリック
- + ボタンをクリックしてノードを追加
- Webhook ノード(トリガー)を追加:
- Method を
POSTに設定 - Webhook URL をコピー
- Method を
- Slack ノードを追加:
- Slackワークスペースを連携
- チャンネルを設定
- Webhookのボディをメッセージにマッピング
- Webhook ノードを Slack ノードに接続
- Execute Workflow をクリックしてテスト
- Activate をクリックして本番稼働させる
curlでテスト:
curl -X POST http://localhost:5678/webhook/your-webhook-id \
-H "Content-Type: application/json" \
-d '{"message": "Hello from n8n!", "priority": "high"}'
例:定期的なAPIデータ取得
1時間ごとにAPIからデータを取得し、ファイルに保存するワークフロー:
- Schedule Trigger ノードを追加:
- 60分ごとに実行するよう設定
- HTTP Request ノードを追加:
- Method: GET
- URL:
https://api.example.com/data - 必要に応じて認証ヘッダーを追加
- Write Binary File ノードを追加:
- File name:
data-{{ $now.format('yyyy-MM-dd-HH') }}.json
- File name:
- 接続:Schedule -> HTTP Request -> Write File
- ワークフローをアクティベート
AI APIへの接続
n8nには、主要なAIサービス用のノードが組み込まれています。OpenAIへの接続方法は以下の通りです。
- OpenAI ノードを追加
- 認証情報(Credentials)を作成:
- API Key: 自身の OpenAI API キーを入力
- 設定:
- Resource: Chat
- Model: gpt-4o
- Prompt: プロンプトテンプレートを入力
組み込みノードがないサービスの場合は、HTTP Request ノードを使用します:
{
"method": "POST",
"url": "https://api.hypereal.com/v1/generate",
"headers": {
"Authorization": "Bearer your-api-key",
"Content-Type": "application/json"
},
"body": {
"model": "flux",
"prompt": "{{ $json.prompt }}",
"width": 1024,
"height": 1024
}
}
n8nをインターネットに公開する
外部サービスからWebhookを受信するには、ローカルのn8nインスタンスを公開する必要があります。
オプション 1:ngrok(素早く簡単)
ngrok http 5678
これにより、ローカルのn8nにトンネリングされる https://abc123.ngrok.io のような公開URLが割り当てられます。
オプション 2:Cloudflare Tunnel(無料かつ永続的)
cloudflared tunnel --url http://localhost:5678
オプション 3:Caddyによるリバースプロキシ
Caddyをインストールし、Caddyfile を作成します:
n8n.yourdomain.com {
reverse_proxy localhost:5678
}
caddy run
バックアップと復元
すべてのワークフローをエクスポートする
# CLI経由でエクスポート
docker exec -it n8n n8n export:workflow --all --output=/home/node/.n8n/backups/
# または、ボリュームからコピー
docker cp n8n:/home/node/.n8n/backups/ ./n8n-backups/
ワークフローをインポートする
docker exec -it n8n n8n import:workflow --input=/home/node/.n8n/backups/
データベースのバックアップ(PostgreSQL)
docker exec postgres pg_dump -U n8n n8n > n8n-backup.sql
パフォーマンスのチューニング
負荷の高いワークロードの場合は、以下の設定を調整してください:
# Node.js のメモリを増やす
docker run -d \
--name n8n \
-p 5678:5678 \
-e NODE_OPTIONS="--max-old-space-size=4096" \
-e EXECUTIONS_PROCESS=main \
-e N8N_CONCURRENCY_PRODUCTION_LIMIT=20 \
-v n8n_data:/home/node/.n8n \
n8nio/n8n
| 設定 | デフォルト | 推奨値 | 説明 |
|---|---|---|---|
NODE_OPTIONS |
512MB | 2048-4096MB | Node.jsのヒープサイズ |
N8N_CONCURRENCY_PRODUCTION_LIMIT |
5 | 10-20 | 最大同時実行数 |
EXECUTIONS_DATA_PRUNE |
true | true | 古い実行データの削除 |
EXECUTIONS_DATA_MAX_AGE |
336h | 168h | 保持期間の短縮 |
トラブルシューティング
n8nが起動しない(ポートが使用中):
# ポート5678を使用しているプロセスを確認
lsof -i :5678
# 別のポートを使用する
docker run -p 5679:5678 n8nio/n8n
再起動後にワークフローが消える:
Dockerボリューム(-v n8n_data:/home/node/.n8n)を使用しているか確認してください。ボリュームがない場合、コンテナ削除時にデータが失われます。
ローカルサービスに接続できない:
n8nがDocker内で動作しており、ホストマシンのサービスに接続する必要がある場合は、localhost の代わりに host.docker.internal を使用してください。
http://host.docker.internal:3000/api/data
Webhook URLにアクセスできない: ローカルのWebhook URLは、そのマシン上でのみ動作します。外部からのWebhookを受信するには、ngrok、Cloudflare Tunnel、またはリバースプロキシを設定してください。
大規模なワークフローでのメモリ問題:
NODE_OPTIONS="--max-old-space-size=4096" で Node.js のヒープサイズを増やし、実行データの保持期間を短縮してください。
n8nのアップデート
Docker
docker pull n8nio/n8n
docker stop n8n
docker rm n8n
docker run -d --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n n8nio/n8n
npm
npm update -g n8n
まとめ
n8nをローカルで実行することで、実行制限のない強力で無料の自動化プラットフォームを手に入れることができます。Dockerを使えばセットアップは非常に簡単になり、PostgreSQLを組み合わせたDocker Composeなら本番環境レベルの運用も可能です。データパイプラインの自動化、API同士の連携、あるいは複雑な多段階ワークフローの構築など、n8nはビジュアルビルダーの使いやすさとコードのような柔軟性を兼ね備えています。
もし自動化ワークフローの中で、画像生成、動画生成、音声生成などのAIメディア生成が必要な場合は、Hypereal AI のシンプルなAPIを n8n の HTTP Request ノードから呼び出すことができます。従量課金制と高速な推論で、AIメディア生成を大規模に自動化しましょう。
