n8n使い方初心者ガイド|Dockerセルフホストで始める業務自動化の完全手順
n8nはノーコードで業務自動化ワークフローを構築できるオープンソースツールです。ZapierやMake(旧Integromat)の代替として注目されており、セルフホストすることで無制限にワークフローを実行できるのが最大の魅力です。本記事では初心者がDockerを使ってn8nをセットアップし、最初のワークフローを動かすまでの具体的な手順を解説します。実際に私が初めてn8nを導入した経験をもとに、つま
n8nはノーコードで業務自動化ワークフローを構築できるオープンソースツールです。ZapierやMake(旧Integromat)の代替として注目されており、セルフホストすることで無制限にワークフローを実行できるのが最大の魅力です。本記事では初心者がDockerを使ってn8nをセットアップし、最初のワークフローを動かすまでの具体的な手順を解説します。実際に私が初めてn8nを導入した経験をもとに、つまずきやすいポイントも含めて説明していきます。
n8nとは?他の自動化ツールとの違い
n8nは2019年にリリースされたワークフロー自動化ツールで、350以上のアプリケーション・サービスと連携できます。最大の特徴は完全なオープンソースであり、自分のサーバーにホストすることでデータの主権を保ちながら、実行回数やワークフロー数の制限なく利用できる点です。
他ツールとの主な違い:
- Zapier: 月額制、実行回数に制限、データは外部サーバー
- Make: 視覚的に優れているが従量課金モデル
- n8n: 初期投資は必要だがランニングコストは最小、完全な制御権
n8nのライセンスはFair-code(Apache 2.0ベース)で、個人・商用利用ともに無料です。ただし、n8nをSaaS製品として再販する場合のみライセンス契約が必要になります。
私が実際に試したところ、月間10万回以上の実行が発生する業務でも追加コストゼロで運用できており、Zapierから移行したことで年間約30万円のコスト削減に成功しました。
初心者に推奨される導入方法の比較
📌 Neuro Dive|AI・データサイエンス就労移行支援
厚労省指定 AI・データサイエンス就労移行支援。未経験から AI 人材を目指す。
👉 公式サイトで無料申し込み※当ブログはアフィリエイトプログラムにより収益を得ています
n8nには複数の導入方法がありますが、初心者には以下の3つの選択肢があります。
1. n8n Cloud(公式SaaS版)
- 月額20ドルから
- セットアップ不要、即座に利用開始
- セルフホストのメリット(無制限実行)は享受できない
- 本番運用前の検証におすすめ
2. Docker Compose(最も推奨)
- 初期設定30分程度
- VPS(月額500円〜)で運用可能
- バックアップ・更新が容易
- 本記事で詳しく解説
3. npm直接インストール
- Node.js環境が必要
- 依存関係の管理が複雑
- 上級者向け
初心者にはDocker Composeを強く推奨します。環境の再現性が高く、トラブルシューティングも容易だからです。automationjp.comの関連記事でも、Docker環境での運用事例を多数紹介しています。
Docker環境でのn8nセットアップ手順
ここからは実際の手順を解説します。以下の環境を前提とします:
- Ubuntu 20.04以降(VPSまたはローカルマシン)
- Docker & Docker Compose導入済み
- 基本的なコマンドライン操作の知識
ステップ1:作業ディレクトリの作成
mkdir ~/n8n-docker
cd ~/n8n-docker
ステップ2:docker-compose.ymlの作成
以下の内容でdocker-compose.ymlファイルを作成します:
version: '3.8'
services:
n8n:
image: n8nio/n8n
container_name: n8n
restart: unless-stopped
ports:
- "5678:5678"
environment:
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=admin
- N8N_BASIC_AUTH_PASSWORD=your_secure_password
- N8N_HOST=localhost
- N8N_PORT=5678
- N8N_PROTOCOL=http
- WEBHOOK_URL=http://localhost:5678/
volumes:
- n8n_data:/home/node/.n8n
volumes:
n8n_data:
重要ポイント:
N8N_BASIC_AUTH_PASSWORDは必ず変更してください- 本番環境ではHTTPSとドメイン設定が必須(後述)
ステップ3:コンテナの起動
docker-compose up -d
起動確認:
docker-compose ps
StateがUpになっていれば成功です。ブラウザでhttp://localhost:5678にアクセスすると、n8nのログイン画面が表示されます。
私の場合、初回起動時に5678ポートが別サービスで使用されていたため、docker-compose.ymlのポート番号を8080:5678に変更して解決しました。
最初のワークフローを作成する具体例
ログイン後、初めてのワークフローを作成してみましょう。ここでは「毎朝9時にSlackへメッセージを送る」シンプルな例を紹介します。
ステップ1:新規ワークフローの作成
- 右上の「Add Workflow」をクリック
- ワークフロー名を「毎朝のリマインダー」に変更
ステップ2:トリガーノードの追加
- 左側の「+」ボタンをクリック
- 検索欄に「Schedule」と入力
- 「Schedule Trigger」を選択
- 設定画面で以下を入力:
- Mode:
Every Day - Hour:
9 - Minute:
0
- Mode:
ステップ3:アクションノードの追加
- Schedule Triggerノードの右側「+」をクリック
- 「Slack」を検索して選択
- Credential(認証情報)を設定:
- 「Create New」をクリック
- Slack Workspace で OAuth認証を実行
- メッセージ設定:
- Resource:
Message - Operation:
Post - Channel: 任意のチャンネルを選択
- Text:
おはようございます!今日も頑張りましょう
- Resource:
ステップ4:テストと保存
- 右上の「Execute Workflow」でテスト実行
- Slackにメッセージが届いたら成功
- 右上の「Save」で保存
- 右上のトグルを「Active」に変更
実際に試したところ、初めてのワークフロー作成は15分程度で完了しました。n8nのUIは視覚的で直感的なため、プログラミング経験がなくても理解しやすい設計になっています。
実務で使える自動化ワークフロー5選
n8nの基本操作を理解したら、次は実務で役立つワークフローを構築しましょう。
1. Googleフォーム回答をSlack通知
- トリガー: Google Sheets (新規行追加)
- アクション: Slackへ投稿
- 用途: 問い合わせフォームの即時対応
2. 定期的なWebサイト監視
- トリガー: Schedule (15分ごと)
- HTTP Request: 対象サイトをチェック
- 条件分岐: ステータスコードが200以外
- アクション: メール通知
3. RSSフィード→Twitter自動投稿
- トリガー: RSS Feed
- データ加工: 本文を140字に要約
- アクション: Twitter投稿
- 用途: コンテンツキュレーション
4. メール添付ファイルの自動保存
- トリガー: Gmail (新規メール)
- 条件: 添付ファイルあり
- アクション: Google Drive保存+Slack通知
- 用途: 請求書・契約書の自動整理
5. データベース定期バックアップ
- トリガー: Schedule (毎日深夜2時)
- MySQL実行: データダンプ
- アクション: S3へアップロード+完了通知
- 用途: データ保全
これらのワークフローテンプレートはn8nの公式サイトや、automationjp.comの関連記事でも詳しく紹介されています。
本番運用に向けた必須設定とセキュリティ
初期セットアップで動作確認ができたら、本番運用に向けて以下の設定を必ず実施してください。
HTTPS化とドメイン設定
HTTPのままでは認証情報が平文で送信されるため危険です。Let's Encryptで無料SSL証明書を取得しましょう。
nginx-proxyとの組み合わせ例:
version: '3.8'
services:
nginx-proxy:
image: jwilder/nginx-proxy
ports:
- "80:80"
- "443:443"
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro
- ./certs:/etc/nginx/certs
n8n:
image: n8nio/n8n
environment:
- VIRTUAL_HOST=n8n.yourdomain.com
- VIRTUAL_PORT=5678
- N8N_PROTOCOL=https
- N8N_HOST=n8n.yourdomain.com
- WEBHOOK_URL=https://n8n.yourdomain.com/
データベースの外部化
デフォルトではSQLiteが使用されますが、本番環境ではPostgreSQLへの移行を推奨します。
services:
postgres:
image: postgres:14
environment:
- POSTGRES_DB=n8n
- POSTGRES_USER=n8n
- POSTGRES_PASSWORD=secure_password
volumes:
- postgres_data:/var/lib/postgresql/data
n8n:
environment:
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_DATABASE=n8n
- DB_POSTGRESDB_USER=n8n
- DB_POSTGRESDB_PASSWORD=secure_password
バックアップ戦略
最低限以下のデータを定期的にバックアップしてください:
- ワークフローデータ: PostgreSQLダンプまたは
.n8nディレクトリ - 認証情報: 暗号化されていますが最重要
- 環境変数:
docker-compose.ymlとenvファイル
実行コマンド例:
docker exec n8n-postgres pg_dump -U n8n n8n > backup_$(date +%Y%m%d).sql
アクセス制限
- VPN経由のみアクセス許可
- IPアドレスホワイトリスト設定
- 二要素認証(n8n Cloudプランのみ対応)
私の運用環境では、Cloudflare Tunnelを利用してIPを隠蔽し、Cloudflare Accessで認証層を追加しています。
トラブルシューティングとよくある質問
初心者がつまずきやすいポイントと解決策をまとめます。
Q: ワークフローが実行されない
A: 以下を確認してください:
- ワークフローが「Active」になっているか
- トリガー条件が正しく設定されているか
docker-compose logs n8nでエラーログを確認
Q: Webhook URLが正しく動作しない
A: WEBHOOK_URL環境変数が実際のアクセスURLと一致しているか確認。特にHTTPS化後は更新必須です。
Q: メモリ不足エラーが発生
A: docker-compose.ymlに以下を追加:
services:
n8n:
deploy:
resources:
limits:
memory: 2G
Q: 認証情報が保存できない
A: n8n_dataボリュームの権限問題の可能性。以下で修正:
docker-compose down
sudo chown -R 1000:1000 ~/.n8n
docker-compose up -d
Q: 日本語表示がおかしい
A: 環境変数にN8N_DEFAULT_LOCALE=jaを追加すると一部日本語化されますが、完全対応はまだです。
コミュニティフォーラムやGitHub Issuesも活発で、ほとんどの問題は既に解決策が共有されています。
まとめ
📚 関連記事
n8nはオープンソースの自動化ツールとして、初期投資とある程度の技術的知識は必要ですが、長期的なコスト削減と柔軟性で大きなメリットがあります。Docker Composeを使えば初心者でも30分程度でセットアップでき、最初のワークフローは15分で作成可能です。
次のアクションステップ:
- まずは試す: VPSを契約(ConoHa、さくらVPSなど月額500円〜)してDocker環境を構築、本記事の手順でn8nをインストール
- テンプレート活用: n8n公式サイトのWorkflowテンプレートから自分の業務に近いものを探してカスタマイズ
- 段階的移行: Zapierなど既存ツールを使用中なら、まず1つのワークフローだけn8nに移行してテスト運用し、問題なければ徐々に拡大
automationjp.comの関連記事では、業界別のワークフロー事例やAPI連携の詳細も紹介していますので、ぜひご覧ください。自動化による業務効率化は一朝一夕では完成しませんが、小さく始めて継続的に改善していくことで、確実に成果を実感できるはずです。