OpenClaw Docker auf VPS 2026
Exit 137 und Control-UI-Fehler im Überblick

mem_limit · erstes WASM · allowedOrigins · Kopplung per compose exec · Compose-Vorlage

OpenClaw Docker auf VPS – Fehlersuche

Wer docker compose nach Anleitung gestartet hat, sieht auf kleinen VPS oft drei Muster: Container beendet mit 137, Port 18789 reagiert lange nicht, Control UI meldet non-loopback oder Host-Header-Probleme. Dieser Artikel liefert zuerst eine umsetzbare Liste zu free -h, mem_limit und einem 3–7-Minuten-Fenster für das erste WASM-Build, dann eine Tabelle Symptom → docker logs → Maßnahme für Exit 137, Volume-Rechte und falsche Mounts; anschließend eine Entscheidungstabelle zu Bind an 127.0.0.1, allowedOrigins und Reverse Proxy für UI-Fehler; zuletzt ein sechsstufiges Runbook zur Gerätekopplung im Container und zehn Punkte vor Go-Live. Ergänzend zu OpenClaw v2026.4 – Installation und Docker-Härtung, Gateway-Installation und doctor-Checkliste und Laufzeit-Troubleshooting in drei Abschnitten hilft das, von „Container läuft“ zu „stabil ohne Daueraufsicht“ zu kommen. Für Anbieter-API-Schlüssel und .env gelten bei personenbezogenen Metadaten oder Teamzugriff die üblichen DSGVO-Pflichten: Zweckbindung, technische und organisatorische Maßnahmen, Vertrag zur Auftragsverarbeitung wo erforderlich; Schlüssel nur dort speichern und injizieren, wo Zugriff dokumentiert und begrenzt ist.

01

Ressourcen zuerst: free -h, mem_limit und das erste WASM-Build („scheinbar hängend“)

Beim ersten Start des OpenClaw Gateway im Container ist hohe CPU, aber der Port öffnet spät oft die WASM-Sandbox-Kompilierung, kein Deadlock. Wie in v2026.4 Installationsartikel beschrieben: sind freier RAM auf dem Host und mem_limit zu knapp, liefert Linux OOM oft Exit 137, ohne klare Anwendungsmeldung in den Logs.

  1. 01

    Host: Auf dem Host free -h ausführen; dauerhaft weniger als etwa 1,5–2 GiB freier Puffer erhöht das 137-Risiko; ohne Swap noch stärker.

  2. 02

    Compose: mem_limit: 2g oder höher setzen und schwere Konkurrenten auf derselben Maschine vermeiden.

  3. 03

    Erstes Fenster: Nach Kaltstart 3–7 Minuten warten, bevor ein Fehler angenommen wird; docker logs -f zeigt, ob noch kompiliert wird.

  4. 04

    Healthcheck: healthcheck.start_period mindestens 360s, damit compose nicht vor Ende des WASM neu startet.

  5. 05

    Fehldiagnose vermeiden: Während des ersten Fensters nicht wiederholt docker compose restart – jeder Neustart triggert den Kaltstart-Spitzenbedarf erneut.

Diese fünf Punkte auf Seite eins des Runbooks „OpenClaw auf VPS“ reduzieren Tickets vom Typ „Tutorial befolgt, startet nicht“. Mehrstufiges Gateway-Troubleshooting: Laufzeit-Artikel.

02

Exit 137, Volume-Rechte, Mount-Mismatch: Symptome, docker logs und Maßnahmen

Die Tabelle folgt zuerst Evidenz, dann Aktion, damit Tickets von „Gateway wirkt kaputt“ zu reproduzierbaren Feldern werden. Zusammen mit doctor-Installationscheckliste lassen sich Zeilennummern ins Ticket übernehmen.

Symptomdocker logs / HostPriorisierte Maßnahme
Sofort 137dmesg mit OOM; oder Log bricht abmem_limit / Instanzgröße erhöhen; Konkurrenz reduzieren
Permission denied workspaceMount gehört root, Node im Container nichtchown auf Container-UID oder user: an Volume angleichen
Konfiguration wirkt nichtZwei Pfade zu .openclaw auf Host und in composeEinen Bind-Pfad; vor Neustart docker compose config
DNS sporadischcurl im Container zum Modell-Endpoint timeoutDocker-dns und Host-Resolver laut Installationsartikel prüfen
Neustarts ohne neue LogsHealthcheck zu aggressivstart_period und retries lockern

Effizientes Docker-Troubleshooting hängt daran, ob 137 zuerst als OOM belegt ist – nicht als Vermutung „App-Bug“.

Kombinieren Sie Gateway auf dem VPS mit einem dauerhaft erreichbaren Remote-Mac: Containerressourcen (compose, Logs) und Knoten-SLA (Region, Wartung) getrennt abnehmen.

03

Control UI, 127.0.0.1 und Reverse Proxy: allowedOrigins und Host-Header-Optionen

18789 öffentlich auf dem VPS zu exponieren ist ein häufiger Fehler. Installationsartikel: Container nur an Loopback, TLS-Terminierung mit Caddy oder Nginx auf 443. non-loopback in der Control UI bedeutet: Browser-Origin und erlaubte Origins am Gateway stimmen nicht – nicht „Docker defekt“.

SzenarioListen / ProxyKonfiguration
Nur SSH-Tunnel lokal127.0.0.1:18789allowedOrigins inkl. http://127.0.0.1:18789
HTTPS mit DomainProxy auf Loopback-UpstreamallowedOrigins mit https://ihre-domain; Host-Fallback vermeiden, wenn möglich
Temporäres LabHTTP interne IPIP-Quellen explizit; CIDR eng; nach Wartung zurückziehen
Nur UI schnell sehenTLS außen dennoch empfohlenHost-Header-Fallback nur mit Risikokenntnis laut Doku; danach zurückbauen
json
{
  "gateway": {
    "mode": "local",
    "controlUi": {
      "allowedOrigins": ["https://openclaw.example.com"]
    }
  }
}

