OpenClaw noch nicht installiert? Klicken Sie hier fur die Ein-Klick-Installationsanweisung
curl -fsSL https://openclaw.ai/install.sh | bashiwr -useb https://openclaw.ai/install.ps1 | iexcurl -fsSL https://openclaw.ai/install.cmd -o install.cmd && install.cmd && del install.cmd- Docker Compose ist die empfohlene Methode fur die Serverbereitstellung von OpenClaw -- eine einzige YAML-Datei definiert Dienste, Volumes und Netzwerk, und der Start ist in drei Minuten abgeschlossen[1]
- Durch Volume-Mapping wird
~/.openclawauf dem Host persistiert, sodass Konfigurationen, Gesprachsverlaufe und Skills bei einem Container-Neustart nicht verloren gehen[4] - Ein Reverse Proxy (Nginx oder Caddy) in Kombination mit Let's Encrypt ist fur Produktionsumgebungen unverzichtbar -- er bietet HTTPS-Verschlusselung, WebSocket-Unterstutzung und Zugriffskontrolle[5]
- Die systemd-Variante eignet sich fur Ubuntu/Debian-Hosts, die keine Container-Isolierung benotigen, und ermoglicht mit Restart=always automatischen Neustart und Autostart beim Hochfahren[2]
1. Ubersicht der Bereitstellungsoptionen
Die Serverbereitstellung von OpenClaw geht uber eine blosse „Installation" hinaus -- es geht darum, eine dauerhaft lauffahige und sicher kontrollierbare KI-Agenten-Infrastruktur aufzubauen. Gemaess der offiziellen Dokumentation und der Community-Praxis[1] gibt es drei gangige Bereitstellungsmethoden:
| Methode | Einsatzszenario | Isolierung | Betriebskomplexitat |
|---|---|---|---|
| Docker Compose | Die meisten Produktionsumgebungen, Teamnutzung | Hoch (Container-Sandbox) | Niedrig |
| systemd | Einzelmaschine, leichtgewichtiger VPS | Mittel (OS-Ebene) | Niedrig |
| Cloud-Hosting | Enterprise-Klasse, automatische Skalierung | Hoch (VM / K8s) | Mittel bis hoch |
Der Sicherheitsanalysebericht von CrowdStrike weist darauf hin, dass eine containerisierte Bereitstellung den Dateisystemzugriff von OpenClaw wirksam einschranken und potenzielle Sicherheitsrisiken reduzieren kann[6]. Fur Produktionsumgebungen empfehlen wir dringend Docker als bevorzugte Losung.
2. Docker Compose Schnellbereitstellung
Docker Compose ermoglicht es Ihnen, alle Dienstabhangigkeiten in einer einzigen YAML-Datei zu definieren, und ist die offiziell empfohlene Bereitstellungsmethode[1]. Im Folgenden finden Sie die vollstandige docker-compose.yml:
# docker-compose.yml
version: "3.9"
services:
openclaw:
image: ghcr.io/openclaw/openclaw:latest
container_name: openclaw-server
restart: unless-stopped
ports:
- "3000:3000"
volumes:
- openclaw-data:/home/openclaw/.openclaw
- ./workspace:/home/openclaw/workspace
env_file:
- .env
environment:
- OPENCLAW_MODE=gateway
- OPENCLAW_GATEWAY_HOST=0.0.0.0
- OPENCLAW_GATEWAY_PORT=3000
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3000/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 15s
deploy:
resources:
limits:
memory: 2G
cpus: "2.0"
volumes:
openclaw-data:
Der Start erfordert nur zwei Befehle:
# Arbeitsverzeichnis erstellen und starten
mkdir -p ~/openclaw-server && cd ~/openclaw-server
docker compose up -d
Dienststatus uberprufen:
# Container-Laufstatus prufen
docker compose ps
# Echtzeitprotokolle anzeigen
docker compose logs -f openclaw
3. Umgebungsvariablen-Konfiguration
Sensible Informationen sollten nicht in die docker-compose.yml geschrieben, sondern uber eine .env-Datei injiziert werden[3]. Erstellen Sie eine .env-Datei:
# .env — Nicht in die Versionskontrolle aufnehmen
OPENCLAW_API_KEY=your-api-key-here
OPENCLAW_MODEL_PRIMARY=claude-opus-4-6
OPENCLAW_MODEL_FALLBACK=claude-sonnet-4
OPENCLAW_GATEWAY_TOKEN=your-gateway-secret-token
OPENCLAW_LOG_LEVEL=info
OPENCLAW_MAX_CONCURRENT=5
OPENCLAW_SANDBOX=docker
Fugen Sie die .env-Datei unbedingt zur .gitignore hinzu:
echo ".env" >> .gitignore
Die vollstandige Referenz der Umgebungsvariablen:
| Variablenname | Verwendungszweck | Standardwert |
|---|---|---|
OPENCLAW_API_KEY | LLM-API-Schlussel | (Pflichtfeld) |
OPENCLAW_MODE | Betriebsmodus (local / gateway) | local |
OPENCLAW_GATEWAY_HOST | Listening-Adresse | 127.0.0.1 |
OPENCLAW_GATEWAY_PORT | Listening-Port | 3000 |
OPENCLAW_GATEWAY_TOKEN | Gateway-Authentifizierungstoken | (Empfohlen) |
OPENCLAW_SANDBOX | Sandbox-Modus | docker |
OPENCLAW_LOG_LEVEL | Protokollebene | info |
4. Persistent Storage und Volume-Mapping
Container sind von Natur aus „zustandslos" -- nach einem Neustart gehen alle Anderungen verloren. Um die Konfigurationen, Gesprachsverlaufe und Skills von OpenClaw zu persistieren, mussen Volumes korrekt eingerichtet werden[4]:
volumes:
# Named Volume: Konfigurationsdateien und Gesprachsverlaufe
- openclaw-data:/home/openclaw/.openclaw
# Bind Mount: Arbeitsverzeichnis (einfacher Dateizugriff)
- ./workspace:/home/openclaw/workspace
# Optional: Benutzerdefiniertes Skill-Verzeichnis
- ./skills:/home/openclaw/.openclaw/skills
Haufig verwendete Volume-Verwaltungsbefehle:
# Volume-Nutzung anzeigen
docker volume inspect openclaw-data
# Volume-Daten sichern
docker run --rm -v openclaw-data:/data -v $(pwd):/backup \
alpine tar czf /backup/openclaw-backup-$(date +%Y%m%d).tar.gz -C /data .
# Aus Backup wiederherstellen
docker run --rm -v openclaw-data:/data -v $(pwd):/backup \
alpine tar xzf /backup/openclaw-backup-20260228.tar.gz -C /data
5. Reverse Proxy + HTTPS
In Produktionsumgebungen sollte der Port 3000 von OpenClaw niemals direkt exponiert werden. Ein Reverse Proxy mit TLS-Zertifikat ist eine Grundvoraussetzung[5].
Variante A: Nginx + Let's Encrypt
# /etc/nginx/sites-available/openclaw
server {
listen 80;
server_name openclaw.yourdomain.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name openclaw.yourdomain.com;
ssl_certificate /etc/letsencrypt/live/openclaw.yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/openclaw.yourdomain.com/privkey.pem;
# Sicherheits-Header
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
add_header Strict-Transport-Security "max-age=31536000" always;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
# WebSocket-Unterstutzung (fur OpenClaw Gateway erforderlich)
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# Timeout fur lange Verbindungen
proxy_read_timeout 86400s;
proxy_send_timeout 86400s;
}
}
Website aktivieren und Zertifikat beantragen:
# Website aktivieren
sudo ln -s /etc/nginx/sites-available/openclaw /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
# Let's Encrypt Zertifikat beantragen
sudo certbot --nginx -d openclaw.yourdomain.com
Variante B: Caddy (automatisches HTTPS)
Caddy verfugt uber integriertes automatisches HTTPS und erfordert eine deutlich kurzere Konfiguration:
# Caddyfile
openclaw.yourdomain.com {
reverse_proxy localhost:3000
header {
X-Frame-Options DENY
X-Content-Type-Options nosniff
Strict-Transport-Security "max-age=31536000"
}
}
6. systemd Service Konfiguration
Wenn Ihre Umgebung fur Docker nicht geeignet ist (z. B. ein leichtgewichtiger VPS oder eine bereits vorhandene direkte OpenClaw-Installation), ist systemd die direkteste Losung fur die Dienstverwaltung[2].
# /etc/systemd/system/openclaw.service
[Unit]
Description=OpenClaw AI Agent Server
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=openclaw
Group=openclaw
WorkingDirectory=/home/openclaw
ExecStart=/usr/local/bin/openclaw server --mode gateway --host 0.0.0.0 --port 3000
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal
SyslogIdentifier=openclaw
# Sicherheitshartung
NoNewPrivileges=yes
ProtectSystem=strict
ProtectHome=read-only
ReadWritePaths=/home/openclaw/.openclaw /home/openclaw/workspace
PrivateTmp=yes
# Umgebungsvariablen
EnvironmentFile=/home/openclaw/.openclaw/.env
[Install]
WantedBy=multi-user.target
Dienst aktivieren und verwalten:
# systemd neu laden, Dienst aktivieren und starten
sudo systemctl daemon-reload
sudo systemctl enable openclaw
sudo systemctl start openclaw
# Dienststatus und Protokolle anzeigen
sudo systemctl status openclaw
sudo journalctl -u openclaw -f --no-pager
7. Cloud-Bereitstellung (AWS / GCP / Azure)
Alle drei grossen Cloud-Plattformen unterstutzen die Bereitstellung von OpenClaw. Im Folgenden finden Sie die empfohlenen Losungen und Mindestanforderungen fur jede Plattform:
AWS
| Komponente | Empfohlener Dienst | Spezifikation |
|---|---|---|
| Compute | EC2 (t3.medium) oder ECS Fargate | 2 vCPU / 4 GB RAM |
| Speicher | EBS gp3 | 20 GB |
| Netzwerk | ALB + ACM-Zertifikat | HTTPS-Terminierung |
| Monitoring | CloudWatch | Protokolle + Metriken |
# EC2 Schnellbereitstellung (Ubuntu 22.04 / 24.04)
sudo apt update && sudo apt install -y docker.io docker-compose-v2
sudo usermod -aG docker $USER
newgrp docker
# Image abrufen und starten
mkdir ~/openclaw-server && cd ~/openclaw-server
# docker-compose.yml und .env in dieses Verzeichnis legen
docker compose up -d
GCP
Empfohlen wird die Verwendung von Compute Engine (e2-medium) in Kombination mit Cloud Load Balancing oder die direkte Bereitstellung des Container-Images uber Cloud Run. Der Vorteil von Cloud Run liegt in der automatischen Skalierung und der nutzungsbasierten Abrechnung.
Azure
Empfohlen werden Azure Container Instances (ACI) oder Azure VM (B2s). ACI eignet sich fur schnelle Tests; die VM-Variante folgt dem oben beschriebenen Docker-Compose-Ablauf in Kombination mit Application Gateway fur HTTPS.
Allgemeine Empfehlung: Unabhangig von der gewahlten Cloud-Plattform sollte der OPENCLAW_GATEWAY_TOKEN im jeweiligen Secrets Manager (AWS Secrets Manager / GCP Secret Manager / Azure Key Vault) gespeichert werden, anstatt ihn im Klartext in Umgebungsvariablen zu hinterlegen[6].
8. Gesundheitsprufungen und Monitoring
In Produktionsumgebungen muss ein Mechanismus zur Gesundheitsprufung etabliert werden, um die kontinuierliche Verfugbarkeit von OpenClaw sicherzustellen[7].
Integrierte Docker-Gesundheitsprufung
Die oben gezeigte docker-compose.yml enthalt bereits einen healthcheck-Abschnitt. Gesundheitsstatus anzeigen:
# Container-Gesundheitsstatus anzeigen
docker inspect --format='{{.State.Health.Status}}' openclaw-server
# Letzte Gesundheitsprufungsprotokolle anzeigen
docker inspect --format='{{json .State.Health}}' openclaw-server | jq
Externes Uberwachungsskript
#!/bin/bash
# check-openclaw.sh — Alle 5 Minuten uber crontab ausfuhren
HEALTH_URL="http://localhost:3000/health"
RESPONSE=$(curl -s -o /dev/null -w "%{http_code}" "$HEALTH_URL" --max-time 10)
if [ "$RESPONSE" != "200" ]; then
echo "[$(date)] OpenClaw health check failed (HTTP $RESPONSE)" >> /var/log/openclaw-monitor.log
docker compose -f ~/openclaw-server/docker-compose.yml restart
# Optional: Alarmbenachrichtigung senden
# curl -X POST "https://hooks.slack.com/services/YOUR/WEBHOOK" \
# -H 'Content-type: application/json' \
# -d '{"text":"OpenClaw health check failed, restarting..."}'
fi
Zur crontab hinzufugen:
# Alle 5 Minuten Gesundheitsprufung ausfuhren
*/5 * * * * /home/openclaw/check-openclaw.sh
Protokollverwaltung
Docker-Protokolle wachsen standardmassig unbegrenzt an. Es empfiehlt sich, die Grosse zu begrenzen:
# Im docker-compose.yml unter dem Service hinzufugen
logging:
driver: "json-file"
options:
max-size: "50m"
max-file: "3"
9. Haufige Fragen
F1: Docker oder systemd -- was soll ich wahlen?
Wenn Docker bereits auf Ihrem Host installiert ist, wahlen Sie bevorzugt Docker Compose. Docker bietet bessere Isolierung, Portabilitat und eine konsistente Bereitstellungserfahrung. systemd eignet sich fur extrem eingeschrankte Umgebungen (z. B. VPS mit weniger als 1 GB Arbeitsspeicher) oder wenn Sie ausdrucklich keine Container einsetzen mochten[1].
F2: Einstellungen gehen nach Container-Neustart verloren?
Uberprufen Sie, ob das Volume korrekt eingebunden ist. Fuhren Sie docker volume ls aus, um zu bestatigen, dass openclaw-data existiert, und verwenden Sie dann docker inspect openclaw-server, um sicherzustellen, dass der Mounts-Abschnitt auf den richtigen Pfad verweist.
F3: WebSocket-Verbindung bricht hinter Nginx ab?
Stellen Sie sicher, dass Ihre Nginx-Konfiguration proxy_set_header Upgrade und proxy_set_header Connection "upgrade" enthalt und proxy_read_timeout auf einen ausreichend langen Wert gesetzt ist (empfohlen: 86400s)[5].
F4: Wie aktualisiere ich die OpenClaw-Version?
# Neuestes Image abrufen und neu starten (Daten bleiben uber Volume erhalten)
cd ~/openclaw-server
docker compose pull
docker compose up -d
F5: Schnellste Methode zur Docker-Installation auf Ubuntu?
# Ubuntu 22.04 / 24.04 Ein-Klick-Docker-Installation
curl -fsSL https://get.docker.com | sudo sh
sudo usermod -aG docker $USER
# Abmelden und erneut anmelden, damit die Anderung wirksam wird
F6: Wie begrenze ich den Systemressourcenverbrauch von OpenClaw?
Verwenden Sie in der docker-compose.yml den Abschnitt deploy.resources.limits, um CPU- und Speicherobergrenzen festzulegen (im obigen Beispiel bereits enthalten). Bei der systemd-Variante konnen Sie in der Service-Datei MemoryMax=2G und CPUQuota=200% hinzufugen.
F7: Kann OpenClaw per Docker auf einem Raspberry Pi bereitgestellt werden?
Ja, es muss jedoch ein ARM-Architektur-Image verwendet werden. OpenClaw bietet offizielle Multi-Architektur-Images (amd64 / arm64) an. Ein Raspberry Pi 4 oder neuer mit mindestens 4 GB Arbeitsspeicher ist dafur geeignet[7].
Benotigen Sie eine Enterprise-grade OpenClaw-Bereitstellungsplanung? Meta Intelligence bietet umfassende technische Beratungsleistungen von der Architekturplanung bis zum laufenden Betrieb. Jetzt beraten lassen



