Mehrere Gateways (auf einem Host)

In den meisten Fällen reicht ein einzelner Gateway, da er mehrere Messaging-Verbindungen und Agents gleichzeitig verwalten kann. Wenn du aber stärkere Isolation oder Redundanz brauchst (z.B. einen Rescue-Bot), kannst du separate Gateways mit eigenen Profilen und Ports betreiben.

Checkliste zur Isolation (erforderlich)

  • OPENCLAW_CONFIG_PATH — eigene Config-Datei pro Instanz
  • OPENCLAW_STATE_DIR — eigenes Verzeichnis für Sessions, Credentials und Caches pro Instanz
  • agents.defaults.workspace — eigenes Workspace-Verzeichnis pro Instanz
  • gateway.port (oder --port) — eindeutiger Port pro Instanz
  • Abgeleitete Ports (Browser/Canvas) dürfen sich nicht überschneiden

Wenn diese Werte geteilt werden, kommt es zu Config-Konflikten und Port-Kollisionen.

Empfohlen: Profile (--profile)

Profile setzen automatisch OPENCLAW_STATE_DIR + OPENCLAW_CONFIG_PATH und fügen den Service-Namen ein Suffix hinzu.

# main
openclaw --profile main setup
openclaw --profile main gateway --port 18789

# rescue
openclaw --profile rescue setup
openclaw --profile rescue gateway --port 19001

Services pro Profil installieren:

openclaw --profile main gateway install
openclaw --profile rescue gateway install

Rescue-Bot Anleitung

Starte einen zweiten Gateway auf demselben Host mit eigenem:

  • Profil/Config
  • State-Verzeichnis
  • Workspace
  • Basis-Port (plus abgeleitete Ports)

So bleibt der Rescue-Bot vom Haupt-Bot isoliert und kann debuggen oder Config-Änderungen vornehmen, falls der primäre Bot nicht erreichbar ist.

Port-Abstand: Lass mindestens 20 Ports zwischen den Basis-Ports frei, damit die abgeleiteten Browser/Canvas/CDP-Ports nie kollidieren.

Installation (Rescue-Bot)

# Haupt-Bot (bestehend oder neu, ohne --profile Parameter)
# Läuft auf Port 18789 + Chrome CDC/Canvas/... Ports
openclaw onboard
openclaw gateway install

# Rescue-Bot (isoliertes Profil + Ports)
openclaw --profile rescue onboard
# Hinweise:
# - Der Workspace-Name bekommt standardmäßig das Suffix -rescue
# - Port sollte mindestens 18789 + 20 Ports sein,
#   besser einen komplett anderen Basis-Port wählen, z.B. 19789
# - Der Rest des Onboardings ist wie gewohnt

# Service installieren (falls nicht automatisch beim Onboarding passiert)
openclaw --profile rescue gateway install

Port-Mapping (abgeleitet)

Basis-Port = gateway.port (oder OPENCLAW_GATEWAY_PORT / --port).

  • Browser Control Service Port = Basis + 2 (nur Loopback)
  • canvasHost.port = Basis + 4
  • Browser-Profil CDP-Ports werden automatisch vergeben: browser.controlPort + 9 .. + 108

Wenn du einen dieser Werte in der Config oder per Umgebungsvariable überschreibst, musst du sie pro Instanz eindeutig halten.

Browser/CDP Hinweise (häufiger Fehler)

  • Setze browser.cdpUrl nicht auf denselben Wert bei mehreren Instanzen.
  • Jede Instanz braucht ihren eigenen Browser Control Port und CDP-Bereich (abgeleitet vom Gateway-Port).
  • Wenn du explizite CDP-Ports brauchst, setze browser.profiles.<name>.cdpPort pro Instanz.
  • Remote Chrome: Verwende browser.profiles.<name>.cdpUrl (pro Profil, pro Instanz).

Manuelles Beispiel mit Umgebungsvariablen

OPENCLAW_CONFIG_PATH=~/.openclaw/main.json \
OPENCLAW_STATE_DIR=~/.openclaw-main \
openclaw gateway --port 18789

OPENCLAW_CONFIG_PATH=~/.openclaw/rescue.json \
OPENCLAW_STATE_DIR=~/.openclaw-rescue \
openclaw gateway --port 19001

Schnelle Statusprüfung

openclaw --profile main status
openclaw --profile rescue status
openclaw --profile rescue browser status