Hinweis: Nach Änderung an openclaw.json prüfen, ob docker compose restart in das erste WASM-Fenster fällt und nicht mit Fehldiagnosen aus Abschnitt 2 kollidiert.

04

Sechsstufiges Runbook: docker compose exec, devices list, approve, Pfadfehler

Bei openclaw im Container müssen HOME und Konfigurations-Volume mit dem laufenden Prozess übereinstimmen, sonst „auf dem Host approved, im Container pending“. Service-Name hier openclaw – durch Ihren compose-Namen ersetzen.

  1. 01

    Service: docker compose ps – Container mit Gateway finden.

  2. 02

    Gleiche Umgebung: docker compose exec openclaw sh -lc 'pwd; echo $HOME; ls -la ~/.openclaw | head'

  3. 03

    Offene Kopplungen: docker compose exec openclaw openclaw devices list

  4. 04

    Request-ID: Aus UI oder Log, dann openclaw devices approve <id>.

  5. 05

    API-Key-Sichtbarkeit: Bei No API key found for provider prüfen, ob .env per compose in den Container gelangt, nicht nur im Host-Shell-Profil. Anbieter-Schlüssel nur nach interner Key-Governance und DSGVO-konformer Zugriffsregel ablegen.

  6. 06

    Ticketfelder: Pfad zu compose, Image-Tag, Kurz-openclaw.json, approve-Befehl dokumentieren.

Achtung: openclaw devices approve nur auf dem Host, während die Config nur im Container gemountet ist, erzeugt falsche Negativtests.

05

Compose-Skelett, zehn Go-Live-Checks und Notebook statt Server

Drei typische Prüfintervalle – mit echten Monitoring-Werten Ihres Hosts füllen und ins README, damit neue Teammitglieder dieselben Fallen vermeiden.

  • Erster Start: Nach Kaltstart mindestens 3–7 Minuten warten, bevor ein Ticket geöffnet wird; unter drei Minuten wiederholt neu starten verstärkt 137.
  • RAM: Pro Instanz dauerhaft etwa 2 GiB freier Puffer auf dem Host anstreben; darunter eher skalieren als Features stapeln.
  • Log-Rotation: Docker json-file z. B. ≤10 MiB pro Datei, ≤3 Dateien, damit die Platte nicht als zweite Ausfallursache wird.
#Vor Go-LiveErfolgskriterium
01ports nur 127.0.0.118789 nicht öffentlich erreichbar
02env_file und Secret-Pfade konsistentModell-API-Key im Container lesbar
03mem_limit und Swap-Strategie dokumentiertLasttest ohne 137
04healthcheck.start_period ≥ 360sKeine Neustart-Schleife im ersten Fenster
05openclaw.json gateway.mode localUngültige Schlüssel entfernt
06TLS und HSTS am ProxyKeine Mixed-Content-Warnungen
07allowedOrigins deckt echte Origins abKeine non-loopback-Meldung in der Control UI
08Gerätekopplung im Container durchgespieltdevices list leer oder approved
09Backup von .openclaw und VersionEin Runbook-Blatt zur Wiederherstellung
10Kanal-Doku abgeglichenIM- oder Webhook-Callbacks erreichbar
yaml
services:
  openclaw:
    image: ghcr.io/openclaw/openclaw:latest
    restart: unless-stopped
    mem_limit: 2g
    ports:
      - "127.0.0.1:18789:18789"
    volumes:
      - ${HOME}/.openclaw:/home/node/.openclaw
    env_file:
      - .env
    healthcheck:
      test: ["CMD", "curl", "-f", "http://127.0.0.1:18789/health"]
      interval: 60s
      timeout: 15s
      retries: 5
      start_period: 360s

Gateway dauerhaft auf dem Notebook leidet unter Ruhezustand, zugeklapptem Deckel und instabilem Uplink; reines Heim-DSL liefert selten messbares SLA. Ein Mac mini in der Cloud mit nutzungsbasierter Abrechnung passt besser zu gemischten Workflows mit VPS-OpenClaw und grafischer oder Xcode-Seite.

Häufiger Fehler: 0.0.0.0:18789 als „einfaches Debuggen“ – auf einem öffentlichen VPS ist das die Kontrollfläche für Scanner.

Soll Docker-Gateway stabil online bleiben und schwere Builds oder Geräteschritte auf vertraglich fassbarer macOS-Umgebung laufen, sind Anschaffung und Multi-Standort-Sync oft teurer als Miete. Für 7×24 prüfbare Knoten und flexible Größen ist VpsMesh Mac mini Cloud häufig die bessere Option: Architektur mit VPS-OpenClaw und dediziertem Remote-Mac skizzieren, Kapazität mit Mietpreisen und Bestellseite belegen – das lässt sich leichter vertraglich absichern als mündliche Zusagen.

FAQ

Häufige Fragen

Zuerst dmesg auf dem Host und mem_limit auf OOM prüfen; parallel das erste WASM-Fenster einplanen. Ressourcenbaseline mit OpenClaw v2026.4 Installationsartikel abstimmen.

In openclaw.json unter gateway.controlUi.allowedOrigins die echte HTTPS-Quelle eintragen und prüfen, ob der Proxy keinen falschen Host nach oben reicht. Ablauf: Gateway-Installationscheckliste.

Mit docker compose exec denselben Nutzer und dieselben Mounts wie das Gateway nutzen, dann openclaw devices list. Sonst Laufzeit-Troubleshooting. Kapazität: Mietpreise, Bestellen; Verbindung: Hilfezentrum.