OpenClaw Gateway in einem rootless Podman-Container ausführen, verwaltet durch Ihren aktuellen Nicht-Root-Benutzer. Das vorgesehene Modell ist:Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
- Podman führt den Gateway-Container aus.
- Ihre Host-CLI
openclawist die Steuerungsebene. - Persistenter Zustand liegt standardmäßig auf dem Host unter
~/.openclaw. - Die tägliche Verwaltung verwendet
openclaw --container <name> ...stattsudo -u openclaw,podman execoder eines separaten Dienstbenutzers.
Voraussetzungen
- Podman im rootless-Modus
- OpenClaw CLI auf dem Host installiert
- Optional:
systemd --user, wenn Sie von Quadlet verwalteten automatischen Start möchten - Optional:
sudonur, wenn Sieloginctl enable-linger "$(whoami)"für Boot-Persistenz auf einem Headless-Host möchten
Schnellstart
Onboarding im Container ausführen
Führen Sie
./scripts/run-openclaw-podman.sh launch setup aus und öffnen Sie dann http://127.0.0.1:18789/../scripts/podman/setup.sherstellt standardmäßigopenclaw:localin Ihrem rootless Podman-Store oder verwendetOPENCLAW_IMAGE/OPENCLAW_PODMAN_IMAGE, wenn Sie eines davon setzen.- Es erstellt
~/.openclaw/openclaw.jsonmitgateway.mode: "local", falls diese Datei fehlt. - Es erstellt
~/.openclaw/.envmitOPENCLAW_GATEWAY_TOKEN, falls diese Datei fehlt. - Für manuelle Starts liest der Helfer nur eine kleine Allowlist Podman-bezogener Schlüssel aus
~/.openclaw/.envund übergibt explizite Runtime-Umgebungsvariablen an den Container; er übergibt nicht die vollständige Env-Datei an Podman.
OPENCLAW_PODMAN_QUADLET=1 setzen.
Optionale Build-/Setup-Env-Vars:
OPENCLAW_IMAGEoderOPENCLAW_PODMAN_IMAGE— ein vorhandenes/heruntergeladenes Image verwenden, stattopenclaw:localzu erstellenOPENCLAW_DOCKER_APT_PACKAGES— zusätzliche apt-Pakete während des Image-Builds installierenOPENCLAW_EXTENSIONS— Plugin-Abhängigkeiten zur Build-Zeit vorinstallierenOPENCLAW_INSTALL_BROWSER— Chromium und Xvfb für Browser-Automatisierung vorinstallieren (zum Aktivieren auf1setzen)
--userns=keep-id, und bind-mountet Ihren OpenClaw-Zustand in den Container.
Onboarding:
http://127.0.0.1:18789/ und verwenden Sie das Token aus ~/.openclaw/.env.
Standard für Host-CLI:
Podman und Tailscale
Für HTTPS- oder Remote-Browserzugriff folgen Sie der Hauptdokumentation zu Tailscale. Podman-spezifischer Hinweis:- Belassen Sie den Podman-Publish-Host bei
127.0.0.1. - Bevorzugen Sie hostverwaltetes
tailscale servegegenüberopenclaw gateway --tailscale serve. - Unter macOS sollten Sie Tailscale-Zugriff verwenden, wenn der lokale Browser-Geräteauthentifizierungskontext unzuverlässig ist, statt Ad-hoc-Workarounds mit lokalen Tunneln.
Systemd (Quadlet, optional)
Wenn Sie./scripts/podman/setup.sh --quadlet ausgeführt haben, installiert die Einrichtung eine Quadlet-Datei unter:
- Starten:
systemctl --user start openclaw.service - Stoppen:
systemctl --user stop openclaw.service - Status:
systemctl --user status openclaw.service - Logs:
journalctl --user -u openclaw.service -f
Konfiguration, Env und Speicher
- Konfigurationsverzeichnis:
~/.openclaw - Workspace-Verzeichnis:
~/.openclaw/workspace - Token-Datei:
~/.openclaw/.env - Start-Helfer:
./scripts/run-openclaw-podman.sh
OPENCLAW_CONFIG_DIR->/home/node/.openclawOPENCLAW_WORKSPACE_DIR->/home/node/.openclaw/workspace
openclaw.json, agentenspezifische auth-profiles.json, Channel-/Provider-Zustand,
Sitzungen und Workspace einen Container-Austausch überstehen.
Die Podman-Einrichtung setzt außerdem gateway.controlUi.allowedOrigins für 127.0.0.1 und localhost auf dem veröffentlichten Gateway-Port, damit das lokale Dashboard mit dem Nicht-loopback-Bind des Containers funktioniert.
Nützliche Env-Vars für den manuellen Launcher:
OPENCLAW_PODMAN_CONTAINER— Container-Name (standardmäßigopenclaw)OPENCLAW_PODMAN_IMAGE/OPENCLAW_IMAGE— auszuführendes ImageOPENCLAW_PODMAN_GATEWAY_HOST_PORT— Host-Port, der Container18789zugeordnet istOPENCLAW_PODMAN_BRIDGE_HOST_PORT— Host-Port, der Container18790zugeordnet istOPENCLAW_PODMAN_PUBLISH_HOST— Host-Schnittstelle für veröffentlichte Ports; Standard ist127.0.0.1OPENCLAW_GATEWAY_BIND— Gateway-Bind-Modus innerhalb des Containers; Standard istlanOPENCLAW_PODMAN_USERNS—keep-id(Standard),autooderhost
~/.openclaw/.env, bevor Container-/Image-Standards finalisiert werden, sodass Sie diese dort persistent speichern können.
Wenn Sie ein nicht standardmäßiges OPENCLAW_CONFIG_DIR oder OPENCLAW_WORKSPACE_DIR verwenden, setzen Sie dieselben Variablen sowohl für ./scripts/podman/setup.sh als auch für spätere ./scripts/run-openclaw-podman.sh launch-Befehle. Der repo-lokale Launcher persistiert benutzerdefinierte Pfadüberschreibungen nicht über Shells hinweg.
Quadlet-Hinweis:
- Der generierte Quadlet-Dienst behält absichtlich eine feste, gehärtete Standardform bei: veröffentlichte Ports auf
127.0.0.1,--bind laninnerhalb des Containers undkeep-id-Benutzernamespace. - Er pinnt
OPENCLAW_NO_RESPAWN=1,Restart=on-failureundTimeoutStartSec=300. - Er veröffentlicht sowohl
127.0.0.1:18789:18789(Gateway) als auch127.0.0.1:18790:18790(Bridge). - Er liest
~/.openclaw/.envals Runtime-EnvironmentFilefür Werte wieOPENCLAW_GATEWAY_TOKEN, verwendet aber nicht die Podman-spezifische Override-Allowlist des manuellen Launchers. - Wenn Sie benutzerdefinierte Veröffentlichungsports, einen Publish-Host oder andere Container-Run-Flags benötigen, verwenden Sie den manuellen Launcher oder bearbeiten Sie
~/.config/containers/systemd/openclaw.containerdirekt, laden Sie anschließend neu und starten Sie den Dienst neu.
Nützliche Befehle
- Container-Logs:
podman logs -f openclaw - Container stoppen:
podman stop openclaw - Container entfernen:
podman rm -f openclaw - Dashboard-URL über Host-CLI öffnen:
openclaw dashboard --no-open - Health/Status über Host-CLI:
openclaw gateway status --deep(RPC-Probe + zusätzlicher Dienstscan)
Fehlerbehebung
- Zugriff verweigert (EACCES) auf Konfiguration oder Workspace: Der Container läuft standardmäßig mit
--userns=keep-idund--user <your uid>:<your gid>. Stellen Sie sicher, dass die Host-Pfade für Konfiguration/Workspace Ihrem aktuellen Benutzer gehören. - Gateway-Start blockiert (fehlendes
gateway.mode=local): Stellen Sie sicher, dass~/.openclaw/openclaw.jsonexistiert undgateway.mode="local"setzt.scripts/podman/setup.sherstellt dies, falls es fehlt. - Container-CLI-Befehle treffen das falsche Ziel: Verwenden Sie explizit
openclaw --container <name> ...oder exportieren SieOPENCLAW_CONTAINER=<name>in Ihrer Shell. openclaw updateschlägt mit--containerfehl: Erwartet. Erstellen/laden Sie das Image neu und starten Sie dann den Container oder den Quadlet-Dienst neu.- Quadlet-Dienst startet nicht: Führen Sie
systemctl --user daemon-reloadaus, dannsystemctl --user start openclaw.service. Auf Headless-Systemen benötigen Sie möglicherweise außerdemsudo loginctl enable-linger "$(whoami)". - SELinux blockiert Bind-Mounts: Lassen Sie das standardmäßige Mount-Verhalten unverändert; der Launcher fügt unter Linux automatisch
:Zhinzu, wenn SELinux enforcing oder permissive ist.