Wähle einen Artikel
OpenClaw auf VPS installieren
OpenClaw auf VPS installieren

Volle Kontrolle mit deinem eigenen VPS von easyname

Mit einem VPS von easyname hast du volle Kontrolle über deinen Server – flexibel, skalierbar und umweltbewusst betrieben in ISO-zertifizierten Rechenzentren in Österreich. Ideal für deine Anwendungen, Projekte und maximale Performance.

Rechenzentrum

Überblick 

  • Verwendetes System: Debian 12 64 bit 
  • Genutzter User: Ich nehme alles als „root“ vor 
  • Zeitdauer: ca. 20 Minuten 
  • Schwierigkeit: Einfach. Nur Code kopieren 😉 
  • Besonderheiten: 
  • Grundlage ist folgende Anleitung: https://www.easyname.at/de/vps/anwendungen/traefik-reverseproxy-auf-vps-installieren
    Diese Anleitung muss zuerst ausgeführt werden. 
  • Die Installation von Docker / Docker Compose wird hier vorausgesetzt. 
  • Ihr benötigt einen API Key eines KI Systems, da OpenClaw komplett von der KI abhängig ist 

1. OpenClaw installieren 

1.1 Einleitung 

OpenClaw ist ein relativ neues Open-Source-Projekt, das seit seiner Veröffentlichung viel Aufmerksamkeit bekommen hat. Grob gesagt könnt ihr damit einen KI‑Agenten betreiben, der über Integrationen mit euch chattet und Aufgaben über angebundene KI‑Modelle ausführt (z. B. Text generieren, einfache Workflows anstoßen).  

Wichtig: OpenClaw ist dabei vollständig von einem KI-Modell abhängig. Ohne KI‑Backend „denkt“ es nicht selbst und da jede Antwort über eine externe KI erzeugt wird, ist jede Anfrage mit nutzungsabhängigen Kosten beim jeweiligen KI-Anbieter verbunden.

In unserem konkreten Setup ist das Ziel, OpenClaw per Traefik bereitzustellen. Als KI‑Provider nutzen wir Google Gemini und zusätzlich wollen wir Telegram integrieren, damit wir bequem per Telegram-Chat mit OpenClaw interagieren können. 

1.2 Infos zu yml Dateien 

Bei yml Dateien ist es sehr wichtig, dass die Zeilen alle richtig eingerückt sind. Die Zeilen MÜSSEN immer mit der Leertaste eingerückt werden. Es dürfen KEINE Tabs enthalten sein. Ihr könnt den nachfolgenden Code immer online „überprüfen“ lassen. Die meisten Fehler entstehen nämlich durch die falsche Formatierung. Ein Dienst zum Überprüfen ist zum Beispiel: https://codebeautify.org/yaml-validator 

1.3 Vorbereitung 

Diese Anleitung basiert auf dem aktuellen Debian 12 Betriebssystem. OpenClaw werden wir unter Docker realisieren. Dies ermöglicht uns später sehr schnelle Updates und eine schnelle Installation. 

Um OpenClaw neben anderen Diensten auf unserem Server betreiben zu können, nutzen wir hier den Reverse Proxy Traefik. Die Anleitung dazu finden Sie hier: https://www.dogado.de/vps/vserver-anwendungsfaelle/traefik-reverseproxy-auf-vserver-installieren 

1.3.1 Verzeichnis erstellen 

Wir erstellen uns ein neues Verzeichnis, in welchem wir später alle Daten von OpenClaw abspeichen. Dazu geben wir folgendes in der Konsole ein: 

mkdir -p /opt/containers/openclaw

Ihr könnt hier auch ein anderes Verzeichnis verwenden. Müsst dann aber die gesamte Anleitung entsprechend anpassen. 

1.3.2 docker-compose.yml erstellen 

Nun können wir mit der eigentlichen „Installation“ von OpenClaw beginnen. Dazu öffnet ihr folgende Datei: 

nano /opt/containers/openclaw/docker-compose.yml 

Nun kopiert ihr folgenden Code in die Datei. Dieser Code ist unser Bauplan für unseren OpenClaw Container. 

