PR表記: 当記事にはアフィリエイトリンクが含まれます。商品の購入は自己判断でお願いします。
n8nは、オープンソースのワークフロー自動化ツールです。ZapierやMake(旧Integromat)に近い機能を、セルフホスト(自分のサーバーで運用)できるのが特徴です。この記事では、ローカル環境へのセットアップから基本的なワークフロー構築までを解説します。
n8nとは
n8nは「nodemation」の略で、ノードベースのビジュアルワークフローを構築できるツールです。
主な特徴は以下の通り。
- オープンソース: ソースコードが公開されており、セルフホスト可能
- 400以上の連携先: Slack、Gmail、Google Sheets、GitHub、Notion、Discord など
- ビジュアルエディタ: ドラッグ&ドロップでワークフローを構築
- コード実行: JavaScriptやPythonのコードノードも使える
- セルフホスト: 自分のサーバーで動かせるため、データが外部に出ない
他のツールとの比較
| 項目 | n8n | Zapier | Make |
|---|---|---|---|
| 料金 | セルフホスト無料 / クラウド版有料 | 有料(無料枠あり) | 有料(無料枠あり) |
| セルフホスト | 可能 | 不可 | 不可 |
| ノード数 | 400+ | 7000+ | 1800+ |
| コード実行 | JS / Python | 限定的 | 限定的 |
| オープンソース | はい | いいえ | いいえ |
n8nの強みは、セルフホストによるデータプライバシーの確保と、コードノードによる柔軟なカスタマイズです。
ローカル環境へのセットアップ
方法1: Dockerで起動(推奨)
docker run -d \
--name n8n \
-p 5678:5678 \
-v n8n_data:/home/node/.n8n \
n8nio/n8n
起動後、http://localhost:5678 にアクセスするとn8nのエディタが開きます。
方法2: npmで直接インストール
npm install -g n8n
n8n start
Node.js 18以上が必要です。
初期設定
初回アクセス時にオーナーアカウントの作成を求められます。メールアドレスとパスワードを設定してください。この情報はローカルに保存されます。
基本的なワークフローの考え方
n8nのワークフローは「ノード」を繋いで作ります。
- トリガーノード: ワークフローの開始条件(時刻、Webhook、手動など)
- アクションノード: 実際の処理(API呼び出し、データ変換など)
- 接続: ノード間をドラッグで繋いでデータの流れを定義
実践: RSS → Slack通知ワークフロー
RSSフィードの新着記事をSlackに通知するワークフローを作ってみます。
ステップ1: トリガーを設定
- エディタ画面で「+」ボタンをクリック
- 「Schedule Trigger」を選択
- 実行間隔を設定(例: 1時間ごと)
ステップ2: RSSフィードの取得
- 新しいノードを追加
- 「RSS Read」を選択
- RSSフィードのURLを入力(例:
https://example.com/feed.xml)
ステップ3: Slack通知
- 新しいノードを追加
- 「Slack」を選択
- Slackの認証情報を設定(OAuth2またはWebhook URL)
- チャンネルとメッセージ形式を設定
メッセージテンプレート例:
📰 新着記事
タイトル: {{ $json.title }}
URL: {{ $json.link }}
ステップ4: テストと有効化
- 各ノードの「Test」ボタンで個別にテスト
- 全体をテスト実行して動作確認
- 右上のトグルで「Active」にして有効化
コードノードの活用
n8nにはJavaScriptやPythonのコードを実行するノードがあります。既存ノードでは対応できない処理に使えます。
// コードノードの例: 日本語の日付フォーマット
const items = $input.all();
for (const item of items) {
const date = new Date(item.json.pubDate);
item.json.formattedDate = date.toLocaleDateString('ja-JP', {
year: 'numeric',
month: 'long',
day: 'numeric'
});
}
return items;
Webhook でリアルタイム連携
n8nはWebhookトリガーも用意しています。外部サービスからHTTPリクエストを受け取ってワークフローを起動できます。
# Webhookのテスト(n8nが起動中)
curl -X POST http://localhost:5678/webhook/your-webhook-id \
-H "Content-Type: application/json" \
-d '{"message": "テストメッセージ"}'
GitHub Webhookと連携すれば、プッシュ時にSlack通知を送るワークフローなども構築できます。
セルフホストの運用Tips
永続化
Dockerのボリュームマウントで、コンテナを再作成してもデータが保持されます。-v n8n_data:/home/node/.n8n の部分です。
バックアップ
ワークフローはJSON形式でエクスポートできます。定期的にバックアップしておきましょう。
# ワークフローのエクスポート(CLI)
n8n export:workflow --all --output=backup.json
セキュリティ
ローカルで使う分には問題ありませんが、外部に公開する場合はリバースプロキシ(nginx等)とHTTPS化が必要です。
まとめ
n8nは、セルフホスト可能なオープンソースの自動化ツールとして、データの管理を自分の手元に置きたい方に適しています。ビジュアルエディタで直感的にワークフローを構築でき、コードノードで柔軟な拡張も可能です。
Pythonスクリプトでの自動化やAIを活用したワークフローについては、AI副業ラボでも実践事例を公開しています。
よくある質問(FAQ)
Q1: n8nは完全に無料ですか?
セルフホスト版(Community Edition)は無料で利用できます。n8n Cloud(クラウドホスティング版)は有料プランです。セルフホスト版でも機能面の制限はほとんどありません。詳しくはn8n公式サイトで確認してください。
Q2: プログラミング知識がなくても使えますか?
基本的なワークフローはドラッグ&ドロップで構築できるため、プログラミング不要です。ただし、複雑なデータ加工やカスタム処理にはJavaScriptの基礎知識があると便利です。
Q3: n8nとZapierのどちらを選ぶべきですか?
手軽さ重視ならZapier、データの自己管理やコスト重視ならn8nが向いています。Zapierは連携先が豊富で設定も簡単ですが、処理数が増えるとコストが高くなります。n8nはセルフホストなら処理数無制限です。
参考書籍: 自動化の考え方を体系的に学びたい方に。
