Bevor Sie loslegen, sollten Sie verstehen, was OpenClaw ist und warum es sinnvoll ist, die Lösung mit Docker Compose zu betreiben:

Schritt 1: Überblick und Ent­schei­dung – Warum OpenClaw mit Docker?

  • OpenClaw ist ein autonomer KI-Agent, der ver­schie­de­ne Aufgaben selbst­stän­dig ausführen kann. Hierzu zählen unter anderem die Mög­lich­kei­ten, Nach­rich­ten zu ver­ar­bei­ten, Dateien zu ana­ly­sie­ren und Chat-Kon­ver­sa­tio­nen zu au­to­ma­ti­sie­ren.
  • OpenClaw kann auf Ihrem eigenen Server laufen, ist Open Source und bietet über 50 In­te­gra­tio­nen (unter anderem WhatsApp, Telegram, Slack und Discord).
  • Die emp­foh­le­ne, stabilste Art der In­stal­la­ti­on ist über Docker Compose, weil alle Ab­hän­gig­kei­ten au­to­ma­tisch isoliert verwaltet werden. Zudem können Sie diese später leichter updaten oder erweitern.

OpenClaw nutzt Docker als isolierte Umgebung. Über Docker Compose werden dann mehrere Container gleich­zei­tig gestartet, unter anderem Gateway, CLI, eventuell Sandbox und externe Tools, die zusammen das System bilden.

Hinweis

OpenClaw agiert in vielen Setups primär als Gateway- und Or­ches­trie­rungs­dienst, der Messenger, Tools und Services mit einem großen Sprach­mo­dell (LLM) verbindet. Wie autonom OpenClaw später arbeitet, hängt stark von Ihrer in­di­vi­du­el­len Kon­fi­gu­ra­ti­on, wie den Netzwerk-Regeln, ab. Aus Si­cher­heits- und Er­war­tungs­grün­den sollten Sie ins­be­son­de­re das Be­rech­ti­gungs­ma­nage­ment nach dem Least-Privilege-Prinzip planen und nur Zugriffe erlauben, die für Ihre Au­to­ma­ti­sie­run­gen wirklich nötig sind.

Schritt 2: Den ge­eig­ne­ten Server finden

OpenClaw ist nicht einfach ein Chat-Bot, sondern ein autonom funk­tio­nie­ren­des Tool, das auf Ihrem Server läuft und mit Pro­gram­men, Mes­sen­gern und Services in­ter­agiert. Zum Beispiel können Sie die Software so nutzen, dass sie Kalender bedient, Dateien verwaltet und Meldungen sendet. Es ist aber auch möglich, Au­to­ma­tio­nen an­zu­sto­ßen oder ganze Ent­wick­ler-Workflows aus­zu­füh­ren.

Für die meisten An­wen­dungs­fäl­le empfehlen sich ins­be­son­de­re VPS-Setups, da diese eine kos­ten­güns­ti­ge und gleich­zei­tig leis­tungs­fä­hi­ge Basis für die OpenClaw-Docker-Kom­bi­na­ti­on liefern. Noch prak­ti­scher ist es, wenn das VPS-Hosting auf n8n-Au­to­ma­ti­sie­rung zu­rück­grei­fen kann, da so die Ver­knüp­fung von OpenClaw mit anderen Tools noch einfacher ist. Grund­sätz­lich gilt: Je an­spruchs­vol­ler Ihre Aufgaben sind, desto mehr RAM und CPU sollten Sie einplanen. Docker Compose und KI-Modelle benötigen Speicher für Images, Container-Logging und Da­ten­per­sis­tenz. Generell hängen die be­nö­tig­ten Res­sour­cen außerdem stark vom Workload und ins­be­son­de­re davon ab, ob Sie ein Cloud-LLM nutzen oder die Modelle lokal betreiben. In der nach­fol­gen­den Tabelle finden Sie als grobe Ein­ord­nung einige ex­em­pla­ri­sche Use Cases und die emp­foh­le­ne VPS-Power.