services:
 openclaw-gateway:
   image: ${OPENCLAW_IMAGE}
   environment:
     HOME: /home/node
     TERM: xterm-256color
     OPENCLAW_GATEWAY_TOKEN: ${OPENCLAW_GATEWAY_TOKEN}
   volumes:
     - ./config:/home/node/.openclaw
     - ./workspace:/home/node/.openclaw/workspace
   env_file:
     - .env
   init: true
   restart: unless-stopped
   command:
     [
       "node",
       "dist/index.js",
       "gateway",
       "--allow-unconfigured",
       "--bind",
       "${OPENCLAW_GATEWAY_BIND:-0.0.0.0}",
       "--port",
       "18789",
     ]
   healthcheck:
     test:
       [
         "CMD",
         "node",
         "-e",
         "fetch('http://127.0.0.1:18789/healthz').then((r)=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))",
       ]
     interval: 30s
     timeout: 5s
     retries: 5
     start_period: 20s
   labels:
     - "traefik.enable=true"
     - "traefik.http.routers.openclaw.entrypoints=http"
     - "traefik.http.routers.openclaw.rule=Host(`openclaw.euredomain.de`)"
     - "traefik.http.middlewares.openclaw-https-redirect.redirectscheme.scheme=https"
     - "traefik.http.routers.openclaw.middlewares=openclaw-https-redirect"
     - "traefik.http.routers.openclaw-secure.entrypoints=https"
     - "traefik.http.routers.openclaw-secure.rule=Host(`openclaw.euredomain.de`)"
     - "traefik.http.routers.openclaw-secure.tls=true"
     - "traefik.http.routers.openclaw-secure.tls.certresolver=http"
     - "traefik.http.routers.openclaw-secure.service=openclaw"
     - "traefik.http.services.openclaw.loadbalancer.server.port=18789"
     - "traefik.docker.network=proxy"
     - "traefik.http.routers.openclaw-secure.middlewares=secHeaders@file,openclaw-auth"
     - "traefik.http.middlewares.openclaw-auth.basicauth.users="
   networks:
     - proxy

 openclaw-cli:
   image: ${OPENCLAW_IMAGE}
   env_file:
     - .env
   network_mode: "service:openclaw-gateway"
   cap_drop:
     - NET_RAW
     - NET_ADMIN
   security_opt:
     - no-new-privileges:true
   environment:
     HOME: /home/node
     TERM: xterm-256color
     OPENCLAW_GATEWAY_TOKEN: ${OPENCLAW_GATEWAY_TOKEN:-}
     BROWSER: echo
   volumes:
     - ./config:/home/node/.openclaw
     - ./workspace:/home/node/.openclaw/workspace
   stdin_open: true
   tty: true
   init: true
   entrypoint: ["node", "dist/index.js"]
   depends_on:
     - openclaw-gateway

networks:
 proxy:
   external: true 

1.3.3 env Datei erstellen 

Nun erstellen wir noch eine Datei mit unseren Einstellungen. Gebt dazu folgendes ein: 

nano /opt/containers/openclaw/.env 

Inhalt: 

# ----------------------------------------------------------------------------- 
# Gateway auth + Image 
# ----------------------------------------------------------------------------- 
OPENCLAW_GATEWAY_TOKEN=change-me-to-a-long-random-token 
OPENCLAW_IMAGE=ghcr.io/openclaw/openclaw:latest 
OPENCLAW_CONFIG_DIR=./config 
OPENCLAW_WORKSPACE_DIR=./workspace 

Den Parameter OPENCLAW_IMAGE könnt ihr beliebig anpassen. Hier verwenden wir aber das offizielle OpenClaw Image. 

1.3.4 erstes Konfigurationsskript 

Um etwas Arbeit zu sparen, erstellen wir uns ein Skript, welches unsere Domain sowie Nutzername und Passwort vergibt, damit OpenClaw erreichbar sowie geschützt ist. 

 nano /opt/containers/openclaw/setup.sh 

 Inhalt: 

#!/bin/bash 
 
if ! command -v htpasswd &> /dev/null; then 
    echo "htpasswd ist nicht installiert. Installiere apache2-utils..." 
    sudo apt-get update && sudo apt-get install -y apache2-utils 
fi 
 
