Containers
Podman
OpenClaw Gateway'ini, mevcut root olmayan kullanıcınız tarafından yönetilen rootsuz bir Podman konteynerinde çalıştırın.
Model:
- Podman, Gateway konteynerini ç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önetimde
sudo -u openclaw,podman execveya ayrı bir hizmet kullanıcısı yerineopenclaw --container <name> ...kullanılır.
Ön koşullar
- Rootless 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 açılış sonrası kalıcılık için
loginctl enable-linger "$(whoami)"kullanmak istiyorsanız yalnızcasudo
Hızlı başlangıç
Tek seferlik kurulum
Depo kökünden ./scripts/podman/setup.sh komutunu çalıştırın.
Bu işlem, rootsuz Podman deponuzda openclaw:local imajını oluşturur (veya ayarlanmışsa OPENCLAW_IMAGE / OPENCLAW_PODMAN_IMAGE imajını çeker), eksikse gateway.mode: "local" içeren ~/.openclaw/openclaw.json dosyasını ve yine eksikse oluşturulmuş bir OPENCLAW_GATEWAY_TOKEN içeren ~/.openclaw/.env dosyasını oluşturur.
İsteğe bağlı derleme zamanı ortam değişkenleri:
| Değişken | Etki |
|---|---|
OPENCLAW_IMAGE / OPENCLAW_PODMAN_IMAGE |
openclaw:local oluşturmak yerine mevcut/çekilmiş bir imaj kullanır |
OPENCLAW_IMAGE_APT_PACKAGES |
İmaj derlemesi sırasında ek apt paketleri kurar (eski OPENCLAW_DOCKER_APT_PACKAGES değişkenini de kabul eder) |
OPENCLAW_IMAGE_PIP_PACKAGES |
İmaj derlemesi sırasında ek Python paketleri kurar; sürümleri sabitleyin ve yalnızca güvendiğiniz paket dizinlerini kullanın |
OPENCLAW_EXTENSIONS |
Desteklenen seçili pluginleri derler/paketler ve çalışma zamanı bağımlılıklarını kurar |
OPENCLAW_INSTALL_BROWSER |
Tarayıcı otomasyonu için Chromium ve Xvfb'yi önceden kurar (1 olarak ayarlayın) |
Bunun yerine Quadlet tarafından yönetilen kurulum için (yalnızca Linux + systemd kullanıcı hizmetleri):
./scripts/podman/setup.sh --quadletAlternatif olarak OPENCLAW_PODMAN_QUADLET=1 ayarlayın.
Gateway konteynerini başlatın
./scripts/run-openclaw-podman.sh launchKonteyneri --userns=keep-id ile mevcut uid/gid değerleriniz altında başlatır ve OpenClaw durumunuzu konteynere bağlama yoluyla bağlar.
İlk kurulumu konteyner içinde çalıştırın
./scripts/run-openclaw-podman.sh launch setupArdından http://127.0.0.1:18789/ adresini açın ve ~/.openclaw/.env dosyasındaki tokeni kullanın.
Model kimlik doğrulaması: kurulum sırasında OpenClaw tarafından yönetilen kimlik doğrulamayı kullanın (Anthropic API anahtarları veya Codex destekli OpenAI için OpenAI Codex tarayıcı OAuth/cihaz kodu kimlik doğrulaması). Podman başlatıcısı, ~/.claude veya ~/.codex gibi ana makine CLI kimlik bilgisi ana dizinlerini kurulum ya da Gateway konteynerine bağlamaz. Ana makinedeki mevcut CLI oturumları yalnızca aynı ana makinede kolaylık sağlayan yollardır -- konteyner kurulumlarında sağlayıcı kimlik doğrulamasını, kurulumun yönettiği ve bağlanan ~/.openclaw durumunda tutun.
Çalışan konteyneri ana makine CLI'sından yönetin
export OPENCLAW_CONTAINER=openclawBundan sonra normal openclaw komutları otomatik olarak bu konteyner içinde çalışır:
openclaw dashboard --no-openopenclaw gateway status --deep # ek hizmet taramasını içeriropenclaw doctoropenclaw channels loginmacOS'te Podman makinesi, tarayıcının Gateway tarafından yerel değilmiş gibi algılanmasına neden olabilir. Denetim Arayüzü başlatmadan sonra cihaz kimlik doğrulama hataları bildirirse Podman ve Tailscale bölümündeki Tailscale yönergelerini kullanın.
Manuel başlatıcı, ~/.openclaw/.env dosyasından yalnızca Podman ile ilgili küçük bir izin listesindeki anahtarları okur ve konteynere açıkça belirtilmiş çalışma zamanı ortam değişkenlerini geçirir; ortam dosyasının tamamını Podman'a vermez.
Podman ve Tailscale
HTTPS veya uzaktan tarayıcı erişimi için ana Tailscale belgelerini izleyin.
Podman'a özgü notlar:
- Podman yayımlama ana makinesini
127.0.0.1olarak tutun. openclaw gateway --tailscale serveyerine ana makine tarafından yönetilentailscale servekullanımını tercih edin.- macOS'te yerel tarayıcının cihaz kimlik doğrulama bağlamı güvenilir değilse geçici yerel tünel çözümleri yerine Tailscale erişimini kullanın.
Bkz. Tailscale ve Denetim Arayüzü.
Systemd (Quadlet, isteğe bağlı)
./scripts/podman/setup.sh --quadlet komutunu çalıştırdıysanız kurulum, ~/.config/containers/systemd/openclaw.container konumuna bir Quadlet dosyası yükler.
| Eylem | Komut |
|---|---|
| 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-reloadsystemctl --user restart openclaw.serviceSSH/başsız ana makinelerde açılış sonrası kalıcılık için mevcut kullanıcınız adına kalıcı kullanıcı hizmetlerini etkinleştirin:
sudo loginctl enable-linger "$(whoami)"Oluşturulan Quadlet hizmeti sabit ve sıkılaştırılmış bir varsayılan yapı kullanır: 127.0.0.1 üzerinde yayımlanan bağlantı noktaları (18789 Gateway, 18790 köprü), konteyner içinde --bind lan, keep-id kullanıcı ad alanı, OPENCLAW_NO_RESPAWN=1, Restart=on-failure ve TimeoutStartSec=300. OPENCLAW_GATEWAY_TOKEN gibi değerler için ~/.openclaw/.env dosyasını çalışma zamanı EnvironmentFile olarak okur ancak manuel başlatıcının Podman'a özgü geçersiz kılma izin listesini kullanmaz. Özel yayımlama bağlantı noktaları, yayımlama ana makinesi veya diğer konteyner çalıştırma bayrakları için bunun yerine manuel başlatıcıyı kullanın ya da ~/.config/containers/systemd/openclaw.container dosyasını doğrudan düzenleyip hizmeti yeniden yükleyerek yeniden başlatın.
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 konteynere bağlama yoluyla bağlar: OPENCLAW_CONFIG_DIR -> /home/node/.openclaw, OPENCLAW_WORKSPACE_DIR -> /home/node/.openclaw/workspace. Bunlar varsayılan olarak anonim konteyner durumu değil, ana makine dizinleridir; böylece openclaw.json, aracı başına auth-profiles.json, kanal/sağlayıcı durumu, oturumlar ve çalışma alanı konteyner değiştirildiğinde korunur. Kurulum ayrıca yerel panonun konteynerin local loopback olmayan bağlamasıyla çalışması için yayımlanan Gateway bağlantı noktasında 127.0.0.1 ve localhost değerlerini gateway.controlUi.allowedOrigins içine başlangıç değerleri olarak ekler.
Manuel başlatıcı için yararlı ortam değişkenleri (bunları ~/.openclaw/.env içinde kalıcılaştırın; başlatıcı, konteyner/imaj varsayılanlarını kesinleştirmeden önce bu dosyayı okur):
| Değişken | Varsayılan | Etki |
|---|---|---|
OPENCLAW_PODMAN_CONTAINER |
openclaw |
Konteyner adı |
OPENCLAW_PODMAN_IMAGE / OPENCLAW_IMAGE |
openclaw:local |
Çalıştırılacak imaj |
OPENCLAW_PODMAN_GATEWAY_HOST_PORT |
18789 |
Konteynerdeki 18789 bağlantı noktasına eşlenen ana makine bağlantı noktası |
OPENCLAW_PODMAN_BRIDGE_HOST_PORT |
18790 |
Konteynerdeki 18790 bağlantı noktasına eşlenen ana makine bağlantı noktası |
OPENCLAW_PODMAN_PUBLISH_HOST |
127.0.0.1 |
Yayımlanan bağlantı noktaları için ana makine arayüzü |
OPENCLAW_GATEWAY_BIND |
lan |
Konteyner içindeki Gateway bağlama modu |
OPENCLAW_PODMAN_USERNS |
keep-id |
keep-id, auto veya host |
Varsayılan olmayan bir OPENCLAW_CONFIG_DIR veya OPENCLAW_WORKSPACE_DIR kullanıyorsanız hem ./scripts/podman/setup.sh hem de daha sonraki ./scripts/run-openclaw-podman.sh launch komutları için aynı değişkenleri ayarlayın -- depo içindeki başlatıcı, özel yol geçersiz kılmalarını kabuklar arasında kalıcılaştırmaz.
İmajları yükseltme
Yeni bir imaj oluşturduktan veya çektikten sonra konteyneri ya da Quadlet hizmetini yeniden başlatın. Yeni bir OpenClaw sürümünün ilk başlangıcında Gateway, hazır olduğunu bildirmeden önce güvenli durum ve plugin onarımlarını çalıştırır.
Gateway hazır duruma gelmek yerine kapanırsa aynı bağlı durum/yapılandırma üzerinde aynı imajı bir kez
openclaw doctor --fix ile çalıştırın, ardından
Gateway'i normal biçimde yeniden başlatın:
OPENCLAW_CONFIG_DIR="${OPENCLAW_CONFIG_DIR:-$HOME/.openclaw}"OPENCLAW_WORKSPACE_DIR="${OPENCLAW_WORKSPACE_DIR:-$OPENCLAW_CONFIG_DIR/workspace}"OPENCLAW_PODMAN_IMAGE="${OPENCLAW_PODMAN_IMAGE:-${OPENCLAW_IMAGE:-openclaw:local}}" podman run --rm -it \ --userns=keep-id \ --user "$(id -u):$(id -g)" \ -e HOME=/home/node \ -e NPM_CONFIG_CACHE=/home/node/.openclaw/.npm \ -v "$OPENCLAW_CONFIG_DIR:/home/node/.openclaw:rw" \ -v "$OPENCLAW_WORKSPACE_DIR:/home/node/.openclaw/workspace:rw" \ "$OPENCLAW_PODMAN_IMAGE" \ openclaw doctor --fixSELinux ana makinelerinde Podman bağlı duruma erişimi engelliyorsa her iki bağlama noktasına da ,Z ekleyin.
Yararlı komutlar
- Konteyner günlükleri:
podman logs -f openclaw - Konteyneri durdur:
podman stop openclaw - Konteyneri kaldır:
podman rm -f openclaw - Pano URL'sini ana makine CLI'sından aç:
openclaw dashboard --no-open - Ana makine CLI'sı üzerinden sağlık/durum:
openclaw gateway status --deep(RPC yoklaması + ek hizmet taraması)
Sorun giderme
- Yapılandırma veya çalışma alanında izin reddedildi (EACCES): Konteyner varsayılan olarak
--userns=keep-idve--user <your uid>:<your gid>ile çalışır. Ana makinedeki yapılandırma/çalışma alanı yollarının mevcut kullanıcınıza ait olduğundan emin olun. - Gateway başlangıcı engellendi (
gateway.mode=localeksik):~/.openclaw/openclaw.jsondosyasının mevcut olduğundan vegateway.mode="local"ayarını içerdiğinden emin olun.scripts/podman/setup.sh, eksikse bunu oluşturur. - İmaj güncellemesinden sonra konteyner yeniden başlıyor: İmajları yükseltme bölümündeki tek seferlik
openclaw doctor --fixkomutunu çalıştırın, ardından Gateway'i yeniden başlatın. - Konteyner 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: Bu beklenen bir durumdur. İmajı yeniden oluşturun/çekin, ardından konteyneri veya Quadlet hizmetini yeniden başlatın.- Quadlet hizmeti başlamıyor:
systemctl --user daemon-reload, ardındansystemctl --user start openclaw.servicekomutunu çalıştırın. Başsız sistemlerde ayrıcasudo loginctl enable-linger "$(whoami)"kullanmanız gerekebilir. - SELinux bağlama noktalarını engelliyor: Varsayılan bağlama davranışını değiştirmeyin; SELinux zorlayıcı veya izin verici moddayken başlatıcı Linux'ta otomatik olarak
:Zekler.