Dockerでn8nをインストールする方法(手動とワンクリック)
n8n はオープンソースのワークフロー自動化プラットフォームで、Zapier/Make のセルフホスト代替です。最も一般的で安定した実行方法は Docker を使うことです。本記事ではゼロから Docker で n8n をインストールする方法(docker run と docker compose の両方)を解説し、さらに MyPanel で同じことをワンクリックで行う方法を紹介します。
なぜ Docker で n8n を動かすのか?
- クリーンでまとまっている——すべてが1つのコンテナ内にあり、OS を汚しません。
- 更新が簡単——新しいイメージを取得して再起動するだけ。
- データが永続——ボリュームでワークフローや認証情報を保持し、redeploy でも失われません。
前提条件
- Linux VPS(Ubuntu 22.04+ または Debian 12+)。
- Docker がインストール済み。未導入なら:
curl -fsSL https://get.docker.com | sh。 - (推奨)HTTPS を有効化するため、サーバー IP に向けたドメイン。
方法1 —— docker run で手早く
データボリュームを作成し、n8n コンテナを起動します:
docker volume create n8n_data
docker run -d --name n8n \ -p 5678:5678 \ -v n8n_data:/home/node/.n8n \ docker.n8n.io/n8nio/n8nhttp://サーバーIP:5678 を開いて最初のオーナーアカウントを作成します。データ(ワークフロー、認証情報)は n8n が /home/node/.n8n——つまり n8n_data ボリューム——に保存するため、更新しても失われません。
方法2 —— docker compose を使う(推奨)
docker-compose.yml を作成します:
services: n8n: image: docker.n8n.io/n8nio/n8n restart: always ports: - "5678:5678" environment: - N8N_HOST=n8n.example.com - N8N_PROTOCOL=https - N8N_PORT=5678 - WEBHOOK_URL=https://n8n.example.com/ - GENERIC_TIMEZONE=Asia/Ho_Chi_Minh - TZ=Asia/Ho_Chi_Minh volumes: - n8n_data:/home/node/.n8n
volumes: n8n_data:起動:docker compose up -d。今後の更新:docker compose pull && docker compose up -d。
重要:
WEBHOOK_URLは実際の HTTPS URL でなければなりません。さもないと webhook トリガー(Telegram、GitHub…)が正しく動作しません。
難所:リバースプロキシ + SSL
上記のコンテナは 5678 ポートで暗号化なしに動くだけです。HTTPS 付きのドメインで使うには、127.0.0.1:5678 に向けたリバースプロキシ(nginx/Caddy/Traefik)を構築し、Let’s Encrypt SSL 証明書(certbot)を取得する必要があります。nginx では WebSocket の有効化も必須です(n8n はリアルタイム UI に WS を使用):
location / { proxy_pass http://127.0.0.1:5678; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host;}ここが最も時間がかかり、間違えやすい部分です:プロキシ設定、SSL 更新、正しいポート開放、WebSocket の維持。
Docker で n8n を自前導入する際のよくある失敗
- ボリュームを忘れる → 更新でワークフローが全消去。
WEBHOOK_URLの誤り → webhook がイベントを受信しない。- プロキシに WebSocket 不足 → UI の読み込みが固まる。
- SSL 期限切れ → セキュリティエラー;certbot 更新 cron が必要。
もっと簡単な方法:MyPanel でワンクリック n8n
プロキシ、SSL、ボリュームを自分で管理したくないなら、MyPanel は Marketplace に n8n を用意しています——ワンクリック導入:
- Marketplace を開き、n8n を選び、インストールをクリック。
- ドメインを入力(サーバーに向けて設定済み)。
- インストールをクリック——MyPanel がイメージを取得し、隔離された Docker コンテナで実行し、リバースプロキシ + WebSocket を設定し、Let’s Encrypt SSL を自動発行します。
以降は任意のサイトと同様に n8n を管理できます:ログ、起動/停止、SSL、バックアップ。データは 永続ボリュームにあり、redeploy 後も残ります。Marketplace ガイドを参照。
| 手動 Docker | MyPanel Marketplace | |
|---|---|---|
| コンテナ起動 | コマンド入力 | ワンクリック |
| リバースプロキシ | 自分で設定 | 自動 |
| SSL | 自分で certbot | 自動発行+更新 |
| WebSocket | 手動で追加 | 標準搭載 |
| バックアップ・ログ | 自力 | パネル内 |
まとめ
Docker で n8n を動かすと、強力なセルフホスト自動化エンジンが手に入ります。手動でも十分可能ですが、プロキシ + SSL + WebSocket の層で初心者はつまずきがちです。数分で n8n を HTTPS 上に動かしたいなら:
👉 一行のコマンドで無料の MyPanel をインストールし、Marketplace を開いて n8n をワンクリック導入——無料版で始めるのに十分です。