read -p "Bitte gebt eure gewuenschte Domain ein (z.B. openclaw.meinedomain.de): " USER_DOMAIN 
 
sed -i "s/Host(\`openclaw.euredomain.de\`)/Host(\`$USER_DOMAIN\`)/g" docker-compose.yml 
echo "Die Domain wurde in der docker-compose.yml auf $USER_DOMAIN aktualisiert." 
 
NEW_TOKEN=$(openssl rand -hex 32) 
sed -i "s/^OPENCLAW_GATEWAY_TOKEN=change-me-to-a-long-random-token/OPENCLAW_GATEWAY_TOKEN=$NEW_TOKEN/g" .env 
echo "Ein sicherer Gateway-Token wurde generiert und in der .env Datei hinterlegt." 
 
echo "---" 
echo "Einrichtung des OpenClaw Logins" 
read -p "Bitte gib einen Benutzernamen fuer das Dashboard ein: " AUTH_USER 
read -s -p "Bitte gib ein sicheres Passwort ein: " AUTH_PASS 
echo "" 
 
AUTH_STRING=$(htpasswd -nb "$AUTH_USER" "$AUTH_PASS" | sed -e s/\\$/\\$\\$/g) 
 
sed -i "s|^      - \"traefik.http.middlewares.openclaw-auth.basicauth.users=\".*|      - \"traefik.http.middlewares.openclaw-auth.basicauth.users=$AUTH_STRING\"|g" docker-compose.yml 
 
echo "Basic Auth Zugangsdaten wurden erfolgreich in der docker-compose.yml hinterlegt." 
echo "Setup abgeschlossen!" 

Nun machen wir das Skript noch ausführbar und starten es: 

chmod +x /opt/containers/openclaw/setup.sh 
cd /opt/containers/openclaw/ 
./setup.sh 

1.3.5 offizielles Einrichtungsskript downloaden 

Nun laden wir uns noch das offizielle OpenClaw Konfigurationsskript herunter. 

cd /opt/containers/openclaw 
wget -O docker-setup.sh https://raw.githubusercontent.com/openclaw/openclaw/main/docker-setup.sh 
chmod +x docker-setup.sh 

2. KI API Key erzeugen 

OpenClaw bietet eine große Auswahl unterstützter KI-Systeme. Hier eine Übersicht: 

Terminal-Liste von Modell-/Provider-Optionen; Google (Gemini API key + OAuth) ist ausgewählt.

Später müsst ihr einen API Key eines KI Systems eingeben, um OpenClaw nutzen zu können. In diesem Beispiel verwenden wir Google Gemini. Dazu geht ihr auf folgende URL: https://aistudio.google.com/ 

Registriert euch dort und dann könnt ihr euren API Key einsehen. Ebenfalls seht ihr dort die Kosten, welche ihr für Anfragen an Gemini bezahlen müsst. 

3. Kommunikations-Gateway hinzufügen (optional) 

OpenClaw bietet eine große Auswahl an Gateways über diese es kommunizieren kann. 

Terminalliste mit Auswahlrad-Optionen: Telegram, WhatsApp, Discord, IRC, Slack, Signal; Finished.

Grundsätzlich stellt OpenClaw eine Webseite bereit, weshalb ihr kein weiteres Gateway benötigt. In diesem Beispiel verwenden wir den Dienst Telegram, da dieser kostenlos und sehr einfach einzurichten ist. 

Im ersten Schritt legt ihr euch einen Telegram Account an bzw. loggt euch in euren vorhandenen Account ein.  

Anschließend sucht ihr folgenden Kontakt: „@BotFather“. 

BotFather Twitter‑Profilkarte: Profilbild, Name BotFather mit blauem Verifizierungs-Hinweis, Datum rechts, Button 'Öffnen'.

Wichtig hierbei ist, dass ihr den Dienst mit dem „blauen Haken“ nutzt, da es viele Fake Dienste gibt. 

Mit „/start“ seht ihr einen Überblick aller Parameter. 

Telegram-Chat mit BotFather; Befehle zur Bot-Erstellung: /newbot, /setname, /setdescription; grüner Hintergrund.

Wählt hier „/newbot“ aus und vergebt einen Namen für euren Bot. Unter diesen Namen könnt ihr den Bot später suchen. Wichtig ist, dass der Namen auf „bot“ enden muss. 