Use Case Haupt­funk­tio­nen Emp­foh­le­ne VPS-Res­sour­cen
Digitaler Alltags-Assistant Ter­min­zu­sam­men­fas­sun­gen, Nach­rich­ten, Kalender 4 vCores CPU, 4 GB RAM, 120 GB Fest­plat­ten­spei­cher
Workflow-Au­to­ma­ti­sie­rung & Do­ku­men­ta­ti­on Dokumente erstellen, Daten ver­ar­bei­ten, Da­tei­upload 6 vCores CPU, 8 GB RAM, 240 GB Fest­plat­ten­spei­cher
Developer-Pro­duk­ti­vi­tät & Remote-Au­to­ma­ti­sie­rung Tests, Builds, Logs, Shell-Tasks 8 vCores CPU, 16 GB RAM, 480 GB Fest­plat­ten­spei­cher
Free VPS Trial
vServer kostenlos testen für 30 Tage

Lassen Sie sich von den Vorteilen über­zeu­gen. Probieren Sie Ihren Virtual Server ganz in Ruhe 30 Tage lang aus!

Schritt 3: Be­triebs­sys­tem in­stal­lie­ren und sichere Ver­bin­dung aufbauen

Bevor Sie Software wie OpenClaw mit Docker Compose in­stal­lie­ren können, brauchen Sie ein Be­triebs­sys­tem auf Ihrem Server. Für das OpenClaw-Setup bietet sich eine Linux-Dis­tri­bu­ti­on wie Ubuntu Server an. In­stal­lie­ren Sie also auf Ihrem VPS eine aktuelle Ubuntu-Version und stellen Sie an­schlie­ßend eine ge­si­cher­te Ver­bin­dung zu Ihrem Server her, z. B. per SSH (Secure Shell). Achten Sie darauf, SSH-Zugänge mit Schlüs­seln statt Pass­wör­tern zu nutzen, damit Ihr Server vor un­be­fug­ten Zugriffen geschützt ist.

Hinweis

Dieses Tutorial zeigt einen funk­tio­na­len Standard-Setup für Test- und Ent­wick­lungs­um­ge­bun­gen. Nutzen Sie die Standard-Kon­fi­gu­ra­ti­on nicht un­ver­än­dert öf­fent­lich im Internet. Für pro­duk­ti­ve Systeme sollten Sie zu­sätz­li­che Här­tungs­maß­nah­men wie TLS/HTTPS-Ab­si­che­rung über Reverse Proxy, zentrales Secrets-Ma­nage­ment, Netzwerk-Isolation und Firewall-Regeln, Mo­ni­to­ring und Alerts sowie re­gel­mä­ßi­ge Backups von Daten und Kon­fi­gu­ra­tio­nen rea­li­sie­ren.

Schritt 4: Docker und Compose in­stal­lie­ren

Sobald Sie eine sichere Ver­bin­dung zu dem Server etabliert und Ihr ge­wünsch­tes Be­triebs­sys­tem ein­ge­rich­tet haben, können Sie Docker und Compose in­stal­lie­ren. Zunächst sollten Sie hierfür das System auf den neuesten Stand bringen:

sudo apt update && sudo apt upgrade -y
sudo apt install -y ca-certificates curl gnupg lsb-release
bash

Danach fügen Sie den Docker-GPG-Schlüssel hinzu und richten das Re­po­si­to­ry ein:

sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
    "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
    $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
bash

Ak­tua­li­sie­ren Sie noch einmal die Pa­ket­lis­te und in­stal­lie­ren Sie dann die Docker-Engine, die Docker-CLI (Kom­man­do­zei­len-Schnitt­stel­le) und den Dienst „con­tai­nerd“:

sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io
bash

Im letzten Schritt in­stal­lie­ren Sie Docker Compose. Viele neue Systeme können hierfür auf das Plugin-System zu­rück­grei­fen:

sudo apt install -y docker-compose-plugin
bash

Al­ter­na­tiv laden Sie die In­stal­la­ti­ons­da­tei­en manuell herunter:

mkdir -p ~/.docker/cli-plugins
curl -SL https://github.com/docker/compose/releases/latest/download/docker-compose-linux-x86_64 \
    -o ~/.docker/cli-plugins/docker-compose
