EQVPS

Docker Compose für KI-Agenten: ein vollständiger selbstgehosteter Stack auf einem VPS

6. Sept. 2026 · 3 Min. Lesezeit · EQVPS Team

Ein KI-Agent ist selten ein einzelner Prozess. Da ist die Agent-Schleife selbst, ein Vektorspeicher für das Gedächtnis, ein Cache, meist eine Datenbank für den Zustand und vielleicht ein kleines Dashboard. Jedes davon von Hand zu betreiben — starten, nach einem Reboot neu starten, sich merken, welcher Port welcher ist — wird schnell mühsam. Docker Compose beschreibt das Ganze in einer Datei und fährt es mit einem Befehl. Das ist der Copy-paste-Stack, um einen Agenten sauber auf einen VPS zu bringen.

Wenn du nur die Deploy-ohne-Docker-Version willst, deckt der Leitfaden „einen KI-Agenten 24/7 betreiben" stattdessen systemd ab. Diese Seite ist die container-native Version.

Der Stack

Ein typischer selbstgehosteter Agent will vier Dinge neben sich: den Agent-Prozess, Qdrant (Vektorgedächtnis), Redis (Cache / Queues) und Postgres (Zustand). Hier ist eine docker-compose.yml, die all das betreibt, mit internen Diensten fern vom öffentlichen Internet:

# /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: {} }

Secrets liegen in .env, nicht in der Compose-Datei:

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

Fahr ihn hoch:

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

Jeder interne Dienst (Qdrant, Redis, Postgres) ist nur im Compose-Netzwerk über den Dienstnamen erreichbar — keiner davon ist ins Internet veröffentlicht. Der Agent spricht über dieses private Netzwerk mit ihnen, und nichts auf diesen Ports schaut nach außen.

Die Details, die zählen

Der Teil, der wirklich unser ist: der Agent kann sich seine eigene Maschine bauen

Weil EQVPS einen MCP-Server bereitstellt, kann ein Agent, der diesen Stack betreibt, selbst einen weiteren sauberen VPS bereitstellen — ihn bestellen, Root bekommen, ihn abreißen — bezahlt aus einem vorausbezahlten Krypto-Guthaben. Ein Compose-Stack, der eine frische Sandbox braucht, kann eine hochfahren, ohne dass ein Mensch in der Schleife ist.

Warum EQVPS für einen dockerisierten Agenten

VPS für KI-Agenten (die Übersicht) → · VPS für Docker → · Eine Vektor-DB für Agentengedächtnis hosten →

FAQ

Warum einen KI-Agenten mit Docker Compose statt mit nackten Prozessen betreiben?

Ein Agent ist selten nur ein Prozess — es sind die Agent-Schleife plus ein Vektorspeicher, ein Cache und meist eine Datenbank. Compose beschreibt den ganzen Stack in einer Datei, fährt alles mit einem Befehl hoch, startet jedes Teil nach Absturz oder Reboot neu und hält interne Dienste (Postgres, Redis, Qdrant) in einem privaten Netzwerk, sodass nur das nach außen kommt, was du wählst. Es ist der sauberste Weg, einen Agenten mit beweglichen Teilen selbst zu hosten.

Welchen Tarif braucht ein Agenten-Stack?

Für einen API-gestützten Agenten (das Modell läuft bei deinem Anbieter) ist der Stack leicht — die Agent-Schleife, Qdrant, Redis und Postgres passen bequem auf unseren Small ($8/Monat) oder den AI-Agent-Tarif ($10/Monat, 4 GB). Mehr RAM brauchst du nur, wenn du einen großen Vektorindex im Speicher hältst oder ein lokales Modell fährst, was ein anderes, schwereres Setup ist.

Wohin kommen die API-Schlüssel — in die Compose-Datei?

Nein. Halte Secrets in einer .env-Datei (git-ignoriert) und referenziere sie als Umgebungsvariablen in Compose, oder nutze Docker-Secrets. Committe niemals Schlüssel in docker-compose.yml. Binde interne Dienste nur ans Compose-Netzwerk; veröffentliche nur den Port des Agenten (oder nichts, wenn er nur ausgehende Aufrufe macht).

Kommen die Container nach einem Reboot zurück?

Nur wenn du es ihnen sagst. Setze restart: unless-stopped (oder always) auf jeden Dienst und aktiviere Docker beim Boot; dann übersteht docker compose up -d Neustarts und Abstürze. Ohne Restart-Policy bleibt ein Container nach dem Serverneustart unten.

Verlangt ihr KYC oder eine Karte?

Nein. E-Mail zum Registrieren, Zahlung in USDC oder USDT — keine Dokumente, keine Karte. Root in etwa einer Minute.

← Zurück zum BlogPläne & Preise ansehen →

Kommentare

Noch keine Kommentare. Sei der Erste.

Kommentar hinterlassen

Kommentare werden vor der Anzeige moderiert.