Containers
Podman
OpenClaw Gateway’i, geçerli root olmayan kullanıcınız tarafından yönetilen root’suz bir Podman kapsayıcısında çalıştırın.
Amaçlanan model şudur:
- Podman, Gateway kapsayıcısını çalıştırır.
- Ana makinenizdeki
openclawCLI kontrol düzlemidir. - Kalıcı durum varsayılan olarak ana makinede
~/.openclawaltında bulunur. - Günlük yönetim,
sudo -u openclaw,podman execveya ayrı bir servis kullanıcısı yerineopenclaw --container <name> ...kullanır.
Önkoşullar
- Root’suz modda Podman
- Ana makinede kurulu OpenClaw CLI
- İsteğe bağlı: Quadlet tarafından yönetilen otomatik başlatma istiyorsanız
systemd --user - İsteğe bağlı: Başsız bir ana makinede önyükleme kalıcılığı için
loginctl enable-linger "$(whoami)"istiyorsanız yalnızcasudo
Hızlı başlangıç
Tek seferlik kurulum
Repo kökünden ./scripts/podman/setup.sh komutunu çalıştırın.
Gateway kapsayıcısını başlatın
Kapsayıcıyı ./scripts/run-openclaw-podman.sh launch ile başlatın.
Kapsayıcı içinde ilk yapılandırmayı ç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.
Çalışan kapsayıcıyı ana makine CLI’ından yönetin
OPENCLAW_CONTAINER=openclaw ayarlayın, ardından ana makineden normal openclaw komutlarını kullanın.
Kurulum ayrıntıları:
./scripts/podman/setup.sh, varsayılan olarak root’suz Podman deponuzdaopenclaw:localoluşturur veya ayarladıysanızOPENCLAW_IMAGE/OPENCLAW_PODMAN_IMAGEkullanır.- Eksikse
gateway.mode: "local"ile~/.openclaw/openclaw.jsonoluşturur. - Eksikse
OPENCLAW_GATEWAY_TOKENile~/.openclaw/.envoluşturur. - Elle başlatmalar için yardımcı,
~/.openclaw/.envdosyasından yalnızca Podman ile ilgili küçük bir izin listesindeki anahtarları okur ve kapsayıcıya açık çalışma zamanı ortam değişkenleri geçirir; tam ortam dosyasını Podman’a vermez.
Quadlet tarafından yönetilen kurulum:
./scripts/podman/setup.sh --quadlet
Quadlet, systemd kullanıcı servislerine bağlı olduğu için yalnızca Linux seçeneğidir.
Ayrıca OPENCLAW_PODMAN_QUADLET=1 ayarlayabilirsiniz.
İsteğe bağlı derleme/kurulum ortam değişkenleri:
OPENCLAW_IMAGEveyaOPENCLAW_PODMAN_IMAGE--openclaw:localoluşturmak yerine mevcut/çekilmiş bir imaj kullanırOPENCLAW_DOCKER_APT_PACKAGES-- imaj derlemesi sırasında ek apt paketleri kurarOPENCLAW_EXTENSIONS-- derleme zamanında Plugin bağımlılıklarını önceden kurarOPENCLAW_INSTALL_BROWSER-- tarayıcı otomasyonu için Chromium ve Xvfb’yi önceden kurar (etkinleştirmek için1olarak ayarlayın)
Kapsayıcı başlatma:
./scripts/run-openclaw-podman.sh launch
Betik, kapsayıcıyı geçerli uid/gid değerinizle --userns=keep-id kullanarak başlatır ve OpenClaw durumunuzu kapsayıcıya bağlama olarak ekler.
İlk yapılandırma:
./scripts/run-openclaw-podman.sh launch setup
Ardından http://127.0.0.1:18789/ adresini açın ve ~/.openclaw/.env içindeki token’ı kullanın.
Ana makine CLI varsayılanı:
export OPENCLAW_CONTAINER=openclaw
Ardından aşağıdakiler gibi komutlar otomatik olarak bu kapsayıcı içinde çalışır:
openclaw dashboard --no-open
openclaw gateway status --deep # includes extra service scan
openclaw doctor
openclaw channels login
macOS’ta Podman makinesi, tarayıcının Gateway’e yerel olmayan şekilde görünmesine neden olabilir. Control UI başlatmadan sonra cihaz kimlik doğrulama hataları bildirirse Podman ve Tailscale bölümündeki Tailscale yönergelerini kullanın.
Podman ve Tailscale
HTTPS veya uzak tarayıcı erişimi için ana Tailscale belgelerini izleyin.
Podman’a özgü not:
- Podman yayımlama ana makinesini
127.0.0.1olarak tutun. openclaw gateway --tailscale serveyerine ana makine tarafından yönetilentailscale servetercih edin.- macOS’ta yerel tarayıcı cihaz kimlik doğrulama bağlamı güvenilir değilse geçici yerel tünel geçici çözümleri yerine Tailscale erişimini kullanın.
Bkz.:
Systemd (Quadlet, isteğe bağlı)
./scripts/podman/setup.sh --quadlet çalıştırdıysanız kurulum, şu konuma bir Quadlet dosyası yükler:
~/.config/containers/systemd/openclaw.container
Yararlı komutlar:
- 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
Quadlet dosyasını düzenledikten sonra:
systemctl --user daemon-reload
systemctl --user restart openclaw.service
SSH/başsız ana makinelerde önyükleme kalıcılığı için geçerli kullanıcınızda kalıcı oturumu etkinleştirin:
sudo loginctl enable-linger "$(whoami)"
Yapılandırma, ortam 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
Başlatma betiği ve Quadlet, ana makine durumunu kapsayıcıya bağlama olarak ekler:
OPENCLAW_CONFIG_DIR->/home/node/.openclawOPENCLAW_WORKSPACE_DIR->/home/node/.openclaw/workspace
Varsayılan olarak bunlar anonim kapsayıcı durumu değil, ana makine dizinleridir; bu nedenle
openclaw.json, ajan başına auth-profiles.json, kanal/sağlayıcı durumu,
oturumlar ve çalışma alanı kapsayıcı değişiminden sonra korunur.
Podman kurulumu ayrıca yerel panonun kapsayıcının loopback olmayan bağlamasıyla çalışması için yayımlanan Gateway bağlantı noktasında 127.0.0.1 ve localhost için gateway.controlUi.allowedOrigins değerlerini hazırlar.
Elle başlatıcı için yararlı ortam değişkenleri:
OPENCLAW_PODMAN_CONTAINER-- kapsayıcı adı (varsayılan olarakopenclaw)OPENCLAW_PODMAN_IMAGE/OPENCLAW_IMAGE-- çalıştırılacak imajOPENCLAW_PODMAN_GATEWAY_HOST_PORT-- kapsayıcı18789bağlantı noktasına eşlenen ana makine bağlantı noktasıOPENCLAW_PODMAN_BRIDGE_HOST_PORT-- kapsayıcı18790bağlantı noktasına eşlenen ana makine bağlantı noktasıOPENCLAW_PODMAN_PUBLISH_HOST-- yayımlanan bağlantı noktaları için ana makine arabirimi; varsayılan127.0.0.1OPENCLAW_GATEWAY_BIND-- kapsayıcı içindeki Gateway bağlama modu; varsayılanlanOPENCLAW_PODMAN_USERNS--keep-id(varsayılan),autoveyahost
Elle başlatıcı, kapsayıcı/imaj varsayılanlarını sonlandırmadan önce ~/.openclaw/.env okur; bu nedenle bunları orada kalıcı hale getirebilirsiniz.
Varsayılan olmayan bir OPENCLAW_CONFIG_DIR veya OPENCLAW_WORKSPACE_DIR kullanıyorsanız aynı değişkenleri hem ./scripts/podman/setup.sh hem de sonraki ./scripts/run-openclaw-podman.sh launch komutları için ayarlayın. Repo yerel başlatıcı, özel yol geçersiz kılmalarını kabuklar arasında kalıcı tutmaz.
Quadlet notu:
- Oluşturulan Quadlet servisi bilinçli olarak sabit ve güçlendirilmiş bir varsayılan şekli korur:
127.0.0.1yayımlanmış bağlantı noktaları, kapsayıcı içinde--bind lanvekeep-idkullanıcı ad alanı. OPENCLAW_NO_RESPAWN=1,Restart=on-failureveTimeoutStartSec=300değerlerini sabitler.- Hem
127.0.0.1:18789:18789(Gateway) hem de127.0.0.1:18790:18790(köprü) yayımlar. OPENCLAW_GATEWAY_TOKENgibi değerler için~/.openclaw/.envdosyasını çalışma zamanıEnvironmentFileolarak okur, ancak elle başlatıcının Podman’a özgü geçersiz kılma izin listesini tüketmez.- Özel yayımlama bağlantı noktalarına, yayımlama ana makinesine veya başka kapsayıcı çalıştırma bayraklarına ihtiyacınız varsa elle başlatıcıyı kullanın veya
~/.config/containers/systemd/openclaw.containerdosyasını doğrudan düzenleyin, ardından servisi yeniden yükleyip yeniden başlatın.
Yararlı komutlar
- Kapsayıcı günlükleri:
podman logs -f openclaw - Kapsayıcıyı durdur:
podman stop openclaw - Kapsayıcıyı kaldır:
podman rm -f openclaw - Ana makine CLI’ından pano URL’sini aç:
openclaw dashboard --no-open - Ana makine CLI üzerinden sağlık/durum:
openclaw gateway status --deep(RPC yoklaması + ek servis taraması)
Sorun giderme
- Yapılandırma veya çalışma alanında izin reddedildi (EACCES): Kapsayıcı varsayılan olarak
--userns=keep-idve--user <your uid>:<your gid>ile çalışır. Ana makine yapılandırma/çalışma alanı yollarının geçerli kullanıcınıza ait olduğundan emin olun. - Gateway başlatması engellendi (eksik
gateway.mode=local):~/.openclaw/openclaw.jsondosyasının var olduğundan vegateway.mode="local"ayarladığından emin olun.scripts/podman/setup.sheksikse bunu oluşturur. - Kapsayıcı CLI komutları yanlış hedefe gidiyor: Açıkça
openclaw --container <name> ...kullanın veya kabuğunuzdaOPENCLAW_CONTAINER=<name>dışa aktarın. openclaw update,--containerile başarısız oluyor: Beklenen durum. İmajı yeniden oluşturun/çekin, ardından kapsayıcıyı veya Quadlet servisini yeniden başlatın.- Quadlet servisi başlamıyor:
systemctl --user daemon-reloadçalıştırın, ardındansystemctl --user start openclaw.serviceçalıştırın. Başsız sistemlerde ayrıcasudo loginctl enable-linger "$(whoami)"gerekebilir. - SELinux bağlamaları engelliyor: Varsayılan bağlama davranışını olduğu gibi bırakın; başlatıcı, SELinux zorlama veya izin verici moddaysa Linux’ta otomatik olarak
:Zekler.