chmod +x ~/.docker/cli-plugins/docker-compose
bash

Den Erfolg der In­stal­la­ti­on können Sie mit dem folgenden Kommando über­prü­fen:

docker --version
docker compose version
bash

Schritt 5: OpenClaw-Re­po­si­to­ry klonen

Jetzt holen Sie sich den OpenClaw-Source­code, der auch die er­for­der­li­che Docker-Kon­fi­gu­ra­ti­on enthält:

sudo apt install git -y
git clone https://github.com/openclaw/openclaw.git
cd openclaw
bash

Sie sehen in der Folge unter anderem eine Datei mit dem Namen „docker-setup.sh“ (Setup-Skript) und die Datei „docker-compose.yml“, die die Standard-Container be­schreibt. In der letzt­ge­nann­ten YAML-Kon­fi­gu­ra­ti­ons­da­tei sind unter anderem folgende In­for­ma­tio­nen ver­zeich­net:

  • openclaw-gateway: Der Haupt­dienst, der OpenClaw startet
  • env_file: Diese In­for­ma­ti­on sagt dem Container, wo die Um­ge­bungs­va­ria­blen stehen
  • volumes: Dieser Eintrag sorgt dafür, dass Ihre Daten per­sis­tent ge­spei­chert werden, statt im Container verloren zu gehen
  • ports: Öffnet den Dienst auf Port 18789, damit Sie später im Browser darauf zugreifen können

Schritt 6: Um­ge­bungs­va­ria­blen anlegen und API-Keys eintragen

Damit OpenClaw weiß, welchen KI-Provider es nutzen soll, wie es mit externen Diensten kom­mu­ni­ziert und wie es sich au­then­ti­fi­ziert, müssen Sie einige wichtige Ein­stel­lun­gen in einer .env-Datei hin­ter­le­gen. Dabei handelt es sich um eine ganz normale Textdatei, in der sensible Dinge wie API-Keys und Token stehen – und die niemals öf­fent­lich gemacht werden sollte (z. B. nicht in Git-Re­po­si­to­rys). Schützen Sie die .env zu­sätz­lich durch das Kommando chmod 600 .env mit re­strik­ti­ven Da­tei­rech­ten.

Schritt-für-Schritt: So erstellen Sie die .env-Datei

  1. Kopieren Sie das Beispiel-File, das bereits im Re­po­si­to­ry liegt, mit dem folgenden Kommando: cp .env.example .env
  2. Öffnen Sie die neue Datei zur Be­ar­bei­tung mit dem folgenden Befehl nano .env
  3. Sie sehen nun viele mögliche Platz­hal­ter. Die wich­tigs­ten Zeilen, die Sie in dieser Datei be­ar­bei­ten sollten, sind diese (die Werte wurden bei­spiel­haft gewählt):
LLM_PROVIDER=anthropic
ANTHROPIC_API_KEY=sk-ihrapikey123xyz
GATEWAY_TOKEN=my_secure_gateway_token_abc
MODEL_VERSION=claude-4-5-sonnet-20260101
txt

LLM_PROVIDER definiert, welchen KI-Provider Sie nutzen wollen. Anthropic ist quasi der emp­foh­le­ne Standard, aber natürlich können Sie hier auch eine beliebige andere Wahl treffen. Die dazu passenden API-Keys werden benötigt, damit OpenClaw und Docker Zugang zu den LLMs in der Cloud haben. GATEWAY_TOKEN sichert den Zugriff auf das Dashboard und mit MODEL_VERSION geben Sie schließ­lich die ge­wünsch­te Version des KI-Modells an, wie zum Beispiel Claude 4.5. Die konkreten Provider-Namen und Mo­dell­ver­sio­nen ändern sich häufig, weshalb die hier ver­wen­de­ten Werte lediglich als Beispiel dienen. Ori­en­tie­ren Sie sich an der jeweils aktuellen Do­ku­men­ta­ti­on Ihres Providers.

Hinweis

Für pro­duk­ti­ve Setups sind Docker Secrets oder ein Passwort-Manager oft die bessere Wahl, als Keys im Klartext in Text­da­tei­en zu speichern.