Screenshot eines Telegram-Chatfensters mit grünen Sprechblasen; roter Rahmen um die Zahl 8792.

Wenn alles korrekt war, dann solltet ihr eine Bestätigung inklusive eines http API Tokens erhalten. Dieses benötigen wir später für OpenClaw. 

4. OpenClaw Einrichtung starten 

Wichtiger Hinweis:
An mehreren Stellen lädt OpenClaw sehr lange. Wichtig ist, dass ihr hier einfach mehrere Minuten wartet, bis der Dialog weitergeht. In dieser Anleitung seht ihr auf den Bildern immer auf welche Dialoge / Ausgaben ihr warten müsst, bevor ihr weitermachen könnt. 

Nun starten wir die Einrichtung von OpenClaw. Dazu benötigen wir die zuvor erstellten API Keys. 

cd /opt/containers/openclaw 
set -a && source .env && set +a && ./docker-setup.sh 

Wählt im ersten Schritt „yes“ aus: 

Schwarzes Terminalfenster mit ASCII-OPENCLAW oben; darunter Textfenster mit OpenClaw onboarding und Security.

Hier wählen wir „Manual“, damit wir alle Einstellungen vornehmen können: 

Bildschirm mit Onboarding-Modus: QuickStart und Manual (Configure Port, Network, Tailscale, Auth). Linke farbige Linien.

Das Workspace Directory bestätigt ihr einfach: 

Terminalfenster mit zwei Zeilen: 'Workspace directory' und dem Pfad '/home/node/.openclaw/workspace' mit Cursor am Ende.

Nun könnt ihr euer KI-System auswählen. In unserem Fall ist es Google. 

Terminal: Liste von Model/auth provider mit runden Auswahlknöpfen; Google ist ausgewählt (Gemini API key + OAuth).

Hier wählen wir „Google Gemini API key“ aus: 

Textbasiertes Menü: Google auth method, Google Gemini API key, Google Gemini CLI OAuth, Back; links farbige Symbole.

Jetzt wählen wir, dass wir den API Key direkt einfügen wollen („Paste API key now“): 

Dunkles Terminalfenster mit der Frage zur API-Key-Bereitstellung und zwei Optionen.

Nun können wir unser Modell auswählen. Dies beeinflusst sowohl den Preis als auch die Qualität der Antworten. Gemini 3.1 Pro ist aktuell das stärkste der Google KI Modelle. 

Terminal mit dunklem Hintergrund, Liste von google/gemini (flash, lite, pro, preview) und grün markierte Keep current.

Den Gateway Port bestätigt ihr einfach: 

Terminalfenster mit orangefarbener Beschriftung 'Gateway port' und der Zahl 18789; blauer Cursor am linken Rand.

Wählt nun „LAN (0.0.0.0)“ aus, damit die Kommunikation später mit Traefik funktioniert: 

Screenshot eines Terminalmenüs: Gateway bind, Loopback 127.0.0.1; LAN 0.0.0.0; Tailnet IP; Auto, Custom IP.

Die Kommunikation soll mittels Token geschützt werden. Dies haben wir ja bereits zuvor erstellen lassen. 

Dunkles Terminalfenster zeigt drei Einträge: Gateway auth; Token (Recommended default (local + remote)); Password.

Tailscale wählen wir nicht aus: 

Code-Editor-Oberfläche mit Tailscale-Exposure-Optionen: Off (No Tailscale exposure), Serve, Funnel.

Nun wählen wir „Generate/store plaintext token“: 

Screenshot eines Terminal-Prompts mit zwei Optionen: Generate/store plaintext token (Default) und Use SecretRef.

Bestätigt das vorausgewählte Token mit ENTER. 

Hier könnt ihr nun wählen, ob ihr einen Channel / Gateway nutzen wollt, oder ob ihr OpenClaw einfach per Webseite nutzen möch tet. Wir wählen „Yes“, damit wir Telegram einbinden können. 

Terminal 'Channel status' mit Telegram: needs token; WhatsApp: not linked; unten: Configure chat channels now? Yes/No.

Wir wählen Telegram, da wir es damit verbinden wollen. 

