Mehrere Gateways (gleicher Host)

Die meisten Setups kommen mit einem einzigen Gateway aus, da es mehrere Messaging-Verbindungen und Agents gleichzeitig verwalten kann. Wenn du stärkere Isolation oder Redundanz brauchst (z. B. einen Rescue-Bot), betreibe separate Gateways mit eigenen Profilen und Ports.

Isolations-Checkliste (erforderlich)

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

Werden diese geteilt, kommt es zu Config-Race-Conditions und Port-Konflikten.

Empfohlen: Profile (--profile)

Profile setzen automatisch OPENCLAW_STATE_DIR + OPENCLAW_CONFIG_PATH und hängen ein Suffix an Servicenamen an.

# 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:

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

Rescue-Bot-Anleitung

Betreibe ein zweites Gateway auf demselben Host mit jeweils eigenem:

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

So bleibt der Rescue-Bot vom Haupt-Bot isoliert und kann bei Problemen des primären Bots Debugging durchführen oder Konfigurationsänderungen vornehmen.

Port-Abstand: Lass mindestens 20 Ports zwischen den Basis-Ports frei, damit sich die abgeleiteten Browser-/Canvas-/CDP-Ports niemals überschneiden.

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
# - Der Port sollte mindestens 18789 + 20 betragen,
#   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 geschehen)
openclaw --profile rescue gateway install

Port-Zuordnung (abgeleitet)

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

  • Browser-Control-Service-Port = Basis + 2 (nur Loopback)
  • Canvas-Host wird über den Gateway-HTTP-Server bereitgestellt (gleicher Port wie gateway.port)
  • CDP-Ports für Browser-Profile werden automatisch ab browser.controlPort + 9 .. + 108 zugewiesen

Wenn du einen dieser Werte in der Konfiguration oder per Umgebungsvariable überschreibst, müssen sie pro Instanz eindeutig sein.

Browser/CDP-Hinweise (häufige Stolperfalle)

  • browser.cdpUrl nicht bei mehreren Instanzen auf denselben Wert setzen.
  • 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 Umgebungsvariablen-Beispiel

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

Schnelltests

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