n8nをコピペ一発で構築|データ永続化・日本語設定ガイド

【Docker Compose】n8nをコピペ一発で構築!データ永続化・日本語設定・Webhook対応の完全ガイド AI開発フレームワーク・ツール

「PCを買い替えたらn8nの環境を作り直し…」「ローカル環境を汚したくない」「クライアントに渡す環境が毎回バラバラになる」

n8nをコピペ一発で構築できるDocker Compose設定ファイルがあれば、どこでも同じ環境を3分以内で再現できます。

私はランサーズ・ここナラ・クラウドワークスで累計200件以上の業務自動化案件を受注しています(ランサーズのプロフィールはこちら・残念評価ゼロ)。n8nは「GASより複雑な条件分岐が必要」「APIの繋ぎ込みを視覚的に管理したい」案件で特に重宝しており、現在も複数クライアントの環境として稼働中です。

n8nをはじめて案件に採用したとき、クライアントから「環境ごとそのまま納品してほしい」と言われました。以来、データ永続化・日本語設定(JST対応)・Webhook受信テストまで対応したDocker Compose構成が私のスタンダードになっています。この記事では、そのテンプレートをそのまま公開します。

この記事で分かること:

  • コピペですぐ使えるdocker-compose.ymlの全コード(動作確認済み)
  • データが消えない永続化設定の仕組みと落とし穴
  • スケジュール実行がズレない日本語設定(JST対応)の正しい方法
  • ローカルでWebhookをテストできるトンネル設定
  • 実案件で遭遇したトラブルの解決策

> 設定手順で詰まった箇所があれば、コメントで気軽に質問してください。

> 環境構築の代行・ワークフロー設計のご依頼は記事末尾からも承っています。

> → 関連記事:n8n × ChatGPT API連携でAI自動化ワークフローを構築する方法

Zapier・Make・GASと比較——なぜn8n×Dockerを選ぶのか

「n8nって聞いたことあるけど、ZapierやMakeじゃダメなの?」とクライアントによく聞かれます。提案時に実際に使っている比較表を公開します。

| ツール | 月額コスト | 設定難易度 | 環境の可搬性 | データの自己管理 | タスク上限 |

|——–|———–|———–|————|—————-|———–|

| Zapier | $19.99〜 | 低(ノーコード) | × SaaSのみ | × Zapier管理 | あり |

| Make(旧Integromat) | $9〜 | 低(ノーコード) | × SaaSのみ | × Make管理 | あり |

| GAS | 無料 | 中(JS必須) | △ Googleに依存 | △ | 6分/実行 |

| n8n × Docker | 月500円〜(VPS代のみ) | 低(コピペでOK) | ◎ どこでも再現 | ◎ 完全自己管理 | なし |

n8n×Dockerを選ぶ理由は3つです:

1. コスト: SaaS版(月$20〜)と比べて年間約25,000円の削減

2. 制限なし: Zapier/Makeのタスク上限・GASの実行時間制限どちらも存在しない

3. 可搬性: docker-compose.yml 1ファイルでどこでも同じ環境を再現できる

複数クライアントに「環境ごと納品」する案件では、この可搬性が最大の決め手になっています。

n8nをコピペ一発で構築できるdocker-compose.yml

以下のコードをコピーして、docker-compose.yml という名前で保存してください。これが現在のベストプラクティスを詰め込んだ構成です。

yaml

version: “3.8”

services:

n8n:

image: n8nio/n8n:latest

container_name: n8n-app

restart: always

ports:

– “5678:5678”

environment:

– GENERIC_TIMEZONE=Asia/Tokyo

– TZ=Asia/Tokyo

– N8N_BASIC_AUTH_ACTIVE=true # 簡易認証を有効化

– N8N_BASIC_AUTH_USER=admin

– N8N_BASIC_AUTH_PASSWORD=password # 任意のパスワードに変更

volumes:

– n8n_data:/home/node/.n8n

# ▼ローカルPCでWebhookをテストしたい場合のみコメントアウトを外す

# command: start –tunnel

volumes:

n8n_data:

コピペ時に注意すべき3点:

  • イメージ名は n8nio/n8nn8n-io ではなく n8nio、ハイフンなし)
  • 環境変数 N8N_BASIC_AUTH_ACTIVE はスペースなし・全て大文字
  • ポート指定は 5678:5678 とクォートで囲む(YAMLの数値誤解釈を防ぐ)

なぜこの設定なのか? 3つの技術的ポイント

1. データ永続化(Volumes)——消えないワークフローの作り方

Docker初心者がやりがちなミスが、コンテナを再起動したら「作ったワークフローが全部消えた」という悲劇です。

私も最初の案件でこれをやらかしました。volumes 設定を省いたままテスト用ワークフローを10本ほど作り込んだところ、docker compose down の一発で全部消滅。再現に約2時間かかりました。

volumes: n8n_data:/home/node/.n8n という名前付きボリュームの記述により、コンテナを削除してもデータはDocker内部の安全な場所に保管され続けます。

| 方式 | メリット | デメリット |

|------|---------|-----------|

| 名前付きボリューム(推奨) | 権限自動管理、ポータブル | パスが直感的でない |

| バインドマウント | パスが分かりやすい | Permission denied が頻発 |

