- Podman uruchamia kontener gateway.
- Hostowy
openclawCLI jest 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 zainstalowane na hoście
- Opcjonalnie:
systemd --user, jeśli chcesz automatyczne uruchamianie zarządzane przez Quadlet - Opcjonalnie:
sudotylko wtedy, gdy chcesz użyćloginctl enable-linger "$(whoami)"dla trwałości po uruchomieniu systemu 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 je ustawisz.- Tworzy
~/.openclaw/openclaw.jsonzgateway.mode: "local", jeśli go brakuje. - Tworzy
~/.openclaw/.envzOPENCLAW_GATEWAY_TOKEN, jeśli go brakuje. - Przy ręcznym uruchamianiu helper odczytuje tylko niewielką listę dozwolonych kluczy związanych z Podman z
~/.openclaw/.envi przekazuje jawne zmienne środowiskowe runtime do kontenera; nie przekazuje całego 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_IMAGE_APT_PACKAGES— zainstaluj dodatkowe pakiety apt podczas budowania obrazu (akceptuje też starszeOPENCLAW_DOCKER_APT_PACKAGES)OPENCLAW_IMAGE_PIP_PACKAGES— zainstaluj dodatkowe pakiety Python podczas budowania obrazu; przypnij wersje i używaj tylko indeksów pakietów, którym ufaszOPENCLAW_EXTENSIONS— wstępnie zainstaluj zależności pluginów w czasie budowaniaOPENCLAW_INSTALL_BROWSER— wstępnie zainstaluj Chromium i Xvfb do automatyzacji przeglądarki (ustaw na1, aby włączyć)
--userns=keep-id i montuje stan OpenClaw do kontenera przez bind mount.
Onboarding:
http://127.0.0.1:18789/ i użyj tokenu z ~/.openclaw/.env.
Uwierzytelnianie modeli w Podman:
- Użyj uwierzytelniania zarządzanego przez OpenClaw podczas konfiguracji: kluczy API Anthropic dla Anthropic albo uwierzytelniania OAuth przeglądarki/kodem urządzenia OpenAI Codex dla OpenAI opartego na Codex.
- Launcher Podman nie montuje katalogów domowych poświadczeń hostowego CLI, takich jak
~/.claudeczy~/.codex, do kontenera konfiguracji ani gateway. - Istniejące logowania hostowego CLI są ścieżkami wygody na tym samym hoście. W instalacjach kontenerowych trzymaj uwierzytelnianie dostawców w zamontowanym stanie
~/.openclaw, którym zarządza konfiguracja.
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:- Pozostaw host publikacji Podman jako
127.0.0.1. - Preferuj zarządzane przez hosta
tailscale servezamiastopenclaw gateway --tailscale serve. - W systemie macOS, jeśli lokalny kontekst uwierzytelniania urządzenia w przeglądarce jest zawodny, użyj dostępu Tailscale zamiast doraźnych obejść z lokalnymi tunelami.
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 przechowywanie
- Katalog konfiguracji:
~/.openclaw - Katalog workspace:
~/.openclaw/workspace - Plik tokenu:
~/.openclaw/.env - Helper uruchamiania:
./scripts/run-openclaw-podman.sh
OPENCLAW_CONFIG_DIR->/home/node/.openclawOPENCLAW_WORKSPACE_DIR->/home/node/.openclaw/workspace
openclaw.json, per-agent auth-profiles.json, stan kanałów/dostawców,
sesje i workspace 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 powiązaniem kontenera, które nie jest local 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 kontener18789OPENCLAW_PODMAN_BRIDGE_HOST_PORT— port hosta mapowany na kontener18790OPENCLAW_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 wartości 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 ./scripts/podman/setup.sh, jak i późniejszych poleceń ./scripts/run-openclaw-podman.sh launch. Repozytoryjny launcher lokalny 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 runtimeEnvironmentFiledla 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 publikacji, hosta publikacji 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 zrestartuj usługę.
Przydatne polecenia
- Logi kontenera:
podman logs -f openclaw - Zatrzymaj kontener:
podman stop openclaw - Usuń kontener:
podman rm -f openclaw - Otwórz 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 uprawnień (EACCES) w konfiguracji lub workspace: Kontener domyślnie działa z
--userns=keep-idi--user <your uid>:<your gid>. Upewnij się, że ścieżki konfiguracji/workspace 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ą w zły cel: Użyj jawnie
openclaw --container <name> ...albo wyeksportujOPENCLAW_CONTAINER=<name>w swojej powłoce. openclaw updatekończy się niepowodzeniem z--container: To oczekiwane. Przebuduj/pobierz obraz, a następnie zrestartuj 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 bind mounty: Pozostaw domyślne zachowanie montowania bez zmian; launcher automatycznie dodaje
:Zw Linuksie, gdy SELinux jest w trybie enforcing lub permissive.