n8n使い方ガイド|Docker Composeで始めるAI自動化【30分で初回ワークフロー】

Zapierに月$20払っている。

やっていることはSlack通知とスプレッドシート転記だけなのに。

そういう状態から抜け出したくてn8nを触り始めました。

Docker Composeで起動して、最初のワークフローを動かすまで、だいたい30分。

この記事ではその手順と、自分がハマったポイントをまとめています。

この記事でできるようになること

Docker Composeでn8nを起動し、Webhook→Slack通知のワークフローを1つ作るところまでやります。

n8nの全機能を網羅する記事ではありません。

「まず動かす」ことだけに集中します。

n8nとは何か、読み方やZapierとの違いを先に知りたい方はそちらをどうぞ。

なぜn8nを使い始めたか

きっかけはZapierの請求明細です。

月$20。

年間で$240。

やっていることはWebhook受信→Slack通知と、フォーム回答→スプレッドシート転記の2本だけ。

タスク数の上限も気にしながら使っていて、正直ストレスでした。

n8nの存在はSNSで知っていました。

ただ「Docker必須」と書いてあったので、その時点で一度閉じた。

転機はn8n・Dify・Make・Zapierを含むAI自動化ツール比較を書くためにツールを片っ端から触ったこと。

n8nをDocker Composeで立ち上げてみたら、思ったより簡単だった。

そしてZapierでは絶対にできないことができた。

Webhook→Claude API→Slack通知。

自分でワークフローを設計して、自分のAPIキーで、自分のサーバーで動かす。

月額$0、タスク制限なし。

n8nはノーコードじゃないです。

ローコード。

でもそれが良い。

手順① Docker Composeでn8nを起動する

前提として、DockerとDocker Composeがインストール済みであること。

macOSならDocker Desktop、LinuxならDockerエンジンが入っていればOKです。

docker-compose.ymlを作る

任意のディレクトリに`docker-compose.yml`を作ります。

n8n公式リポジトリ(n8n-io/n8n-hosting)の構成をベースにした最小版です。

yaml
version: "3.8"

services:

postgres:

image: postgres:16

restart: unless-stopped

environment:

POSTGRES_USER: n8n

POSTGRES_PASSWORD: n8n

POSTGRES_DB: n8n

volumes:

- postgres_data:/var/lib/postgresql/data

n8n:

image: n8nio/n8n

restart: unless-stopped

ports:

- "5678:5678"

environment:

DB_TYPE: postgresdb

DB_POSTGRESDB_HOST: postgres

DB_POSTGRESDB_PORT: 5432

DB_POSTGRESDB_DATABASE: n8n

DB_POSTGRESDB_USER: n8n

DB_POSTGRESDB_PASSWORD: n8n

volumes:

- n8n_data:/home/node/.n8n

depends_on:

- postgres

volumes:

postgres_data:

n8n_data:

PostgreSQL 16を使っているのは公式推奨だからです。

SQLiteでも動きますが、本番運用を考えるとPostgreSQLにしておいたほうがいい。

最小VPS要件は1 CPU・1-2GB RAM。ローカルPCなら余裕です。

起動する

bash
docker compose up -d

これだけです。初回はイメージのダウンロードで2〜3分かかります。

ブラウザで `http://localhost:5678` を開くと、n8nの初期設定画面が出ます。

メールアドレスとパスワードを設定してログイン。

UIは英語ですが、操作は視覚的なのでそこまで困りません。

どうしても日本語で使いたい場合はn8nの日本語化手順を参考にしてください。

SSL/TLS設定やドメイン割り当てなど、本番環境向けの構成はDocker Composeでのn8n構築を詳しく知りたい方の記事でまとめています。

手順② 最初のワークフローを作る(Webhook→Slack通知)

n8nのダッシュボードで「Add workflow」をクリックします。

ノードの考え方

n8nのワークフローは「ノード」をつないで作ります。フローチャートと同じです。

  • トリガーノード: ワークフローの起動条件(Webhook、スケジュール、メール受信など)
  • アクションノード: 実行する処理(Slack送信、HTTP Request、データ変換など)

この2種類を線でつなぐだけ。

