Podman
OpenClaw Gateway’i, mevcut root olmayan kullanıcınız tarafından yönetilen rootless bir Podman container’ında çalıştırın. Hedeflenen model şudur:- Podman gateway container’ını çalıştırır.
- Ana bilgisayardaki
openclawCLI sizin kontrol düzleminizdir. - Kalıcı durum varsayılan olarak ana bilgisayarda
~/.openclawaltında bulunur. - Günlük yönetim için
sudo -u openclaw,podman execveya ayrı bir hizmet kullanıcısı yerineopenclaw --container <name> ...kullanılır.
Ön koşullar
- Rootless modda Podman
- Ana bilgisayarda kurulu OpenClaw CLI
- İsteğe bağlı: Quadlet yönetimli otomatik başlatma istiyorsanız
systemd --user - İsteğe bağlı: Headless bir ana bilgisayarda önyükleme kalıcılığı için
loginctl enable-linger "$(whoami)"kullanmak istiyorsanız yalnızcasudo
Hızlı başlangıç
Onboarding’i container içinde çalıştırın
./scripts/run-openclaw-podman.sh launch setup komutunu çalıştırın, ardından http://127.0.0.1:18789/ adresini açın../scripts/podman/setup.sh, varsayılan olarak rootless Podman deposundaopenclaw:localderler veya siz ayarladıysanızOPENCLAW_IMAGE/OPENCLAW_PODMAN_IMAGEkullanır.- Eksikse
gateway.mode: "local"ile~/.openclaw/openclaw.jsonoluşturur. - Eksikse
OPENCLAW_GATEWAY_TOKENile~/.openclaw/.envoluşturur. - Manuel başlatmalar için yardımcı betik,
~/.openclaw/.enviçinden yalnızca Podman ile ilgili küçük bir allowlist anahtar kümesini okur ve açık çalışma zamanı env değişkenlerini container’a geçirir; tam env dosyasını Podman’a vermez.
OPENCLAW_PODMAN_QUADLET=1 ayarlayabilirsiniz.
İsteğe bağlı derleme/kurulum env değişkenleri:
OPENCLAW_IMAGEveyaOPENCLAW_PODMAN_IMAGE—openclaw:localderlemek yerine mevcut/çekilmiş bir imaj kullanırOPENCLAW_DOCKER_APT_PACKAGES— imaj derlemesi sırasında ek apt paketleri kurarOPENCLAW_EXTENSIONS— extension bağımlılıklarını derleme zamanında önceden kurar
--userns=keep-id kullanarak başlatır ve OpenClaw durumunuzu container’a bind-mount eder.
Onboarding:
http://127.0.0.1:18789/ adresini açın ve ~/.openclaw/.env içindeki token’ı kullanın.
Ana bilgisayar CLI varsayılanı:
Podman + Tailscale
HTTPS veya uzak tarayıcı erişimi için ana Tailscale belgelerini izleyin. Podman’e özgü not:- Podman yayın ana bilgisayarını
127.0.0.1olarak bırakın. openclaw gateway --tailscale serveyerine ana bilgisayar tarafından yönetilentailscale servetercih edin.- macOS üzerinde, yerel tarayıcı cihaz kimlik doğrulama bağlamı güvenilir değilse, ad hoc yerel tünel geçici çözümleri yerine Tailscale erişimi kullanın.
Systemd (Quadlet, isteğe bağlı)
./scripts/podman/setup.sh --quadlet çalıştırdıysanız, kurulum şu konuma bir Quadlet dosyası yükler:
- Başlat:
systemctl --user start openclaw.service - Durdur:
systemctl --user stop openclaw.service - Durum:
systemctl --user status openclaw.service - Günlükler:
journalctl --user -u openclaw.service -f
Yapılandırma, env ve depolama
- Yapılandırma dizini:
~/.openclaw - Çalışma alanı dizini:
~/.openclaw/workspace - Token dosyası:
~/.openclaw/.env - Başlatma yardımcısı:
./scripts/run-openclaw-podman.sh
OPENCLAW_CONFIG_DIR->/home/node/.openclawOPENCLAW_WORKSPACE_DIR->/home/node/.openclaw/workspace
openclaw.json, agent başına auth-profiles.json, kanal/sağlayıcı durumu,
oturumlar ve çalışma alanı container değişiminden sonra da korunur.
Podman kurulumu ayrıca, yerel dashboard’ın container’ın loopback dışı bind’iyle çalışabilmesi için yayınlanan gateway portunda 127.0.0.1 ve localhost için gateway.controlUi.allowedOrigins değerini de başlatır.
Manuel başlatıcı için yararlı env değişkenleri:
OPENCLAW_PODMAN_CONTAINER— container adı (varsayılanopenclaw)OPENCLAW_PODMAN_IMAGE/OPENCLAW_IMAGE— çalıştırılacak imajOPENCLAW_PODMAN_GATEWAY_HOST_PORT— container18789ile eşlenen ana bilgisayar portuOPENCLAW_PODMAN_BRIDGE_HOST_PORT— container18790ile eşlenen ana bilgisayar portuOPENCLAW_PODMAN_PUBLISH_HOST— yayınlanan portlar için ana bilgisayar arayüzü; varsayılan127.0.0.1OPENCLAW_GATEWAY_BIND— container içindeki gateway bind modu; varsayılanlanOPENCLAW_PODMAN_USERNS—keep-id(varsayılan),autoveyahost
~/.openclaw/.env dosyasını okur; dolayısıyla bunları orada kalıcı hâle getirebilirsiniz.
Quadlet notu:
- Oluşturulan Quadlet hizmeti, kasıtlı olarak sabit ve sağlamlaştırılmış bir varsayılan şekli korur:
127.0.0.1üzerinden yayınlanan portlar, container içinde--bind lanvekeep-iduser namespace. OPENCLAW_NO_RESPAWN=1,Restart=on-failureveTimeoutStartSec=300değerlerini sabitler.- Hem
127.0.0.1:18789:18789(gateway) hem127.0.0.1:18790:18790(bridge) yayınlanır. OPENCLAW_GATEWAY_TOKENgibi değerler için~/.openclaw/.envdosyasını çalışma zamanıEnvironmentFileolarak okur, ancak manuel başlatıcının Podman’e özgü geçersiz kılma allowlist’ini kullanmaz.- Özel yayın portları, yayın ana bilgisayarı veya başka container-run bayraklarına ihtiyacınız varsa manuel başlatıcıyı kullanın veya
~/.config/containers/systemd/openclaw.containerdosyasını doğrudan düzenleyin, ardından hizmeti yeniden yükleyip yeniden başlatın.
Yararlı komutlar
- Container günlükleri:
podman logs -f openclaw - Container’ı durdur:
podman stop openclaw - Container’ı kaldır:
podman rm -f openclaw - Ana bilgisayar CLI’den dashboard URL’sini aç:
openclaw dashboard --no-open - Ana bilgisayar CLI üzerinden sağlık/durum:
openclaw gateway status --deep(RPC probu + ek hizmet taraması)
Sorun giderme
- Yapılandırma veya çalışma alanında izin reddedildi (EACCES): Container varsayılan olarak
--userns=keep-idve--user <your uid>:<your gid>ile çalışır. Ana bilgisayardaki yapılandırma/çalışma alanı yollarının mevcut kullanıcınıza ait olduğundan emin olun. - Gateway başlangıcı engellendi (eksik
gateway.mode=local):~/.openclaw/openclaw.jsondosyasının mevcut olduğundan vegateway.mode="local"ayarladığından emin olun.scripts/podman/setup.sheksikse bunu oluşturur. - Container CLI komutları yanlış hedefe gidiyor:
openclaw --container <name> ...komutunu açıkça kullanın veya kabuğunuzdaOPENCLAW_CONTAINER=<name>dışa aktarın. openclaw update,--containerile başarısız oluyor: Beklenen davranış. İmajı yeniden derleyin/çekin, ardından container’ı veya Quadlet hizmetini yeniden başlatın.- Quadlet hizmeti başlamıyor:
systemctl --user daemon-reload, ardındansystemctl --user start openclaw.serviceçalıştırın. Headless sistemlerde ayrıcasudo loginctl enable-linger "$(whoami)"gerekebilir. - SELinux bind mount’ları engelliyor: Varsayılan mount davranışını değiştirmeyin; başlatıcı, Linux üzerinde SELinux enforcing veya permissive olduğunda otomatik olarak
:Zekler.