Terminalliste von Messaging-Plattformen mit Kreisaufzählungen: Telegram, WhatsApp, Discord, IRC, Google Chat, Slack, Signal.

Nun dauert es wenige Minuten, bis ihr zur Eingabe eurer Telegram API aufgefordert werdet: 

Screenshot eines dunklen Terminals mit orangeem 'Telegram bot token'-Titel, nummerierten Anweisungen und grünen Optionen.

Nun wählen wir „Finished“ aus, da wir keine weiteren Dienste verbinden möchten: 

Terminal: Liste von Chat-Kanälen zur Auswahl (Telegram, WhatsApp, IRC, Google Chat, Slack, Signal, iMessage, LINE, Finished).

Beim Pairing wählen wir „no“ aus, da dieser Modus für uns passt. 

Terminal: Frage Configure DM access policies now? Optionen: leeres Kreis-Symbol vor Yes, grünes Symbol vor No.

Nun wählen wir noch einen Search Provider aus. Wir entscheiden uns für Google, da wir hier bereits einen API Key haben: 

Terminal-ähnliche Oberfläche mit einer Liste von Suchanbietern.

Ihr könnt euch nun verschieden Skills (Fähigkeiten) auswählen für OpenClaw, welche installiert werden sollen: 

Dunkles Fenster: 'Skills status' – Eligible 3; Missing reqs 41; OS-Unsupported 7; Blocked 0; Yes / No.

Wir überspringen den Schritt mit „Skip for now“. 

Terminalfenster mit schwarzem Hintergrund; Überschrift 'Install missing skill dependencies' und lange Liste leerer Checkboxen.

Jetzt könnt ihr noch weitere API Keys eingeben. Wir überspringen dies aber. 

Dunkles Terminalfenster mit Zeilen wie 'Set <KEY> for <service>? No' – alle Enden mit 'No'.

Jetzt könnt ihr noch Hooks festlegen. Auch dies überspringen wir: 

Dunkles Terminalfenster mit oranger Überschrift 'Enable hooks?' und Checkboxen-Liste.

Zum Schluss installieren wir noch die zsh Shell: 

Dunkles Terminalfenster mit oranger Schrift: 'Enable zsh shell completion for openclaw?'; grüner Punkt neben 'Yes / No'.

OpenClaw ist nun fertig eingerichtet und führt die Konfiguration durch. Dies dauert mehrere Minuten. Bitte wartet so lange, bis ihr folgendes seht: 

Screenshot eines Terminalfensters mit vielen Codezeilen und Befehlen auf schwarzem Hintergrund.

5. OpenClaw Anpassungen für Traefik 

Nun führen wir ein weiteres Skript aus, welches Anpassungen an OpenClaw für Traefik vornimmt: 

nano /opt/containers/openclaw/setup2.sh 

Inhalt: 

#!/bin/bash 
set -e 
 
echo "Lese Konfiguration aus..." 
 
if ! TOKEN=$(grep "^OPENCLAW_GATEWAY_TOKEN=" .env | cut -d '=' -f 2); then 
    echo "Fehler: OPENCLAW_GATEWAY_TOKEN in .env nicht gefunden." 
    exit 1 
fi 
 
if ! DOMAIN=$(grep -oP 'Host\(`\K[^`]+' docker-compose.yml | head -1); then 
    echo "Fehler: Konnte keine Domain (Host) in der docker-compose.yml finden." 
    exit 1 
fi 
 
echo "Gefundener Token: $TOKEN" 
echo "Gefundene Domain: $DOMAIN" 
echo "---" 
 
echo "Deaktiviere Device Auth..." 
docker compose run --rm openclaw-cli config set gateway.controlUi.dangerouslyDisableDeviceAuth true 
 
echo "Erlaube Domain in Control UI..." 
docker compose run --rm openclaw-cli config set gateway.controlUi.allowedOrigins "[\"https://$DOMAIN\"]" --strict-json 
 
echo "---" 
# 5. Container neustarten, damit die Konfiguration greift 
echo "Starte Container neu..." 
docker compose down 
docker compose up -d 
 
echo "---" 
echo "✅ Setup erfolgreich abgeschlossen!" 
echo "" 
echo "Das Dashboard ist in wenigen Minuten unter folgender URL erreichbar:" 
echo "https://$DOMAIN/#token=$TOKEN" 
echo "" 

