- Podman führt den Gateway-Container aus.
- Ihre
openclawCLI auf dem Host ist die Steuerungsebene. - Persistenter Zustand wird standardmäßig auf dem Host unter
~/.openclawgespeichert. - Für die tägliche Verwaltung wird
openclaw --container <name> ...anstelle vonsudo -u openclaw,podman execoder einem separaten Dienstbenutzer verwendet.
Voraussetzungen
- Podman im Rootless-Modus
- Auf dem Host installierte OpenClaw CLI
- Optional:
systemd --user, wenn Sie einen von Quadlet verwalteten automatischen Start wünschen - Optional:
sudonur, wenn Sieloginctl enable-linger "$(whoami)"für die Startpersistenz auf einem Headless-Host verwenden möchten
Schnellstart
1
Einmalige Einrichtung
Führen Sie im Stammverzeichnis des Repositorys Oder legen Sie
./scripts/podman/setup.sh aus.Dadurch wird openclaw:local in Ihrem Rootless-Podman-Speicher gebaut (oder OPENCLAW_IMAGE / OPENCLAW_PODMAN_IMAGE abgerufen, falls festgelegt), bei Bedarf ~/.openclaw/openclaw.json mit gateway.mode: "local" erstellt und bei Bedarf ~/.openclaw/.env mit einem generierten OPENCLAW_GATEWAY_TOKEN erstellt.Optionale Umgebungsvariablen für die Build-Zeit:Alternativ für eine von Quadlet verwaltete Einrichtung (nur Linux und systemd-Benutzerdienste):
OPENCLAW_PODMAN_QUADLET=1 fest.2
Gateway-Container starten
--userns=keep-id und bind-mountet Ihren OpenClaw-Zustand in den Container.3
Onboarding im Container ausführen
http://127.0.0.1:18789/ und verwenden Sie das Token aus ~/.openclaw/.env.Modellauthentifizierung: Verwenden Sie während der Einrichtung die von OpenClaw verwaltete Authentifizierung (Anthropic-API-Schlüssel oder OpenAI-Codex-Browser-OAuth-/Gerätecode-Authentifizierung für Codex-gestütztes OpenAI). Der Podman-Launcher mountet keine Anmeldedatenverzeichnisse der Host-CLI wie ~/.claude oder ~/.codex in den Einrichtungs- oder Gateway-Container. Vorhandene Host-CLI-Anmeldungen dienen nur der komfortablen Nutzung auf demselben Host — bewahren Sie bei Containerinstallationen die Provider-Authentifizierung in dem gemounteten Zustand ~/.openclaw auf, den die Einrichtung verwaltet.4
Laufenden Container über die Host-CLI verwalten
openclaw-Befehle automatisch in diesem Container ausgeführt:~/.openclaw/.env nur eine kleine Positivliste Podman-bezogener Schlüssel und übergibt dem Container explizite Laufzeit-Umgebungsvariablen; er übergibt Podman nicht die vollständige Umgebungsdatei.
Podman und Tailscale
Befolgen Sie für HTTPS oder den Remote-Browserzugriff die allgemeine Tailscale-Dokumentation. Podman-spezifische Hinweise:- Belassen Sie den Podman-Veröffentlichungshost bei
127.0.0.1. - Bevorzugen Sie das vom Host verwaltete
tailscale servegegenüberopenclaw gateway --tailscale serve. - Verwenden Sie unter macOS den Tailscale-Zugriff anstelle improvisierter lokaler Tunnel-Umgehungslösungen, wenn der Geräteauthentifizierungskontext des lokalen Browsers unzuverlässig ist.
Systemd (Quadlet, optional)
Wenn Sie./scripts/podman/setup.sh --quadlet ausgeführt haben, installiert die Einrichtung eine Quadlet-Datei unter ~/.config/containers/systemd/openclaw.container.
Nach dem Bearbeiten der Quadlet-Datei:
127.0.0.1 veröffentlichte Ports (18789 Gateway, 18790 Bridge), --bind lan innerhalb des Containers, keep-id-Benutzernamensraum, OPENCLAW_NO_RESPAWN=1, Restart=on-failure und TimeoutStartSec=300. Er liest ~/.openclaw/.env als Laufzeit-EnvironmentFile für Werte wie OPENCLAW_GATEWAY_TOKEN, verwendet jedoch nicht die Podman-spezifische Override-Positivliste des manuellen Launchers. Verwenden Sie für benutzerdefinierte veröffentlichte Ports, einen Veröffentlichungshost oder andere Flags zur Container-Ausführung stattdessen den manuellen Launcher, oder bearbeiten Sie ~/.config/containers/systemd/openclaw.container direkt und laden Sie den Dienst anschließend neu und starten Sie ihn neu.
Konfiguration, Umgebung und Speicher
- Konfigurationsverzeichnis:
~/.openclaw - Arbeitsbereichsverzeichnis:
~/.openclaw/workspace - Token-Datei:
~/.openclaw/.env - Starthilfsprogramm:
./scripts/run-openclaw-podman.sh
OPENCLAW_CONFIG_DIR -> /home/node/.openclaw, OPENCLAW_WORKSPACE_DIR -> /home/node/.openclaw/workspace. Standardmäßig handelt es sich dabei um Hostverzeichnisse und nicht um anonymen Containerzustand. Daher bleiben openclaw.json, agentenspezifische auth-profiles.json, Kanal-/Provider-Zustand, Sitzungen und der Arbeitsbereich beim Ersetzen des Containers erhalten. Die Einrichtung befüllt außerdem gateway.controlUi.allowedOrigins für 127.0.0.1 und localhost auf dem veröffentlichten Gateway-Port vor, damit das lokale Dashboard mit der Nicht-Loopback-Bindung des Containers funktioniert.
Nützliche Umgebungsvariablen für den manuellen Launcher (speichern Sie diese dauerhaft in ~/.openclaw/.env; der Launcher liest diese Datei, bevor er die Container-/Image-Standardwerte festlegt):
Wenn Sie ein nicht standardmäßiges
OPENCLAW_CONFIG_DIR oder OPENCLAW_WORKSPACE_DIR verwenden, legen Sie dieselben Variablen sowohl für ./scripts/podman/setup.sh als auch für spätere ./scripts/run-openclaw-podman.sh launch-Befehle fest — der Repository-lokale Launcher speichert benutzerdefinierte Pfadüberschreibungen nicht über Shell-Sitzungen hinweg.
Images aktualisieren
Nachdem Sie ein neues Image gebaut oder abgerufen haben, starten Sie den Container oder den Quadlet-Dienst neu. Beim ersten Start einer neuen OpenClaw-Version führt das Gateway sichere Zustands- und Plugin-Reparaturen durch, bevor es seine Bereitschaft meldet. Wenn das Gateway beendet wird, anstatt betriebsbereit zu werden, führen Sie dasselbe Image einmal mitopenclaw doctor --fix für denselben gemounteten Zustand/dieselbe gemountete Konfiguration aus und starten Sie anschließend das
Gateway normal neu:
,Z hinzu, wenn Podman den Zugriff auf den
gemounteten Zustand blockiert.
Nützliche Befehle
- Containerprotokolle:
podman logs -f openclaw - Container stoppen:
podman stop openclaw - Container entfernen:
podman rm -f openclaw - Dashboard-URL über die Host-CLI öffnen:
openclaw dashboard --no-open - Integrität/Status über die Host-CLI:
openclaw gateway status --deep(RPC-Prüfung + zusätzliche Dienstsuche)
Fehlerbehebung
- Zugriff verweigert (EACCES) für Konfiguration oder Arbeitsbereich: Der Container wird standardmäßig mit
--userns=keep-idund--user <your uid>:<your gid>ausgeführt. Stellen Sie sicher, dass die Konfigurations-/Arbeitsbereichspfade auf dem Host Ihrem aktuellen Benutzer gehören. - Gateway-Start blockiert (fehlendes
gateway.mode=local): Stellen Sie sicher, dass~/.openclaw/openclaw.jsonvorhanden ist undgateway.mode="local"festlegt.scripts/podman/setup.sherstellt dies, falls es fehlt. - Container startet nach einer Image-Aktualisierung neu: Führen Sie den einmaligen
openclaw doctor --fix-Befehl unter Images aktualisieren aus und starten Sie anschließend das Gateway erneut. - CLI-Befehle im Container verwenden das falsche Ziel: Verwenden Sie
openclaw --container <name> ...explizit oder exportieren SieOPENCLAW_CONTAINER=<name>in Ihrer Shell. openclaw updateschlägt mit--containerfehl: Erwartetes Verhalten. Bauen Sie das Image neu oder rufen Sie es erneut ab und starten Sie anschließend den Container oder den Quadlet-Dienst neu.- Quadlet-Dienst startet nicht: Führen Sie
systemctl --user daemon-reloadund anschließendsystemctl --user start openclaw.serviceaus. Auf Headless-Systemen benötigen Sie möglicherweise zusätzlichsudo loginctl enable-linger "$(whoami)". - SELinux blockiert Bind-Mounts: Behalten Sie das standardmäßige Mount-Verhalten bei; der Launcher fügt unter Linux automatisch
:Zhinzu, wenn SELinux im Enforcing- oder Permissive-Modus ausgeführt wird.