要点
- Dockerを使用して2分でn8nをセルフホスティング:
docker run -it --rm --name n8n -p 5678:5678 n8nio/n8n - 最初のワークフローを5分で構築:HTTPリクエスト → OpenAI → Slack
- AIノード(OpenAI/Anthropic)を使用して、サポートチケットの要約などのタスクを自動化
- cronトリガーでワークフローをスケジュール(例:
0 9 * * *で毎日午前9時実行) - 環境変数(
.envファイル)で認証情報をセキュアに管理
1. Dockerによるセルフホスティング
1.1 Dockerのインストール
Dockerがインストールされていない場合は、以下を実行してください:
# Linux/macOS
curl -fsSL https://get.docker.com | sh
# Windows (PowerShell)
winget install Docker.DockerDesktop
1.2 n8nの実行
docker run -it --rm \
--name n8n \
-p 5678:5678 \
-v ~/.n8n:/home/node/.n8n \
n8nio/n8n
期待される出力:
n8n ready on 0.0.0.0, port 5678
Version: 1.40.0
Editor is now accessible via: http://localhost:5678
注意点:
- ポート競合? ポート5678が使用中の場合は、
-p 5678:5678を-p 5679:5678に変更してください。 - パーミッションエラー?
-e N8N_USER=nodeを追加してroot以外で実行してください。
1.3 データの永続化
ワークフローと認証情報を保存するためにボリュームを追加します:
docker run -it --rm \
--name n8n \
-p 5678:5678 \
-v ~/.n8n:/home/node/.n8n \
n8nio/n8n
2. 最初のワークフロー
2.1 エディタへのアクセス
ブラウザでhttp://localhost:5678を開いてください。ビジュアルワークフローエディタが表示されます。
2.2 「Hello World」ワークフローの作成
- + New Workflowをクリックします。
- 左パネルからHTTP Requestノードをドラッグします。
- 以下のように設定します:
- Method:
GET - URL:
https://api.github.com/users/n8n-io
- Method:
- Execute Nodeをクリックしてテストします。GitHubのAPIレスポンスが表示されます。
期待される出力(一部抜粋):
{
"login": "n8n-io",
"id": 45487711,
"node_id": "MDEyOk9yZ2FuaXphdGlvbjQ1NDg3NzEx",
...
}
3. AIエージェントノード(OpenAI/Anthropic)
3.1 OpenAIノードの追加
- ワークフローにOpenAIノードをドラッグします。
- Connect Accountをクリックし、OpenAI APIキーを入力します(キーはこちらで取得できます)。
- ノードを以下のように設定します:
- Resource:
Chat - Operation:
Create Chat Completion - Model:
gpt-4o-mini - Prompt:
このGitHubユーザーデータを要約してください:{{ $json }}
- Resource:
3.2 ノードの接続
- HTTP Requestノードの出力をOpenAIノードの入力に接続します。
- ワークフローを実行します。OpenAIノードがGitHubデータを要約します。
出力例:
GitHubユーザー「n8n-io」は、ID 45487711の組織アカウントです。オープンソースのワークフロー自動化ツールであるn8nプロジェクトをホストするために作成されました。
注意点:
- API制限? コスト削減のために
gpt-4o-miniを使用してください。 - レート制限? リクエスト間にWaitノード(例:1秒遅延)を追加してください。
4. HTTPリクエストとWebhookノード
4.1 HTTPリクエストノード
任意のAPIを呼び出すために使用します。例:OpenWeatherMapから天気データを取得。
- HTTP Requestノードを追加します。
- 以下のように設定します:
- Method:
GET - URL:
https://api.openweathermap.org/data/2.5/weather?q=London&appid=YOUR_API_KEY - Query Parameters:
{ "q": "London", "appid": "YOUR_API_KEY" }
- Method:
4.2 Webhookノード
HTTP経由でワークフローをトリガーします。例:Slackスラッシュコマンド。
- Webhookノードを追加します。
- 以下のように設定します:
- Path:
slack-command - HTTP Method:
POST
- Path:
- Webhook URLsをクリックしてURLをコピーします(例:
http://localhost:5678/webhook/slack-command)。 - Slackノードを追加してレスポンスを送信します。
Webhookのテスト:
curl -X POST http://localhost:5678/webhook/slack-command \
-H "Content-Type: application/json" \
-d '{"text": "Hello from Slack!"}'
5. スケジューリングとCronトリガー
5.1 Cronトリガーの追加
- ワークフローにCronノードをドラッグします。
- 以下のように設定します:
- Trigger On:
Every Minute(またはcron構文を使用、例:0 9 * * *で毎日午前9時)。
- Trigger On:
- HTTP Requestノードに接続して毎日データを取得します。
Cron式の例:
| 式 | 意味 |
|---|---|
0 * * * * | 毎時 |
0 9 * * * | 毎日午前9時 |
0 0 * * 0 | 毎週日曜日の深夜 |
5.2 手動トリガー
Manual Triggerノードを使用して、オンデマンドでワークフローを実行します。
6. 環境変数と認証情報
6.1 .envファイルの使用
.envファイルを作成します:
echo "N8N_BASIC_AUTH_USER=admin" >> .env
echo "N8N_BASIC_AUTH_PASSWORD=securepassword" >> .env
echo "OPENAI_API_KEY=sk-your-key" >> .env
.envファイルを使用してn8nを再起動します:
docker run -it --rm \
--name n8n \
-p 5678:5678 \
--env-file .env \
n8nio/n8n
6.2 認証情報のセキュア化
- n8nエディタでCredentials → Add Credentialに移動します。
- OpenAIを選択し、APIキーを入力します。
- 任意のOpenAIノードでこの認証情報を使用します(キーをハードコードする必要はありません)。
注意点:
.envをGitにコミットしないでください!.gitignoreに追加してください。- キーは定期的にローテーションしてください(例:90日ごと)。
7. 本番環境のヒントとバックアップ
7.1 PostgreSQLの使用(SQLiteではなく)
本番環境ではSQLiteの代わりにPostgreSQLを使用します:
docker run -it --rm \
--name n8n \
-p 5678:5678 \
-e DB_TYPE=postgresdb \
-e DB_POSTGRESDB_DATABASE=n8n \
-e DB_POSTGRESDB_HOST=postgres \
-e DB_POSTGRESDB_PORT=5432 \
-e DB_POSTGRESDB_USER=n8n \
-e DB_POSTGRESDB_PASSWORD=securepassword \
n8nio/n8n
7.2 HTTPSの有効化
NginxやCaddyなどのリバースプロキシを使用します:
# Caddyの例
echo "localhost:5678 {
reverse_proxy n8n:5678
}" > Caddyfile
docker run -d --name caddy -p 80:80 -p 443:443 -v $(pwd)/Caddyfile:/etc/caddy/Caddyfile caddy
7.3 ワークフローのバックアップ
API経由でワークフローをエクスポートします:
curl http://localhost:5678/rest/workflows \
-H "Authorization: Bearer YOUR_API_KEY" \
-o workflows_backup.json
ワークフローの復元:
curl -X POST http://localhost:5678/rest/workflows \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d @workflows_backup.json
7.4 ワークフローの監視
- n8n UIのExecution Listを使用して、失敗したワークフローをデバッグします。
- Error Workflowsを有効にして、Slackに失敗アラートを送信します。
n8nの代替ツール
| ツール | 最適な用途 | 制限事項 |
|---|---|---|
| Zapier | 非技術ユーザー | セルフホスティング不可、高価 |
| Pipedream | 開発者(コードベースのワークフロー) | 事前構築済みインテグレーションが少ない |
次のステップ
- 実際のワークフローを構築:OpenAIを使用してSlackメッセージを要約するなどのタスクを自動化します。
- 本番環境へのデプロイ:Kubernetesやn8n.cloudを使用してスケーラビリティを確保します。
- AI機能の探索:n8nのAIワークフロージェネレーター(ベータ版)を試してみてください。
AIワークフローのスケーリングに関するサポートが必要ですか?Hyperion Consultingは、エンタープライズ向けのAIツールと自動化を専門としています。詳細はhyperion-consulting.ioをご覧ください。
