openclaw fleet
openclaw fleet, cells olarak adlandırılan eksiksiz OpenClaw örneklerini yönetir. Her cell’ın kendi Gateway’i, durumu, kimlik bilgileri, kanal hesapları, konteyneri ve yalnızca geri döngüye açık ana makine bağlantı noktası vardır. Her kiracı güven sınırı için bir cell kullanın; güvenilmeyen çok kiracılı bir sınır olarak tek bir paylaşılan Gateway kullanmayın.
Fleet deneyseldir. Komut adları, bayraklar, çıktı biçimleri ve konteyner profili, kullanımdan kaldırma geçiş süresi olmadan sürümler arasında değişebilir.
Fleet, Docker ve Podman’ı destekler. Varsayılan imaj ghcr.io/openclaw/openclaw:latest değeridir.
Fleet, Linux ve macOS ana makinelerinde test edilmiştir. Windows ana makineleri şu anda test edilmemiştir.
Hızlı başlangıç
fleet create, oluşturulan Gateway belirtecini cell URL’siyle birlikte bir kez yazdırır. Belirteci hemen saklayın, ardından her kiracının kanal hesaplarını o kiracının cell’ı içinde yapılandırın.
Kiracı kimlikleri
Kiracı kimlikleri şununla eşleşmelidir:../acme gibi dizin geçişi dizeleri reddedilir.
Kimlik, konteyner adının bir parçası olur: openclaw-cell-<tenant>.
fleet create
Bir cell oluşturup başlatın:
--env seçeneğini yineleyerek kiracıya özgü ortam değişkenlerini aktarın:
Oluşturma seçenekleri
Otomatik ayırma,
19100 veya üzerindeki ilk kullanılmayan kayıt defteri bağlantı noktasını seçer. Fleet, yinelenen kiracı kimliklerini ve başka bir cell’a zaten atanmış açık bağlantı noktalarını reddeder.
İmaj başvuruları, tek bir konteyner çalışma zamanı bağımsız değişkeni olarak aktarılır. Bir imajın Docker veya Podman seçeneği olarak yorumlanamaması için boş başvurular ve - ile başlayan değerler reddedilir.
Seçilen Docker veya Podman uç noktası yerel olmalıdır. Fleet, bir bağlantı noktası ayırmadan veya yerel durum oluşturmadan önce uzak Docker bağlamlarını, DOCKER_HOST uç noktalarını ve uzak Podman hizmetlerini reddeder. Uzak cell ana makineleri desteklenmez.
Fleet yeni bir cell başlattığında, oluşturma işlemi Gateway’in /healthz isteğine yanıt vermesi için yaklaşık bir dakika bekler. Cell sağlıklı duruma gelmezse Fleet, fleet status, fleet logs veya açıkça kaldırma işlemi için konteynerini ve kayıt defteri satırını olduğu gibi bırakır. --no-start bu sağlık denetimini atlar. Sağlıksız yeni bir cell’ın oluşturulan Gateway belirteci kaybolmaz; konteyner ortamında (docker|podman inspect) kalır ve cell henüz hiç trafik sunmadığından, fleet rm --force sonrasında yeniden oluşturma her zaman güvenli bir alternatiftir.
Özetle sabitleme
Oluşturma ve yükseltme,--image ghcr.io/openclaw/openclaw@sha256:<digest> gibi özetle sabitlenmiş imaj başvurularını kabul eder. Fleet, imaj başvurusunu olduğu gibi Docker veya Podman’a aktarır; bu da bir operatörün cell’ı değişken bir etiket yerine değişmez imaj baytlarında tutmasını sağlar.
Oluşturma sonucu; kiracı kimliğini, konteyner adını, ana makine bağlantı noktasını, Gateway belirtecini ve yerel URL’yi içerir. Sonuç, JSON çıktısında bile belirteci içerdiğinden gizli bilgi taşıyan bir değer olarak değerlendirilmelidir.
Disk sınırları
--disk yalnızca konteynerin yazılabilir katmanını sınırlar. Bağlama yoluyla monte edilen kiracı başına durum ve kimlik doğrulama dizinleri ana makine depolaması olarak kalır; bu dizinler için de kesin bir sınır gerektiğinde ana makine dosya sistemi proje kotalarını kullanın.
Çıkış politikası
Docker için köprü modunu koruyun ve giden trafik politikasını
DOCKER-USER zinciri gibi ana makine güvenlik duvarı kurallarıyla uygulayın.
fleet list
Cell’ları kiracı kimliği sırasıyla listeleyin:
Docker veya Podman kullanılamadığında kayıt defteri satırları görünür kalır; yalnızca canlı durum
unknown olur.
fleet status
Bir cell’ı inceleyin:
ok, failed veya skipped olur. /healthz, Gateway’in çalıştığını kanıtlar; yapılandırılmış her kanalın veya Plugin’in tam olarak hazır olduğunu kanıtlamaz. Denetlenecek kullanılabilir bir yerel uç nokta olmadığında yoklama atlanır.
fleet logs
Bir cell’ın konteyner günlüklerini doğrudan terminale aktarın:
--follow akışını sonlandırmak için Ctrl-C tuşlarına basın. Günlük çıktısı, terminale herhangi bir şey ulaşmadan önce cell’ın geçerli Gateway belirtecini <redacted> ile değiştiren bir gizleme filtresinden geçirilir.
Konteyner günlükleri ham bir stdout/stderr akışı olduğundan fleet logs için --json modu yoktur. Betiklerde çıktıyı --tail ile sınırlayın ve standart kabuk yönlendirmesi veya işlem hatlarını kullanın.
fleet start, fleet stop ve fleet restart
Mevcut bir hücreyi kayıtlı çalışma zamanı ile denetleyin:
fleet upgrade
Kayıtlı imajı yeniden çekin ve hücre kapsayıcısını değiştirin:
--env ile sağlanan değerleri korur. Bağlanan durum, kapsayıcı değişiminden etkilenmez; imajın varsayılan ortamı hedef imajla birlikte değişebilir.
Değişiklik yalnızca Gateway, hücrenin geri döngü bağlantı noktasında /healthz isteğine yanıt verdikten sonra kesinleştirilir; bu, resmî compose dosyasının kullandığı sistem durumu sözleşmesiyle aynıdır. Çıkan, sürekli çöken veya yaklaşık bir dakika içinde sağlıklı duruma geçemeyen yeni kapsayıcı kaldırılır ve önceki kapsayıcı geri yüklenir; böylece bozuk bir imaj çalışan bir hücreyi devre dışı bırakmaz.
Gateway belirteci kasıtlı olarak fleet kayıt defterinde saklanmaz. Fleet, eski kapsayıcıyı kaldırmadan önce kapsayıcının ortamını okur ve OPENCLAW_GATEWAY_TOKEN değerini yeni kapsayıcıya aktarır. Belirteç denetiminizdeki başka hiçbir yerde bulunmuyorsa yükseltmeden önce eski kapsayıcıyı elle kaldırmayın.
fleet backup ve fleet restore
Durdurulmuş bir hücreyi yedekleyin:
0600 moduyla oluşturulur ve kimlik bilgileri gibi saklanmalıdır. Yedekleme, SQLite durumunun tutarlı biçimde yakalanabilmesi için çalışan bir hücreyi reddeder. Geri yükleme, --force sağlanmadıkça çalışan bir hücreyi reddeder; yalnızca ilgili kiracının durumunu değiştirir, Gateway belirtecini yeniler ve yeni belirteci bir kez yazdırır. Fleet tek seferde bir kiracıyı yedekler; tüm kiracıları yedeklemek ayrı bir operatör işlemidir.
Geri yükleme için mevcut ve durdurulmuş bir kapsayıcı gerekir; çünkü incelenen çalışma zamanı profili yeni kapsayıcının sınırlarını, kullanıcı eşlemesini, ortam kaynağını ve imajını sağlar. Kayıtlı kapsayıcı harici bir yöntemle kaldırıldıysa önce --purge-data olmadan fleet rm <tenant> --force komutunu çalıştırın, hücreyi amaçlanan imaj ve --no-start ile yeniden oluşturun, ardından geri yüklemeyi tekrar deneyin. İlk kaldırma işlemi her iki kiracı veri dizinini de korur.
Her iki komut da arşivlenen veya çıkarılan dosya verilerini sınırlamak için --max-bytes <bytes> kabul eder ve meta veri içeren arşiv bombalarının ana makine inode’larını tüketmesini önlemek ve kabul edilen her yedeğin geri yüklenebilir kalmasını sağlamak için arşiv yolu segmentlerine aynı sabit bir milyonluk bütçeyi uygular. Yedekleme --out <path> kabul eder ve her iki komut da --json destekler.
Arşivler yalnızca normal dosyaları ve dizinleri içerir. Yedekleme sembolik bağlantıları, sabit bağlantıları, yuvaları veya aygıt düğümlerini asla izlemez ya da saklamaz; atlanan öğelerin sayısı sonuçta bildirilir. Geri yükleme, başka türde giriş içeren arşivleri reddeder. Çalışma alanı node_modules gibi yeniden oluşturulabilir sembolik bağlantı ağaçları, geri yüklemeden sonra hücre içinde yeniden kurulmalıdır.
fleet doctor
Çalışma zamanı veya dosya sistemi durumunu değiştirmeden her hücreyi ya da tek bir kiracıyı denetleyin:
fleet rm
Kiracı verilerini koruyarak durdurulmuş bir hücreyi çalışma zamanından ve kayıt defterinden kaldırın:
--force gerekir:
--purge-data, --force gerektirir. Fleet, özyinelemeli silmeden önce hem Fleet’e ait kökleri hem de kiracı başına iki dizini çözümler. Her hedef tam olarak beklenen kiracı yaprağı olmalı, kesin biçimde kendi kökünün içinde bulunmalı ve sembolik bağlantı olmamalıdır. Bu kapsama denetimleri, bozuk bir kayıt defteri yolunun veya kiracılar arası sembolik bağlantının silme işlemini başka bir konuma yönlendirmesini önler.
Tam temizleme, tam olarak beklenen bir kiracı dizini zaten yoksa yeniden denenebilir. Bu, daha sonraki bir çağrının hâlâ mevcut dizinlere ilişkin yol denetimlerini gevşetmeden, kısmi bir dosya sistemi hatasından sonra temizliği tamamlamasına olanak tanır.
Depolama ve kapsayıcı düzeni
Hücre durumu ve kimlik doğrulama profili şifreleme anahtarları, etkin OpenClaw durum dizini altında kiracı başına ayrı ana makine yolları kullanır:/home/node/.openclaw konumuna bağlanır. İkinci dizin, resmî Docker kurulumunun şifreleme anahtarı bağlamasıyla eşleşecek şekilde /home/node/.config/openclaw konumuna bağlanır. Bu nedenle şifreleme anahtarı normal durum bağlamasının altında açığa çıkmaz ve yalnızca hücre durumu dizini yedeklendiğinde veya paylaşıldığında buna dâhil edilmez. Her iki dizin de normal kaldırma ve yükseltme işlemlerinden etkilenmez; fleet rm --purge-data --force, ayrı kapsama denetimlerinden sonra ikisini de siler.
Fleet ilk başlatmadan önce hücre yapılandırmasını gateway.mode=local, belirteç kimlik doğrulaması, LAN kapsayıcı bağlaması ve ayrılan ana makine bağlantı noktası için Control UI kaynaklarıyla başlatır. Belirteç değeri bu yapılandırmaya yazılmaz; kapsayıcı ortamında kalır.
Fleet, resmî imajın kapsayıcı yollarını şu ortam değerleriyle sabitler:
Resmî imaj varsayılan olarak UID 1000’e sahip root olmayan
node kullanıcısını kullanır. Fleet, özel 0700 bağlama bağlantılarını herkesçe erişilebilir hâle getirmeden yazılabilir tutar. Root yetkili Docker, hücreyi çağrıyı yapan root olmayan UID ve GID ile çalıştırır; root olmayan Docker ise kapsayıcı UID 0’ı kullanır ve bu değer daemon’ın kullanıcı ad alanında çağrıyı yapan ayrıcalıksız ana makine kullanıcısına eşlenir. Podman, çağrıyı yapan UID ve GID ile keep-id kullanır. Fleet’in kendisi root yetkili bir çalışma zamanına karşı root olarak çalıştığında imaj kullanıcısını korur ve ilk bağlama dosyalarını UID/GID 1000’e atar.
SELinux ana makinelerinde Docker ve Podman bağlamaları özel bir :Z yeniden etiketlemesi alır. Hücre verilerini geri yükler veya başka bir konuma taşırsanız bağlanan yolları etkin kapsayıcı kullanıcısının yazabileceği durumda tutun. Profil root olmayan kullanıma uygundur ancak Docker veya Podman ana makinede root olmayan çalışma için önceden yapılandırılmış olmalıdır; Fleet, root yetkili bir daemon’ı root olmayan bir daemon’a dönüştürmez.
Güvenlik profili
Fleet her hücreye aşağıdaki profili uygular:
Fleet hiçbir zaman
/var/run/docker.sock bağlamaz, --privileged veya ana makine ağını kullanmaz ya da yetenek eklemez. Hücre başına köprü, hücreler arası bir ayırma sınırıdır; dışa giden trafik için güvenlik duvarı değildir: hücreler sağlayıcılar ve kanallar için gereken ağ çıkışını korur. Geri döngü bağlantı noktasının önüne dağıtımınıza uygun bir proxy, SSH tüneli veya tailnet yapılandırması yerleştirin. http://127.0.0.1:<port> doğrudan yalnızca Fleet ana makinesinden erişilebilir.
Bu profil kiracı kapsayıcılarını birbirinden ayırır ancak kiracıları Fleet operatöründen, kapsayıcı çalışma zamanı yöneticisinden veya güvenliği ihlal edilmiş bir ana makineden korumaz. Eksiksiz güven modeli ve daha güçlü yalıtım seçenekleri için Çok kiracılı barındırma bölümüne bakın.
Belirteç işleme
Varsayılan olarakfleet create, kriptografik olarak rastgele 32 karakterli onaltılık bir Gateway belirteci oluşturur ve bunu oluşturma sonucunda bir kez yazdırır. Belirteci onaylı gizli bilgi yöneticinizde saklayın ve oluşturma çıktısının günlüklere kaydedilmesini önleyin.
--gateway-token, özel bir belirteci yerel işlem bağımsız değişkenlerine yerleştirir; bu belirteç kabuk geçmişinde tutulabilir veya işlem listelerinde görülebilir. Mevcut bir gizli bilgi yönetimi iş akışı sağlanan bir değer gerektirmediği sürece oluşturulan belirteci tercih edin.
Belirteç ve --env ile aktarılan her değer kapsayıcı ortamında bulunur. Fleet bunları kısa ömürlü, 0600 modundaki bir ortam dosyasına yazar, Docker veya Podman’a yalnızca bu dosyanın yolunu aktarır ve çalışma zamanı komutu tamamlandıktan sonra dosyayı kaldırır. openclaw fleet create --gateway-token ... veya --env KEY=VALUE içinde açıkça yazılan değerler, dış openclaw işleminin bağımsız değişkenlerinde ve kabuk geçmişinde yine de görülebilir.
Konteyner ortam değerleri güvenilen ana makine operatöründen gizlenmez: Docker veya Podman yöneticileri bunları konteyner incelemesiyle okuyabilir. Fleet’in “bir kez gösterilir” notu, ana makine yöneticisine karşı korumayı değil, normal CLI çıktısını açıklar.