Dieses Skript starten wir nun: 

chmod +x /opt/containers/openclaw/setup2.sh 
cd /opt/containers/openclaw/ 
./setup2.sh 

Das Ausführen des Skriptes dauert mehrere Minuten. Bitte wartet bis ihr folgendes seht: 

Dunkles Terminalfenster mit Statusmeldungen, u. a. Created und Setup abgeschlossen; darunter Dashboard-Link.

6. OpenClaw starten 

Kopiert euch nun den angezeigten Link und fügt diesen in euren Browser ein. Auch hier dauert es wieder mehrere Minuten, bis OpenClaw fertig gestartet ist. 

Anschließend solltet ihr diese Meldung erhalten: 

Eine Anmelde-Maske mit Logo links, Felder für Benutzername und Passwort sowie die Schaltflächen Anmelden und Abbrechen.

Gebt hier euer Nutzername / Passwort aus Schritt 1.3.4 ein. 

Nun seid ihr auf der OpenClaw Oberfläche und könnt dort weitere Einstellungen vornehmen bzw. Befehle ausführen. 

OpenLaw-Chat-Oberfläche: linke Seitenleiste, zentraler Chat-Bereich mit Titel 'Chat' und Eingabefeld unten.

7. Telegram mit OpenClaw verbinden 

Sucht nun euren Telegram Bot, welchen ihr im Schritt 3 erstellt habt.  

Globale Suchergebnisse: Profil dogado_bot mit blau-lila Avatar und @dogado_bot, hervorgehoben.

Mit dem Befehl „/start“ solltet ihr folgendes sehen: 

Telegram-Oberfläche: weiße Dialogbox zeigt 'Pairing code: T4VAY9AN' in rotem Rahmen; zwei Avatare links.

Diesen Pairing Code kopiert ihr euch nun. Anschließend führt ihr auf eurem Server folgenden Befehl aus: 

docker compose run --rm openclaw-cli pairing approve telegram PAIRING-CODE 

In meinem Fall also: 

docker compose run --rm openclaw-cli pairing approve telegram T4VAY9AN 

Wenn der Befehl bei eurem Server erfolgreich bearbeitet wurde, gebt bei Telegram „/status“ ein. Dort solltet ihr nun folgendes sehen: 

Telegram-Chat auf grünem Hintergrund; OpenClaw: access not configured, Pairing code T4VY9AN.

8. OpenClaw Versionen 

Zu OpenClaw gibt es aktuell alle paar Tage neue Docker Images, weshalb es sein kann, dass einige Menüs anders aussehen. Ebenfalls haben Nutzer in Foren berichtet, dass an manchen Tagen ein Image einen Fehler haben kann, welcher dann mit dem nächsten Image an den nächsten Tagen behoben sein kann. 

9. OpenClaw Befehle ausführen 

Ihr könnt nun sowohl per Telegram: 

Zwei Chat-Nachrichten: Grüne Box 'Erzähle mir einen Witz' und weiße Box 'Was macht ein Clown im Büro? Faxen! 🤡'

Als auch per Webseite Befehle ausführen: 

Zwei Sprechblasen: peachfarbene Blase 'Erzähle mir einen Witz', Blase 'Was ist orange und geht den Berg hinauf? Eine Wanderin'

Unter den Einstellungen könnt ihr euch auch anzeigen lassen, wie viele Anfragen OpenClaw bereits verschickt hat und welche Kosten dafür angefallen ungefähr angefallen ist. Ihr solltet dies aber zur Sicherheit immer zusätzlich in auf der Plattform des KI-Betreibers einsehen. 

Linke Seitenleiste mit 'Nutzung' markiert; 'Usage Overview' KPI-Karten, darunter 'Top Models' (rote Umrandung).

Volle Kontrolle mit deinem eigenen VPS von easyname

Mit einem VPS von easyname hast du volle Kontrolle über deinen Server – flexibel, skalierbar und umweltbewusst betrieben in ISO-zertifizierten Rechenzentren in Österreich. Ideal für deine Anwendungen, Projekte und maximale Performance.

Rechenzentrum
Weitere passende Themen