Uruchom OpenClaw Gateway w bezrootowym kontenerze Podman zarządzanym przez bieżącego użytkownika bez uprawnień roota. Docelowy model jest następujący: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 uruchamia kontener Gateway.
- Twój hostowy CLI
openclawjest płaszczyzną sterowania. - Stan trwały domyślnie znajduje się na hoście w
~/.openclaw. - Codzienne zarządzanie używa
openclaw --container <name> ...zamiastsudo -u openclaw,podman execlub osobnego użytkownika usługi.
Wymagania wstępne
- Podman w trybie bezrootowym
- OpenClaw CLI zainstalowany na hoście
- Opcjonalnie:
systemd --user, jeśli chcesz automatyczny start zarządzany przez Quadlet - Opcjonalnie:
sudotylko wtedy, gdy chcesz użyćloginctl enable-linger "$(whoami)"dla trwałości po rozruchu na hoście bez monitora
Szybki start
Uruchom onboarding wewnątrz kontenera
Uruchom
./scripts/run-openclaw-podman.sh launch setup, a następnie otwórz http://127.0.0.1:18789/../scripts/podman/setup.shdomyślnie budujeopenclaw:localw Twoim bezrootowym magazynie Podman albo używaOPENCLAW_IMAGE/OPENCLAW_PODMAN_IMAGE, jeśli ustawisz jedną z tych zmiennych.- Tworzy
~/.openclaw/openclaw.jsonzgateway.mode: "local", jeśli go brakuje. - Tworzy
~/.openclaw/.envzOPENCLAW_GATEWAY_TOKEN, jeśli go brakuje. - Przy ręcznych uruchomieniach pomocnik odczytuje tylko krótką listę dozwolonych kluczy związanych z Podman z
~/.openclaw/.envi przekazuje do kontenera jawne zmienne środowiskowe środowiska uruchomieniowego; nie przekazuje pełnego pliku środowiska do Podman.
OPENCLAW_PODMAN_QUADLET=1.
Opcjonalne zmienne środowiskowe budowania/konfiguracji:
OPENCLAW_IMAGElubOPENCLAW_PODMAN_IMAGE— użyj istniejącego/pobranego obrazu zamiast budowaćopenclaw:localOPENCLAW_DOCKER_APT_PACKAGES— zainstaluj dodatkowe pakiety apt podczas budowania obrazuOPENCLAW_EXTENSIONS— wstępnie zainstaluj zależności Plugin podczas budowaniaOPENCLAW_INSTALL_BROWSER— wstępnie zainstaluj Chromium i Xvfb dla automatyzacji przeglądarki (ustaw na1, aby włączyć)
--userns=keep-id i montuje przez bind stan OpenClaw w kontenerze.
Onboarding:
http://127.0.0.1:18789/ i użyj tokena z ~/.openclaw/.env.
Domyślne ustawienie hostowego CLI:
Podman i Tailscale
Aby uzyskać dostęp HTTPS lub zdalny dostęp przez przeglądarkę, postępuj zgodnie z główną dokumentacją Tailscale. Uwaga specyficzna dla Podman:- Zachowaj host publikowania Podman jako
127.0.0.1. - Preferuj zarządzane przez hosta
tailscale servezamiastopenclaw gateway --tailscale serve. - Na macOS, jeśli lokalny kontekst uwierzytelniania urządzenia w przeglądarce jest zawodny, użyj dostępu Tailscale zamiast doraźnych obejść z lokalnym tunelem.
Systemd (Quadlet, opcjonalnie)
Jeśli uruchomiono./scripts/podman/setup.sh --quadlet, konfiguracja instaluje plik Quadlet w:
- Start:
systemctl --user start openclaw.service - Stop:
systemctl --user stop openclaw.service - Status:
systemctl --user status openclaw.service - Logi:
journalctl --user -u openclaw.service -f
Konfiguracja, środowisko i pamięć masowa
- Katalog konfiguracji:
~/.openclaw - Katalog obszaru roboczego:
~/.openclaw/workspace - Plik tokena:
~/.openclaw/.env - Pomocnik uruchamiania:
./scripts/run-openclaw-podman.sh
OPENCLAW_CONFIG_DIR->/home/node/.openclawOPENCLAW_WORKSPACE_DIR->/home/node/.openclaw/workspace
openclaw.json, auth-profiles.json poszczególnych agentów, stan kanałów/dostawców,
sesje i obszar roboczy przetrwają wymianę kontenera.
Konfiguracja Podman zasila też gateway.controlUi.allowedOrigins dla 127.0.0.1 i localhost na opublikowanym porcie Gateway, aby lokalny dashboard działał z wiązaniem kontenera innym niż loopback.
Przydatne zmienne środowiskowe dla ręcznego launchera:
OPENCLAW_PODMAN_CONTAINER— nazwa kontenera (domyślnieopenclaw)OPENCLAW_PODMAN_IMAGE/OPENCLAW_IMAGE— obraz do uruchomieniaOPENCLAW_PODMAN_GATEWAY_HOST_PORT— port hosta mapowany na port kontenera18789OPENCLAW_PODMAN_BRIDGE_HOST_PORT— port hosta mapowany na port kontenera18790OPENCLAW_PODMAN_PUBLISH_HOST— interfejs hosta dla opublikowanych portów; domyślnie127.0.0.1OPENCLAW_GATEWAY_BIND— tryb wiązania Gateway wewnątrz kontenera; domyślnielanOPENCLAW_PODMAN_USERNS—keep-id(domyślnie),autolubhost
~/.openclaw/.env przed finalizacją domyślnych ustawień kontenera/obrazu, więc możesz je tam utrwalić.
Jeśli używasz niestandardowego OPENCLAW_CONFIG_DIR lub OPENCLAW_WORKSPACE_DIR, ustaw te same zmienne zarówno dla poleceń ./scripts/podman/setup.sh, jak i późniejszych ./scripts/run-openclaw-podman.sh launch. Launcher lokalny dla repozytorium nie utrwala niestandardowych nadpisań ścieżek między powłokami.
Uwaga dotycząca Quadlet:
- Wygenerowana usługa Quadlet celowo zachowuje stały, utwardzony domyślny kształt: opublikowane porty
127.0.0.1,--bind lanwewnątrz kontenera i przestrzeń nazw użytkownikakeep-id. - Przypina
OPENCLAW_NO_RESPAWN=1,Restart=on-failureiTimeoutStartSec=300. - Publikuje zarówno
127.0.0.1:18789:18789(Gateway), jak i127.0.0.1:18790:18790(bridge). - Odczytuje
~/.openclaw/.envjako środowiskowyEnvironmentFileczasu działania dla wartości takich jakOPENCLAW_GATEWAY_TOKEN, ale nie używa listy dozwolonych nadpisań specyficznych dla Podman z ręcznego launchera. - Jeśli potrzebujesz niestandardowych portów publikowania, hosta publikowania lub innych flag uruchamiania kontenera, użyj ręcznego launchera albo edytuj bezpośrednio
~/.config/containers/systemd/openclaw.container, a następnie przeładuj i uruchom usługę ponownie.
Przydatne polecenia
- Logi kontenera:
podman logs -f openclaw - Zatrzymanie kontenera:
podman stop openclaw - Usunięcie kontenera:
podman rm -f openclaw - Otwarcie URL dashboardu z hostowego CLI:
openclaw dashboard --no-open - Kondycja/status przez hostowe CLI:
openclaw gateway status --deep(sonda RPC + dodatkowe skanowanie usługi)
Rozwiązywanie problemów
- Odmowa dostępu (EACCES) do konfiguracji lub obszaru roboczego: Kontener domyślnie działa z
--userns=keep-idi--user <your uid>:<your gid>. Upewnij się, że ścieżki konfiguracji/obszaru roboczego na hoście należą do bieżącego użytkownika. - Start Gateway zablokowany (brak
gateway.mode=local): Upewnij się, że~/.openclaw/openclaw.jsonistnieje i ustawiagateway.mode="local".scripts/podman/setup.shtworzy go, jeśli go brakuje. - Polecenia CLI kontenera trafiają do niewłaściwego celu: Użyj jawnie
openclaw --container <name> ...albo wyeksportujOPENCLAW_CONTAINER=<name>w swojej powłoce. openclaw updatekończy się niepowodzeniem z--container: To oczekiwane. Odbuduj/pobierz obraz, a następnie uruchom ponownie kontener albo usługę Quadlet.- Usługa Quadlet nie startuje: Uruchom
systemctl --user daemon-reload, a następniesystemctl --user start openclaw.service. W systemach bez monitora może być też potrzebnesudo loginctl enable-linger "$(whoami)". - SELinux blokuje montowania bind: Pozostaw domyślne zachowanie montowania bez zmian; launcher automatycznie dodaje
:Zw Linuksie, gdy SELinux działa w trybie enforcing lub permissive.