生活や仕事に役立つライフハック、お得な情報を発信しています。⚠️記事内にPRを含みます

【コピペOK】Dockerでn8nを秒速セットアップ!docker-compose.yml設定例

「n8nをセルフホストしたいけど、サーバーに直接インストールするのは環境が汚れるし、管理も面倒…」
「もっとモダンで、再現性の高い方法でn8nを構築したい」

そんな技術的な視点を持つあなたにとって、n8nをセルフホストする最良の方法は、間違いなく「Docker」を利用することです。

Dockerを使えば、クリーンな環境でn8nを驚くほど簡単に、そして迅速に立ち上げることができます。

この記事では、n8nをDockerでセットアップするための、コピペしてすぐに使えるdocker-compose.yml設定例と、その具体的な手順を詳しく解説します。

この記事を読めば、あなたは数分後には自分だけのn8n環境を手に入れていることでしょう。

なお、n8nの機能やメリットといった全体像をまず把握したい方は、当サイトの「n8n完全ガイド記事」が大変参考になります。

なぜn8nのセルフホストにDockerが最適なのか?

Dockerコンテナでn8nを動かすことには、以下のような大きなメリットがあります。

  • 環境の分離: n8nとそれに必要なライブラリ(Node.jsなど)がコンテナ内に完全に隔離されるため、ホストOSをクリーンに保てます。他のアプリケーションとの依存関係の衝突もありません。
  • 再現性の確保: docker-compose.ymlという一つの設定ファイルさえあれば、どの環境でも全く同じn8n環境を再現できます。サーバーの引っ越しや、開発環境の共有が非常に簡単です。
  • アップデートの簡略化: n8nのバージョンアップは、docker-compose.yml内のイメージタグを書き換えて、コマンドを再実行するだけで完了します。
  • 管理の手軽さ: コンテナの起動、停止、削除といったライフサイクル管理が非常に容易です。

準備するもの

セットアップを始める前に、以下をご準備ください。

  • Linuxサーバー: VPSやクラウドVMなど。Ubuntuが一般的ですが、他のディストリビューションでも問題ありません。
  • DockerとDocker Compose: サーバーにこれらがインストールされている必要があります。未インストールの場合は、公式サイトのドキュメントを参考にインストールしてください。
  • コマンドラインの基本知識: SSHでのサーバー接続や、基本的なファイル操作ができることを前提とします。

【コピペOK】docker-compose.yml の設定例

早速ですが、n8nを起動するためのdocker-compose.ymlです。以下の内容をコピーして利用してください。

version: '3.7'
services: n8n: image: n8nio/n8n:latest container_name: n8n_main restart: unless-stopped ports: - "127.0.0.1:5678:5678" environment: - N8N_HOST=${SUBDOMAIN}.${DOMAIN_NAME} - N8N_PROTOCOL=https - NODE_ENV=production - WEBHOOK_URL=https://${SUBDOMAIN}.${DOMAIN_NAME}/ - GENERIC_TIMEZONE=Asia/Tokyo # データベースとしてPostgresを利用する場合の設定例 # - DB_TYPE=postgresdb # - DB_POSTGRESDB_HOST=postgres # - DB_POSTGRESDB_PORT=5432 # - DB_POSTGRESDB_DATABASE=n8n # - DB_POSTGRESDB_USER=user # - DB_POSTGRESDB_PASSWORD=password volumes: - n8n_data:/home/node/.n8n depends_on: # - postgres # Postgresを利用する場合 # データベースとしてPostgresを利用する場合のサービス定義 # postgres: # image: postgres:13 # container_name: n8n_postgres # restart: unless-stopped # environment: # - POSTGRES_USER=user # - POSTGRES_PASSWORD=password # - POSTGRES_DB=n8n # volumes: # - postgres_data:/var/lib/postgresql/data
volumes: n8n_data: # postgres_data: # Postgresを利用する場合

設定ファイルの解説とカスタマイズ