Schritt 7: Setup-Skript ausführen

Nachdem Sie das OpenClaw-Re­po­si­to­ry geklont haben, finden Sie dort, wie bereits erwähnt, auch eine Datei mit dem Namen „docker-setup.sh“. Diese Datei ist ein Setup-Skript, das viele Aufgaben au­to­ma­ti­siert, die Sie sonst manuell machen müssten. Es ist Teil der of­fi­zi­el­len Docker-In­stal­la­ti­ons­emp­feh­lung. Ohne das Skript müssten Sie selbst:

  • Docker-Images bauen
  • Docker-Compose-Kon­fi­gu­ra­tio­nen anpassen
  • Um­ge­bungs­va­ria­blen eintragen (falls Sie dies nicht wie be­schrie­ben manuell in Schritt 6 erledigt haben)
  • Container starten

Das Setup-Skript nimmt Ihnen diese Arbeit ab und sorgt dafür, dass die Container korrekt in­stal­liert und kon­fi­gu­riert werden. Um vorher zu prüfen, was das Skript genau macht, können Sie den Befehl less docker-setup.sh ausführen. Können Sie die Än­de­run­gen nach­voll­zie­hen, starten Sie es mit folgendem Terminal-Befehl:

./docker-setup.sh
bash

Während der In­stal­la­ti­on werden Sie in­ter­ak­tiv nach Setup-Optionen (Gateway-Modus, Provider, Tokens) gefragt. Be­ant­wor­ten Sie die Nach­fra­gen wunsch­ge­mäß, um die Ein­rich­tung von OpenClaw unter Docker ab­zu­schlie­ßen.

Schritt 8: Docker Compose starten

Wenn die Compose-Dateien fertig sind, starten Sie alle Dienste. Mit dem folgenden Befehl laden Sie die Images, starten die re­le­van­ten Container und binden au­to­ma­tisch die be­nö­tig­ten Volumes ein:

docker compose up -d
bash

Um si­cher­zu­stel­len, dass keine Fehler auftreten und alle Dienste korrekt hoch­ge­fah­ren wurden und funk­tio­nie­ren, ak­ti­vie­ren Sie einfach die Logging-Funktion, um in Echtzeit die Logs ein­zu­se­hen:

docker compose logs -f
bash
Tipp

Die Logging-Funktion ist auch im späteren Live-Betrieb Ihrer OpenClaw-Docker-In­stal­la­ti­on wichtig. Auf diese Weise über­wa­chen Sie Res­sour­cen (CPU/RAM/Disk) und Feh­ler­ra­ten lang­fris­tig!

Schritt 9: Auf die Web­ober­flä­che zugreifen

Sobald alles läuft, können Sie im Browser auf die Web-Ad­mi­nis­tra­ti­ons-Ober­flä­che zugreifen, indem Sie die URL http://IHRE_SERVER_IP:18789 aufrufen. Ersetzen Sie dabei den Be­stand­teil IHRE_SERVER_IP durch die IP-Adresse Ihres Servers. Über das OpenClaw-Dashboard können Sie nun unter anderem:

  • Chat-Kon­ver­sa­tio­nen starten
  • Ihre Agents kon­fi­gu­rie­ren
  • Pairing-Token für Clients bzw. Geräte erstellen

Wenn im Browser Feh­ler­mel­dun­gen wie „Un­aut­ho­ri­zed“ oder „Pairing required“ er­schei­nen, holen Sie sich einfach mit folgendem Befehl ein frisches Dashboard-Token:

docker compose run --rm openclaw-cli dashboard --no-open
bash

An­schlie­ßend ge­neh­mi­gen Sie den Prozess wie folgt:

docker compose run --rm openclaw-cli devices list
docker compose run --rm openclaw-cli devices approve <requestID>
bash
Tipp

Der Container startet nicht? In­spi­zie­ren Sie mit docker compose logs -f die Logs, um das Problem zu iden­ti­fi­zie­ren oder über­prü­fen Sie die .env auf fehlende Keys oder Tipp­feh­ler. Falls der Port nicht er­reich­bar sein sollte, sind ver­mut­lich Firewall-Ein­stel­lun­gen oder Si­cher­heits­grup­pen an­zu­pas­sen.

