EQVPS

AI エージェント向け Docker Compose:1台の VPS で完結するセルフホスト・スタック

2026年9月6日 · 1 分で読める · EQVPS Team

AI エージェントが単一のプロセスであることはめったにありません。エージェントループそのもの、記憶のためのベクトルストアキャッシュ、たいていは状態のためのデータベース、そしておそらく小さなダッシュボード。それぞれを手で動かす——起動し、再起動後にまた立ち上げ、どのポートがどれか覚える——のはすぐに面倒になります。Docker Compose はそれ全体を1つのファイルで記述し、1コマンドで走らせます。これはエージェントをすっきりと VPS に載せるためのコピペ・スタックです。

Docker なしのデプロイ版だけが欲しいなら、AI エージェントを24時間365日動かすガイド が代わりに systemd を扱います。このページはコンテナネイティブ版です。

スタック

典型的なセルフホストのエージェントは傍らに4つを欲しがります:エージェントプロセス、Qdrant(ベクトル記憶)、Redis(キャッシュ / キュー)、Postgres(状態)。以下は、それらすべてを動かし、内部サービスを公共インターネットから遠ざけた docker-compose.yml です:

# /opt/agent/docker-compose.yml
services:
  agent:
    build: .                      # your agent image (or image: your/agent:latest)
    restart: unless-stopped
    env_file: [.env]              # OPENAI/ANTHROPIC keys etc. — never in this file
    environment:
      QDRANT_URL: http://qdrant:6333
      REDIS_URL: redis://redis:6379
      DATABASE_URL: postgres://agent:${DB_PASSWORD}@postgres:5432/agent
    depends_on: [qdrant, redis, postgres]
    # no ports: — this agent only makes outbound calls. Publish one only if it serves webhooks.

  qdrant:
    image: qdrant/qdrant:latest
    restart: unless-stopped
    volumes: ["qdrant:/qdrant/storage"]   # internal only — not published

  redis:
    image: redis:7-alpine
    restart: unless-stopped
    command: ["redis-server", "--save", "60", "1"]
    volumes: ["redis:/data"]

  postgres:
    image: postgres:16-alpine
    restart: unless-stopped
    environment:
      POSTGRES_USER: agent
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_DB: agent
    volumes: ["pg:/var/lib/postgresql/data"]

volumes: { qdrant: {}, redis: {}, pg: {} }

シークレットは .env に置き、compose ファイルには置きません:

# /opt/agent/.env  (chmod 600, never committed)
ANTHROPIC_API_KEY=sk-ant-...
DB_PASSWORD=a-long-random-string

立ち上げます:

apt update && apt install -y docker.io docker-compose-v2
systemctl enable --now docker
cd /opt/agent && docker compose up -d
docker compose logs -f agent

内部サービス(Qdrant、Redis、Postgres)はいずれも compose ネットワーク上でサービス名によってのみ到達可能で、どれもインターネットに公開されていません。エージェントはそのプライベートネットワーク越しにそれらと話し、それらのポート上のものは世界に面していません。

効いてくる細部

本当に当社ならではの部分:エージェントが自分のマシンを作れる

EQVPS は MCP サーバー を公開しているので、このスタックを動かすエージェントは自分でもう1台クリーンな VPS をプロビジョニングできます——注文し、root を得て、取り壊す——プリペイドの暗号資産残高から支払って。新鮮なサンドボックスが必要な compose スタックは、人が介在せずに1台を立ち上げられます。

Docker 化したエージェントに EQVPS を選ぶ理由

AI エージェント向け VPS(概要)→ · Docker 向け VPS → · エージェント記憶のためにベクトル DB をホスト →

FAQ

なぜ AI エージェントを素のプロセスでなく Docker Compose で動かすのですか?

エージェントが1つのプロセスであることはめったにありません——エージェントループに加えてベクトルストア、キャッシュ、たいていはデータベースがあります。Compose はスタック全体を1つのファイルで記述し、1コマンドですべてを立ち上げ、クラッシュや再起動のたびに各部品を再起動し、内部サービス(Postgres、Redis、Qdrant)をプライベートネットワークに保って、あなたが選んだものだけを公開します。動く部品を持つエージェントをセルフホストする最もすっきりした方法です。

エージェントのスタックにはどのプランが必要ですか?

API 依存のエージェント(モデルはプロバイダー側で動く)ならスタックは軽量です——エージェントループ、Qdrant、Redis、Postgres は当社の Small(月 $8)か AI-Agent プラン(月 $10、4 GB)に余裕で収まります。大きなベクトルインデックスをメモリに保持したり、ローカルモデルを動かしたりする場合だけ、より多くの RAM が必要です。それは別物でより重い構成です。

API キーはどこに置きますか——compose ファイルに?

いいえ。シークレットは .env ファイル(git 無視)に保管し、compose では環境変数として参照するか、Docker secrets を使います。鍵を docker-compose.yml にコミットしないこと。内部サービスは compose ネットワークだけにバインドし、エージェントのポートだけを公開します(送信呼び出しだけなら何も公開しない)。

コンテナは再起動後に戻ってきますか?

そう指示した場合だけです。各サービスに restart: unless-stopped(または always)を設定し、Docker を起動時に有効化します。すると docker compose up -d は再起動やクラッシュを生き延びます。再起動ポリシーがなければ、サーバー再起動後にコンテナは止まったままです。

KYC やカードは要りますか?

いいえ。登録にメール、支払いは USDC または USDT——書類なし、カードなし。約1分で root。

← ブログに戻るプランと価格を見る →

コメント

まだコメントはありません。最初になりましょう。

コメントを残す

コメントは表示される前にモデレートされます。