初心者は名前付きボリュームの利用を強く推奨します。

2. 日本語設定——スケジュールのズレをゼロにする正しいタイムゾーン設定

n8nはデフォルトでUTC(世界協定時)で動きます。日本語設定(JST対応)を怠ると、Cronノードで「朝9時に送信」としたつもりが「夕方18時」に動いてしまいます。

実際にあるEC案件では、この日本語設定を忘れたまま本番稼働させてしまい、受注通知メールが夜中の2時に届くというクレームになりました。環境変数に GENERIC_TIMEZONETZ の両方をセットすることで、ログもスケジュールもJSTに統一されます。片方だけでは不十分なケースがあるため、必ず両方記述してください。

3. Webhookのテスト用トンネル(--tunnel)——ngrok不要で外部連携テスト

通常、ローカルPC(localhost)でn8nを動かしている場合、SlackやGoogleフォームからのWebhook通知を受け取ることはできません。

しかし、command: start tunnel を有効にすると、n8nが一時的なhttpsの公開URLを自動発行します。ngrokの別途設定が不要になり、私のクライアント案件では外部連携テストの平均所要時間が約30分短縮できています。

> 注意: tunnel はあくまで開発・テスト用機能です。本番運用(VPSなど)では使用せず、正しいドメイン・リバースプロキシ設定を行ってください。

【実践】起動から初期設定までの3ステップ

Step 1: フォルダとファイルの作成

適当なフォルダ(例: my-n8n)を作成し、その中に先ほどの docker-compose.yml を置きます。

my-n8n/

└── docker-compose.yml

Step 2: コンテナの起動

ターミナル(またはコマンドプロンプト)でそのフォルダを開き、以下のコマンドを実行します。

bash

docker compose up -d

初回はイメージのダウンロードが入りますが、2回目以降は10〜30秒で起動します。docker compose logs -f でログを確認しながら待つと安心です。

Step 3: ブラウザでアクセスして初期設定

ブラウザを開き、http://localhost:5678 にアクセスします。設定ファイルに記述したユーザー名(admin)とパスワードでログインし、Ownerアカウントの設定を済ませれば完了です。慣れればここまで3分以内に終わります。

VPSへの本番デプロイ——月額500円で自分専用の自動化サーバーを構築する

ローカルで動作確認できたら、次はVPS(ConoHa WINGやさくらのVPS等)への移行です。

手順はシンプルで、docker-compose.yml をそのままVPSにアップロードして docker compose up -d するだけ。ただし本番環境では以下の追加設定が必要です。

yaml

environment:

– N8N_HOST=your-domain.com # 独自ドメインを設定

– N8N_PROTOCOL=https # HTTPS必須

– WEBHOOK_URL=https://your-domain.com/ # Webhook受信URL

NginxやTraefikをリバースプロキシとして組み合わせることで、SSL証明書(Let's Encrypt)の自動取得も可能です。月額500〜1,000円のVPSで運用すれば、SaaS版n8nの月額約3,000円と比べて年間で約25,000円のコスト削減になります。複数クライアント案件を受注しているなら、この節約効果は特に大きいです。

トラブルシューティングとFAQ

Q: Permission denied で起動しない

原因: データの保存場所をローカルのフォルダ(バインドマウント)に指定した場合によく起きます。

対策: 今回紹介した volumes: n8n_data:(名前付きボリューム)形式なら、Dockerが権限を自動管理するためこのエラーは起きません。初心者は名前付きボリュームの利用を強く推奨します。

Q: バージョンを固定したい

業務利用などで勝手にアップデートされると困る場合は、image: n8nio/n8n:1.83.0 のようにタグでバージョンを指定してください。現在の安定版はDocker Hubの公式ページで確認できます。

Q: ポートを変えたい

他のサービスと競合する場合は 5679:5678 のように左側のポート番号だけ変更してください。右側(コンテナ内ポート)は 5678 固定です。

Q: Basic認証が効かない

N8N_BASIC_AUTH_ACTIVEtrue になっているか確認してください。スペースや大文字・小文字のミスが最も多いトラブル原因です。コピペ時に余分な空白が混入するケースがあるため、テキストエディタで確認してから保存してください。

まとめ

Docker Composeを使えば、n8nの環境構築は「設定ファイルを置いてコマンドを叩くだけ」になります。

  • 再現性が高い: PCを変えても、VPSに移行しても、同じ環境が3分で作れる
  • データが安全: 名前付きボリュームでワークフローが消えない
  • コストが安い: VPSにデプロイすればSaaS版の約1/6以下のコストで運用可能

200件以上の自動化案件を通じて辿り着いた、この構成をそのまま活用してください。

次のステップ

この環境が構築できたら、次はワークフローの作成に進みましょう。

  • n8nで最初のワークフローを作る: GmailとGoogleスプレッドシートを繋いで通知を自動化する方法
  • n8n × ChatGPT API連携: AIを組み込んだ自動化ワークフローの構築方法
  • VPS本番デプロイ完全ガイド: Nginx + Lets Encrypt でHTTPS対応する手順

参考文献・リンク

この記事の内容に関する開発・自動化のご依頼はお気軽にご相談ください。

累計200件以上の受注実績・残念評価ゼロ。

コメント

タイトルとURLをコピーしました