OffshoreVps
チュートリアル2026年10月4日読了時間 7 分執筆:OffshoreVps チーム

VPS で Docker Compose を使って n8n と AI エージェントをデプロイする

Postgres と HTTPS を備えた n8n をセルフホストし、AI エージェントのワークフローを構築して、Webhook を保護し、データと暗号化キーをバックアップします。

n8n は、アプリ、API、AI モデルをビジュアルエディターでつなぐワークフローツールです。セルフホストすれば、ワークフロー、認証情報、データが自分の管理するサーバーに残り、実行回数に応じた課金もありません。このガイドでは、Docker Compose、Postgres データベース、HTTPS を使って n8n をデプロイし、AI エージェントを 24 時間稼働できる状態にします。

n8n と AI エージェントをデプロイするために使うコマンドを、「mkdir -p ~/n8n && cd ~/n8n」から始めて表示している VPS のターミナルウィンドウ
このガイドでサーバー上で実行するコマンドの例。

エージェントに VPS を使う理由

エージェントはスケジュールで動いたり、Webhook に反応したりすることが多いため、常時稼働して到達可能なサーバーが必要です。VPS なら、Webhook 用の固定アドレスと、ワークフローの応答性を保つ十分な RAM が得られます。2 vCPU、4 GB のプランは小規模な構成に適しています。サイズの目安は AI エージェントホスティングをご覧ください。ローカルモデルを使いたい場合は、GPU サーバーを追加してください。

始める前に

ステップ 1:Compose ファイル

mkdir -p ~/n8n && cd ~/n8n
cat > compose.yaml <<'YAML'
services:
  db:
    image: postgres:16
    restart: unless-stopped
    environment:
      POSTGRES_USER: n8n
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_DB: n8n
    volumes:
      - db:/var/lib/postgresql/data

  n8n:
    image: n8nio/n8n:latest
    restart: unless-stopped
    depends_on: [db]
    environment:
      DB_TYPE: postgresdb
      DB_POSTGRESDB_HOST: db
      DB_POSTGRESDB_USER: n8n
      DB_POSTGRESDB_PASSWORD: ${DB_PASSWORD}
      N8N_HOST: n8n.example.com
      N8N_PROTOCOL: https
      WEBHOOK_URL: https://n8n.example.com/
      N8N_ENCRYPTION_KEY: ${ENCRYPTION_KEY}
      GENERIC_TIMEZONE: UTC
    ports:
      - "127.0.0.1:5678:5678"
    volumes:
      - n8n:/home/node/.n8n

volumes:
  db:
  n8n:
YAML

ステップ 2:シークレット

cat > .env <<ENV
DB_PASSWORD=$(openssl rand -hex 24)
ENCRYPTION_KEY=$(openssl rand -hex 32)
ENV
chmod 600 .env

ENCRYPTION_KEY をバックアップしてください。これがないと、n8n は保存した認証情報を復号できません。

このガイドの手順(順番どおり):1. エージェントに VPS を使う理由;2. 始める前に;3. シークレット;4. n8n を起動する;5. エージェントのワークフローを構築する;6. 安全に保つ
このガイドの手順(順番どおり)。

ステップ 3:n8n を起動する

docker compose up -d
docker compose logs -f n8n

ステップ 4:HTTPS

n8n.example.com {
  reverse_proxy 127.0.0.1:5678
}

Caddy をリロードし、サイトを開いて、オーナーアカウントを作成します。

ステップ 5:エージェントのワークフローを構築する

  1. Webhook または Schedule トリガーを追加します。
  2. AI Agent ノードを追加し、チャットモデル(たとえばホスト型 API や、自分の GPU サーバー上の Ollama)を接続します。
  3. HTTP リクエスト、データベース、メッセージングノードなどのツールをエージェントに与えます。
  4. 手動実行でテストしてから、ワークフローを有効化します。

安全に保つ

  • n8n を 127.0.0.1 にバインドし、HTTPS プロキシだけを公開します。
  • 可能な限り、シークレットヘッダーまたはパスで Webhook を保護します。
  • Postgres ボリュームと n8n ボリュームをバックアップします。restic や borg によるバックアップをご覧ください。
  • リリースノートを読んだうえで、docker compose pull && docker compose up -d で更新します。