Webhook → Slack通知を組む

  1. Webhookノードを追加 — 「Add first step」→ 検索で「Webhook」を選択。MethodはPOSTにしておく
  2. Slackノードを追加 — Webhookノードの右の「+」→ 検索で「Slack」を選択。Operationは「Send a Message」
  3. Slack認証を設定 — Slack APIのOAuth Tokenを入力(Slack App作成が必要。ここが一番面倒な工程)
  4. チャンネルとメッセージを設定 — 送信先チャンネル名と、メッセージ本文を入力。
    Webhookで受け取ったデータを `{{ $json.body.text }}` のように埋め込める
  5. テスト実行 — Webhookノードの「Test URL」をコピーして、ターミナルからcurlで叩く
bash
curl -X POST http://localhost:5678/webhook-test/xxxxx \

-H "Content-Type: application/json" \

-d '{"text": "n8nからのテスト通知"}'

Slackにメッセージが届いたら成功です。

6. ワークフローをActivate — 右上のトグルをオンにすると、Production URLが有効になる

ここまでで、外部からHTTPリクエストを送るとSlackに通知が飛ぶ仕組みが完成しました。

使って変わったこと

一番大きかったのは、自動化を「使う」から「設計する」に変わったこと。

Zapierでは用意されたテンプレートを選んで、パラメータを埋める。

n8nでは自分でフローチャートを描いて、好きなAPIを呼べる。

今はWebhook→Claude API→Slack通知のワークフローを実運用しています。

ブログのコメントが来たらClaudeが要約して、Slackの専用チャンネルに投げる。

Zapierでこれをやろうとすると、Claude APIへのHTTPリクエスト部分だけで追加課金が発生します。

n8nなら月額$0。

ぶっちゃけ、「使う」のと「設計する」のでは全く別の体験です。

n8n 2.0(2025年12月リリース)でDraft/Published状態の分離が入り、ワークフローの管理がさらにやりやすくなりました。GitHub Stars 約178,000、公式インテグレーション400以上。コミュニティの勢いも止まっていません。

セルフホストなら完全無料です。

ライセンスはSustainable Use License(fair-code)で、社内利用は制限なし。

ただし「オープンソース」ではないので、再販や組み込みには別途ライセンスが必要です。

n8nで何を自動化すべきか迷ったときの考え方も書いているので、次のワークフローに悩んだら読んでみてください。

ハマったポイント3つ

① Dockerが怖い問題

自分もそうでした。

でも実際やることは`docker compose up -d`と`docker compose down`だけ。起動と停止。

ymlをコピペして、コマンド1つ打てば動きます。

一度起動してしまえば、その後Dockerを触ることはほぼありません。

詳しくはn8nで最初にやらかした失敗の記録にも書きました。

② 認証設定が面倒

SlackやGoogleなど外部サービスとつなぐとき、OAuth認証の設定が必要です。

「Client ID」「Client Secret」「Redirect URI」あたりで最初は混乱します。

ただ、これは最初の1回だけ。

一度設定すればCredentialsとして保存されるので、2本目以降のワークフローではワンクリックで使い回せます。

③ ノードの考え方に慣れるまで

Zapierの「トリガー→アクション」は1対1の直線。

n8nは分岐・ループ・マージができるので、最初は「どこから何が流れてくるのか」がわからなくなります。

コツは、最初から複雑なフローを作らないこと。

Webhook→1つのアクション、という最小構成で動かして、そこから1ノードずつ足していく。

3日も触れば慣れます。

この先のロードマップ

n8nの本当のポテンシャルはAI連携にあります。

AI Agent nodeでClaude、GPT-4、Gemini、Ollamaを呼び出せるし、MCP Server Trigger + MCP Client Toolで双方向のMCP連携もできます。

やりたいことに応じて、次に読む記事を選んでください。

まとめ

`docker compose up -d`を打つ。

ブラウザで`localhost:5678`を開く。

Webhook→Slack通知のワークフローを1つ作る。

それだけで、Zapierとの違いがわかります。

次にやることは、n8nで何を自動化すべきか迷ったときの考え方を読んで、自分のワークフローを設計すること。