上記の設定ファイルについて、重要なポイントを解説します。

  • image: n8nio/n8n:latest: n8nの公式Dockerイメージを指定しています。latest1.44.1のように具体的なバージョン番号に固定することも推奨されます。
  • ports: - "127.0.0.1:5678:5678": n8nが動作するポート5678を、ホストマシンのポート5678に接続しています。127.0.0.1:を付けることで、サーバー外部から直接アクセスできないようにし、セキュリティを高めています(後述のリバースプロキシ経由でのアクセスを想定)。
  • environment:: n8nの動作環境変数を設定します。
    • GENERIC_TIMEZONE=Asia/Tokyo: これは非常に重要です。日本のタイムゾーンを指定しないと、スケジュール実行などが意図しない時間(UTC)で動いてしまいます。
    • WEBHOOK_URL: 本番運用でWebhookトリガーを使う場合に、n8nが自身の正しいURLを認識するために必要です。後で設定するドメイン名に合わせてください。
  • volumes: - n8n_data:/home/node/.n8n: これが最も重要な設定です。n8nのワークフローや認証情報などのデータを、コンテナの外(ホストマシン上)にあるn8n_dataという名前付きボリュームに保存します。これにより、コンテナを再作成してもデータが消えません。

セットアップ手順

設定ファイルが準備できたら、あとはコマンドを実行するだけです。

  1. SSHなどでサーバーに接続します。
  2. n8n用の作業ディレクトリを作成し、移動します。
    mkdir n8n-docker && cd n8n-docker
  3. テキストエディタでdocker-compose.ymlファイルを作成します。
    nano docker-compose.yml
  4. 先ほどの設定例を貼り付け、必要に応じてカスタマイズして保存します。
  5. コンテナをバックグラウンドで起動します。
    docker-compose up -d
  6. 初回はイメージのダウンロードに少し時間がかかります。起動が完了したら、ブラウザでhttp://<サーバーのIPアドレス>:5678にアクセスし、n8nの初期設定画面が表示されれば成功です!

本番運用に向けた次のステップ

今の状態は、あくまでローカルで動作確認できる段階です。実際にビジネスで利用するには、セキュリティと利便性を高めるために、以下の対応を強く推奨します。

私の視点:
ここからの設定が、セルフホスト運用の知識と手間が必要になる部分です。もし、この先のステップが「面倒だ」「よくわからない」と感じた場合は、無理にセルフホストを進めるよりも、これらの設定が全て不要で、サインアップ後すぐに安全な環境で利用できるn8n Cloudを検討するのが賢明な判断です。

  1. リバースプロキシと独自ドメイン、SSL化: IPアドレスとポート番号でアクセスするのではなく、n8n.your-domain.comのような独自ドメインで、かつ暗号化されたHTTPS通信でアクセスできるように設定します。Nginx Proxy ManagerやTraefikといったツールを使うと比較的簡単に実現できます。
  2. 定期的なバックアップ: n8n_dataボリュームに保存されているデータを、定期的に別の場所にバックアップする仕組みを構築します。サーバーに万が一のことがあっても、ワークフローを復元できるようにするためです。
  3. アップデート計画: 定期的にn8nの新しいバージョンをチェックし、計画的にアップデートを実施します。

これらの本番運用に必要な手間や専門知識、そして24時間365日の安定稼働を考慮すると、多くのビジネスシーンでは公式のクラウドサービスを利用する方が、結果的にコストパフォーマンスが高く、安全です。

>> 面倒なサーバー管理不要!n8n Cloudで今すぐ安全な自動化を始める

まとめ:Dockerでn8nのパワフルな世界へ

Dockerを使えば、n8nのセルフホスト環境を驚くほど手軽に構築できます。この記事のdocker-compose.ymlをベースにすれば、あなたもすぐに自分だけの自動化エンジンを手に入れることができるでしょう。

まずはこの環境でn8nのパワフルさを存分に探求し、プロトタイプを作成してみてください。そして、その自動化ワークフローをビジネスの根幹として安定稼動させたくなった時、セルフホストを本格運用するか、n8n Cloudのマネージドサービスに移行するかを改めて検討するのが、最も効率的で賢い進め方です。