Schritt 10: OpenClaw-Docker-Instanz absichern

OpenClaw kann tief ins System ein­grei­fen und Aufgaben ausführen. Das bedeutet: Wenn es un­ge­schützt im Internet agiert, könnte prin­zi­pi­ell jede Person darauf zugreifen. Beachten Sie aus diesem Grund die folgenden Si­cher­heits­re­geln:

  • Schützen Sie Ihren Server mit einer Firewall. Nur not­wen­di­ge Ver­bin­dun­gen sollten erlaubt sein.
  • Öffnen Sie den OpenClaw-Port (stan­dard­mä­ßig 18789) nur, wenn nötig. Falls Sie den Zugriff öf­fent­lich erlauben wollen, begrenzen Sie ihn am besten auf ver­trau­ens­wür­di­ge IP-Adressen und erzwingen Sie die Ver­bin­dung über einen Reverse-Proxy mit HTTPS oder ein VPN.
  • Sichern Sie Ihre Container gezielt ab, indem Sie diese nach Mög­lich­keit ohne Root-Rechte starten, Da­tei­sys­te­me `read-only`` betreiben und unnötige Be­rech­ti­gun­gen entfernen. Nutzen Sie keine über­flüs­si­gen Host-Mounts und schränken Sie den Netz­werk­zu­griff so ein, dass nur er­for­der­li­che Ziele wie Messenger-APIs und LLM-Provider verfügbar sind.
  • Verwenden Sie die Token-basierte Au­then­ti­fi­zie­rung. Das GATEWAY_TOKEN, das Sie in der .env-Datei gesetzt haben, dient dazu, unbefugte Zugriffe zu ver­hin­dern.
  • Achten Sie darauf, OpenClaw nicht als Root innerhalb des Con­tai­ners aus­zu­füh­ren und be­schrän­ken Sie Be­rech­ti­gun­gen durch Flags wie --read-only, --cap-drop=ALL und --security-opt=no-new-privileges, um mögliche An­griffs­flä­chen zu re­du­zie­ren.
  • Erstellen Sie eine isolierte Docker-Netz­werk­um­ge­bung oder nutzen Sie Regeln, damit OpenClaw nur die wirklich be­nö­tig­ten externen Dienste erreichen kann (z. B. KI-Provider-APIs), statt un­ein­ge­schränk­ten In­ter­net­zu­griff zu haben.
  • Achten Sie auf richtige Ein­stel­lun­gen in der OpenClaw-Si­cher­heits­kon­fi­gu­ra­ti­on. Alle Au­then­ti­fi­zie­rungs­me­cha­nis­men sollten aktiviert und alle Gateway-Regeln für den Pro­duk­tiv­be­trieb korrekt definiert sein.

In Linux-Systemen wie Ubuntu können Sie mithilfe der Un­com­pli­ca­ted Firewall (ufw) schnell einen guten Basis-Schutz ak­ti­vie­ren:

sudo ufw allow 22/tcp
sudo ufw allow 18789/tcp
sudo ufw enable
bash

Durch die Freigabe von TCP-Port 22 er­mög­li­chen Sie den sicheren SSH-Zugang. TCP-Port 18789 ist der Standard-Port für OpenClaw, insofern Sie keinen anderen Port fest­ge­legt haben. Wenn Sie den Port nicht gänzlich öffnen möchten, können Sie ihn auch nur für bestimmte IP-Adressen zulassen.

Tipp

Ein Beispiel für ein sicheres Ver­bin­dungs­set­up sieht wie folgt aus: Sie setzen einen Reverse Proxy wie NGINX, Traefik oder Caddy ein. Zu­sätz­lich in­stal­lie­ren Sie ein TLS-Zer­ti­fi­kat wie das kos­ten­lo­se Let’s Encrypt. Zudem leiten Sie intern auf die Adresse localhost:18789 weiter. Sofern un­ter­stützt, empfehlen sich außerdem die Ein­rich­tung von Ra­ten­be­gren­zung, um die Zahl an Anfragen zu li­mi­tie­ren und Basic-Auth/OIDC, um die Au­then­ti­fi­zie­rung zu ver­bes­sern.

Schritt 11: Messaging-In­te­gra­tio­nen ein­rich­ten

OpenClaw kann sich mit ver­schie­de­nen Chat-Platt­for­men verbinden, darunter Slack, WhatsApp, Telegram und viele mehr. Auf diese Weise können Sie Ihren KI-Agenten direkt aus Ihrem Arbeits-Chat heraus steuern. Wenn Sie OpenClaw zum Beispiel mit Slack verbinden, agiert Ihr KI-Agent wie ein Slack-Bot. Sie können ihm dann im Team-Chat Fragen stellen oder Aufgaben schicken und er antwortet oder führt Aktionen aus.

Die In­te­gra­ti­on funk­tio­niert dabei in etwa fol­gen­der­ma­ßen (je nach In­te­gra­ti­on gibt es bei der Ein­rich­tung leichte Un­ter­schie­de):

  1. Bot / Anwendung re­gis­trie­ren: Erstellen Sie einen Bot oder eine App im je­wei­li­gen Service (z. B. Telegram, Slack, Discord). Ty­pi­scher­wei­se gelingt dies über das Ent­wick­ler-Portal des je­wei­li­gen Dienstes. Am Ende erhalten Sie ein oder mehrere API-Tokens/Keys, mit denen Ihr Bot au­then­ti­fi­ziert wird.
  2. Token / Keys in OpenClaw eintragen: Tragen Sie die API-Zu­gangs­da­ten (z. B. TELEGRAM_BOT_TOKEN, SLACK_BOT_TOKEN) in die OpenClaw-Kon­fi­gu­ra­ti­ons­da­tei .env oder eine passende Kon­fi­gu­ra­ti­ons­schnitt­stel­le ein.
  3. OpenClaw neu starten oder kon­fi­gu­rie­ren: Starten Sie OpenClaw neu, damit es die neuen In­te­gra­ti­ons-Ein­stel­lun­gen über­neh­men kann.
  4. Pairing / Au­then­ti­fi­zie­rung: Je nach Dienst müssen Sie den Bot oder die Ver­bin­dung einmalig au­to­ri­sie­ren, z. B. über Pairing-Codes, OAuth-Flows oder Be­stä­ti­gungs­links, die Ihnen der Dienst oder OpenClaw prä­sen­tiert.
  5. Testen: Senden Sie eine Test­nach­richt über den Bot bzw. Chat, um zu prüfen, ob OpenClaw korrekt reagiert.
Tipp

Behandeln Sie API-Tokens ver­trau­lich, geben Sie nur nötige Be­rech­ti­gun­gen, testen Sie die Ver­bin­dung direkt nach Ein­rich­tung und führen Sie die Au­to­ri­sie­rung (z. B. Pairing/OAuth) voll­stän­dig durch. Prüfen Sie bei Problemen die Logs und nutzen Sie für erste Tests besser einen privaten Channel bzw. Workspace.

Schritt 12: OpenClaw aktuell halten

Damit Sie immer die neuesten Funk­tio­nen des Tools nutzen können und aktuelle Bug-Fixes sowie Si­cher­heits­up­dates in­stal­liert haben, ist es wichtig, dass Sie OpenClaw re­gel­mä­ßig ak­tua­li­sie­ren. Hierfür rufen Sie zunächst das Ver­zeich­nis auf:

cd ~/openclaw
bash

An­schlie­ßend beziehen Sie die neueste Version mit dem folgenden Kommando:

git pull
docker compose pull
bash

Starten Sie Ihre OpenClaw-Docker-Instanz ab­schlie­ßend neu:

docker compose up -d
bash
Tipp

Planen Sie Backups der per­sis­ten­ten Volumes (Kon­fi­gu­ra­ti­on, Tokens, relevante Daten), um im Ernstfall Si­cher­heits­ko­pien für die Wie­der­her­stel­lung Ihrer Projekte parat zu haben.

Zum Hauptmenü