Containers
Podman
OpenClaw Gateway'i, 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ı: Yalnızca ekransız bir ana makinede önyükleme kalıcılığı için
loginctl enable-linger "$(whoami)"istiyorsanızsudo
Hızlı başlangıç
Tek seferlik kurulum
Depo kökünden ./scripts/podman/setup.sh komutunu çalıştırın.
Bu işlem, rootless Podman deponuzda openclaw:local oluşturur (veya ayarlanmışsa OPENCLAW_IMAGE / OPENCLAW_PODMAN_IMAGE imajını çeker), eksikse gateway.mode: "local" ile ~/.openclaw/openclaw.json oluşturur ve eksikse oluşturulan bir OPENCLAW_GATEWAY_TOKEN ile ~/.openclaw/.env 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ğerini 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 plugin'leri 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 değerini ayarlayın.
Gateway konteynerini başlatın
./scripts/run-openclaw-podman.sh launchKonteyneri mevcut uid/gid değerlerinizle ve --userns=keep-id kullanarak başlatır ve OpenClaw durumunuzu konteynere bind mount ile 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 içindeki token'ı kullanın.
Model kimlik doğrulaması: kurulum sırasında OpenClaw tarafından yönetilen kimlik doğrulamasını 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 dizinlerini kurulum veya gateway konteynerine bağlamaz. Mevcut ana makine 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 bağlı ~/.openclaw durumu içinde tutun.
Çalışan konteyneri ana makine CLI'sinden yönetin
export OPENCLAW_CONTAINER=openclawBundan sonra normal openclaw komutları otomatik olarak bu konteynerin 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'e yerel değilmiş gibi 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.
Manuel başlatıcı, ~/.openclaw/.env içinden yalnızca Podman ile ilgili küçük bir izin listesini okur ve konteynere açık çalışma zamanı ortam değişkenleri aktarır; ortam dosyasının tamamını Podman'a vermez.
Podman ve Tailscale
HTTPS veya uzak tarayıcı erişimi için ana Tailscale belgelerini izleyin.
Podman'a özgü notlar:
- Podman yayımlama ana makinesini
127.0.0.1olarak tutun. - Ana makine tarafından yönetilen
tailscale serveseçeneğiniopenclaw gateway --tailscale serveseçeneğine 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 Control UI.
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ı kurar.
| 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/ekransız ana makinelerde önyükleme kalıcılığı için mevcut kullanıcınız adına lingering'i etkinleştirin:
sudo loginctl enable-linger "$(whoami)"Oluşturulan Quadlet hizmeti sabit ve güçlendirilmiş bir varsayılan yapı kullanır: 127.0.0.1 yayımlanmış 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 doğrudan ~/.config/containers/systemd/openclaw.container dosyasını düzenleyip hizmeti yeniden yükleyerek 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 bind mount ile konteynere 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; dolayısıyla openclaw.json, ajan 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 kontrol panelinin konteynerin loopback dışı bağlamasıyla çalışabilmesi için yayımlanan gateway bağlantı noktasındaki 127.0.0.1 ve localhost için gateway.controlUi.allowedOrigins değerini başlangıçta ayarlar.
Manuel başlatıcı için yararlı ortam değişkenleri (bunları ~/.openclaw/.env içinde kalıcı hâle getirin; 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 |
Konteyner 18789 bağlantı noktasına eşlenen ana makine bağlantı noktası |
OPENCLAW_PODMAN_BRIDGE_HOST_PORT |
18790 |
Konteyner 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 sonraki ./scripts/run-openclaw-podman.sh launch komutları için aynı değişkenleri ayarlayın -- depoya yerel başlatıcı, özel yol geçersiz kılmalarını kabuklar arasında kalıcı hâle getirmez.
İ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şlatılmasında gateway, hazır olduğunu bildirmeden önce güvenli durum ve plugin onarımlarını çalıştırır.
Gateway hazır olmak yerine kapanırsa aynı imajı, aynı bağlı durum/yapılandırmaya karşı
openclaw doctor --fix ile bir kez çalıştırın ve ardından
gateway'i normal şekilde 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 engellerse her iki bind mount'a 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 - Kontrol paneli URL'sini ana makine CLI'sinden aç:
openclaw dashboard --no-open - Ana makine CLI'si üzerinden sağlık/durum:
openclaw gateway status --deep(RPC yoklaması + ek hizmet taraması)
Sorun giderme
- Yapılandırmada veya çalışma alanında izin reddedildi (EACCES): Konteyner 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 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"değerini ayarladığından emin olun. Eksiksescripts/podman/setup.shbunu 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 ulaşıyor:
openclaw --container <name> ...değerini açıkça kullanın veya kabuğunuzdaOPENCLAW_CONTAINER=<name>değişkenini 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-reloadve ardındansystemctl --user start openclaw.servicekomutunu çalıştırın. Ekransız sistemlerdesudo loginctl enable-linger "$(whoami)"da gerekebilir. - SELinux bind mount'ları engelliyor: Varsayılan bağlama davranışını değiştirmeyin; SELinux enforcing veya permissive moddaysa başlatıcı Linux'ta
:Zdeğerini otomatik olarak ekler.