Ana içeriğe atla

openclaw fleet

openclaw fleet, hücreler olarak adlandırılan eksiksiz OpenClaw örneklerini yönetir. Her hücrenin 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 hücre kullanın; düşmanca birden çok kiracılı ortam 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 süresi olmadan sürümler arasında değişebilir. Fleet, Docker ve Podman’ı destekler. Varsayılan imaj ghcr.io/openclaw/openclaw:latest’dir. 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 tokenını hücre URL’siyle birlikte bir kez yazdırır. Tokenı hemen saklayın, ardından her kiracının kanal hesaplarını o kiracının hücresinde yapılandırın.

Kiracı kimlikleri

Kiracı kimlikleri şununla eşleşmelidir:
Bu, 1 ile 40 arasında küçük harfe, rakama ve iç tirelere izin verir. Bir kimlik harf veya rakamla başlamalı ve bitmelidir. Büyük harfler, alt çizgiler, eğik çizgiler, noktalar, boşluklar ve ../acme gibi dizin geçişi dizeleri reddedilir. Kimlik, konteyner adının bir parçası olur: openclaw-cell-<tenant>.

fleet create

Bir hücre oluşturup başlatın:
Sabit bir bağlantı noktasında başlatmadan bir Podman hücresi oluşturun:
--env öğesini yineleyerek kiracıya özgü ortam değişkenlerini geçirin:
Ortam anahtarları harf, rakam ve alt çizgi kullanır ve rakamla başlayamaz. Fleet bunları korumalı bir çalışma zamanı ortam dosyası üzerinden geçirdiğinden değerler tek satırlı olmalıdır. Fleet, Depolama ve konteyner düzeni altında listelenen yönetilen konteyner yolu ve Gateway tokenı değişkenlerini geçersiz kılma girişimlerini reddeder.

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 hücreye 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 geçirilir. 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 hücre ana makineleri desteklenmez. Fleet yeni bir hücre başlattığında, oluşturma işlemi Gateway’in /healthz isteğine yanıt vermesi için yaklaşık bir dakika bekler. Hücre 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 geçidini atlar. Sağlıksız yeni bir hücrenin oluşturulan Gateway tokenı kaybolmaz; konteyner ortamında (docker|podman inspect) kalır ve hücre henüz hiç trafik sunmadığından, fleet rm --force işleminin ardından yeniden oluşturmak her zaman güvenli bir alternatiftir.

Özetle sabitleme

Oluşturma ve yükseltme işlemleri, --image ghcr.io/openclaw/openclaw@sha256:<digest> gibi özetle sabitlenmiş imaj başvurularını kabul eder. Fleet, imaj başvurusunu Docker veya Podman’a olduğu gibi geçirir; bu, operatörün bir hücreyi 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 tokenını ve yerel URL’yi içerir. JSON çıktısında bile token içerdiği için sonucu gizli bilgi taşıyan veri olarak değerlendirin.

Disk sınırları

--disk yalnızca konteynerin yazılabilir katmanını sınırlar. Bağlama yoluyla bağlanan kiracı başına durum ve kimlik doğrulama dizinleri ana makine depolaması olarak kalır; bu dizinlerin de katı bir sınıra ihtiyacı olduğunda 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

Hücreleri kiracı kimliği sırasıyla listeleyin:
Tablo şunları içerir: 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 hücreyi inceleyin:
Durum; Fleet kayıt defteri satırını, canlı konteyner incelemesini ve aşağıdaki adrese yapılan kısa, en iyi çaba esaslı bir isteği birleştirir:
Sağlık sonucu ok, failed veya skipped olur. /healthz, her yapılandırılmış kanalın veya Plugin’in tam hazır olduğunu değil, Gateway’in çalışır durumda olduğunu kanıtlar. Kontrol edilecek kullanılabilir bir yerel uç nokta olmadığında yoklama atlanır.

fleet logs

Bir hücrenin konteyner günlüklerini doğrudan terminale aktarın:
Fleet, herhangi bir günlüğü okumadan önce kayıtlı konteynerin sahiplik etiketlerini doğrular; bu nedenle beklenen hücre adını kullanan yabancı bir konteyneri reddeder. Akış, incelenen konteyner kimliğine sabitlenir; böylece eşzamanlı bir değiştirme işlemi onu daha yeni bir nesle yönlendiremez. Operatörün durdurma işlemini komut hatası olarak değerlendirmeden --follow işlemini sonlandırmak için Ctrl-C tuşlarına basın. Günlük çıktısı, terminale herhangi bir şey ulaşmadan önce hücrenin geçerli Gateway tokenını <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. Betikler için çıktıyı --tail ile sınırlayın ve normal kabuk yönlendirmesi veya ardışık düzenleri kullanın.

fleet start, fleet stop ve fleet restart

Kayıtlı çalışma zamanı aracılığıyla mevcut bir hücreyi denetleyin:
Bu komutlar kayıtlı kapsayıcı adı üzerinde işlem yapar. Kiracı bilinmiyorsa veya kayıtlı çalışma zamanı işlemi gerçekleştiremiyorsa başarısız olurlar.

fleet upgrade

Kayıtlı imajı yeniden çekin ve hücre kapsayıcısını değiştirin:
Hücreyi başka bir imaja taşıyın:
Yükseltme; hedef imajı çeker, mevcut kapsayıcıyı ve hücreye özel ağı inceler, kapsayıcıyı durdurup kaldırır, ardından yeniden oluşturup başlatır. Yeni kapsayıcı; aynı ana makine bağlantı noktasını, veri dizinlerini, hücreye özel köprü ağını, çalışma zamanı profilini, kaynak sınırlarını, yeniden başlatma politikasını, Fleet tarafından yönetilen ortamı ve başlangıçta --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, çökme döngüsüne giren veya yaklaşık bir dakika içinde sağlıklı duruma gelemeyen yeni kapsayıcı kaldırılır ve önceki kapsayıcı geri yüklenir; böylece bozuk bir imaj çalışan hücreyi devre dışı bırakmaz. Gateway belirteci kasıtlı olarak fleet kayıt defterinde saklanmaz. Fleet, eski kapsayıcıyı kaldırmadan önce 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ş tek bir hücreyi yedekleyin:
Bu arşivi kayıtlı hücreye geri yükleyin:
Bunlar, ana makine operatörü ayrıcalıkları gerektiren komutlardır. Arşivler kiracı durumunu ve kimlik doğrulama sırlarını içerir, 0600 kipinde oluşturulur ve kimlik bilgileri gibi saklanmalıdır. SQLite durumunun tutarlı biçimde yakalanabilmesi için yedekleme, çalışan bir hücreyi kabul etmez. Geri yükleme, --force sağlanmadığı sürece çalışan bir hücreyi kabul etmez; yalnızca ilgili kiracının durumunu değiştirir, Gateway belirtecini yeniler ve yeni belirteci bir kez yazdırır. Fleet aynı anda tek bir kiracıyı yedekler; tüm kiracıları yedeklemek ayrı bir operatör işlemidir. Geri yükleme için durdurulmuş mevcut 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 yollarla kaldırıldıysa önce fleet rm <tenant> --force komutunu --purge-data olmadan ç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 olduğu gibi tutar. Her iki komut da arşivlenen veya çıkarılan dosya verilerini sınırlamak için --max-bytes <bytes> kabul eder ve yalnızca meta veri içeren arşiv bombalarının ana makine inode’larını tüketememesi ve kabul edilen her yedeğin geri yüklenebilir kalması için arşiv yol kesitlerine 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 dizinler içerir. Yedekleme; sembolik bağlantıları, sabit bağlantıları, yuvaları veya aygıt düğümlerini hiçbir zaman izlemez ya da saklamaz; atlananların sayısı sonuçta bildirilir. Geri yükleme, başka herhangi bir girdi türü içeren arşivleri reddeder. Çalışma alanındaki node_modules gibi yeniden oluşturulabilir sembolik bağlantı ağaçları, geri yüklemeden sonra hücrenin içinde yeniden kurulmalıdır.

fleet doctor

Çalışma zamanı veya dosya sistemi durumunu değiştirmeden tüm hücreleri ya da tek bir kiracıyı denetleyin:
Doctor; çalışma zamanının yerelliğini, sahiplik etiketlerini, sistem durumunu, sıkılaştırmayı, kaynak sınırlarını, geri döngü bağlantı noktası bağlamasını, belirteç varlığını, ağ sahipliğini ve çıkış modunu ve özel durum dizini izinlerini denetler. Uyarılar durdurulmuş hücreleri veya sahiplik farklılıklarını açıklar; başarısız olan herhangi bir bulgu, sıfırdan farklı bir işlem çıkış koduna neden olur.

fleet rm

Kiracı verilerini koruyarak durdurulmuş bir hücreyi çalışma zamanından ve kayıt defterinden kaldırın:
Çalışan bir kapsayıcı için --force gerekir:
Hücre verilerini de kalıcı olarak kaldırın:
Fleet, hücreye ayrılmış köprü ağını kaldırmadan önce hücre kapsayıcısını kaldırır. --purge-data, --force gerektirir. Fleet, özyinelemeli silmeden önce Fleet’e ait iki kökü ve kiracıya özel iki dizini de çözümler. Her hedef, kendi kökünün kesinlikle içinde bulunan, beklenen kiracı yaprağıyla tam olarak eşleşmeli ve sembolik bağlantı olmamalıdır. Bu kapsama denetimleri, bozulmuş bir kayıt defteri yolunun veya kiracılar arası sembolik bağlantının silme işlemini başka bir konuma yönlendirmesini önler. Beklenen kiracı dizininin zaten bulunmadığı durumlarda temizleme yeniden denenebilir. Bu, kısmi bir dosya sistemi hatasından sonra sonraki bir çağrının, hâlâ var olan dizinlere yönelik yol denetimlerini gevşetmeden temizliği tamamlamasını sağlar.

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ını kullanır:
İlk dizin /home/node/.openclaw konumuna bağlanır. İkinci dizin, resmî Docker kurulumunun şifreleme anahtarı bağlamasıyla eşleşecek biçimde /home/node/.config/openclaw konumuna bağlanır. Bu nedenle şifreleme anahtarı, sıradan durum bağlaması altında açığa çıkmaz ve yalnızca hücre durumu dizini yedeklendiğinde veya paylaşıldığında yedeğe 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 tahsis edilen 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 değerine sahip, root olmayan node kullanıcısını kullanır. Fleet, özel 0700 bağlama bağlantılarını herkes tarafından erişilebilir hâle getirmeden yazılabilir tutar. Root ayrıcalıklı Docker, hücreyi çağrıyı yapan root olmayan UID ve GID ile çalıştırır; root ayrıcalıksız Docker ise kapsayıcı UID 0 değerini kullanır ve bu değer daemon’ın kullanıcı ad alanı içinde ç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 ayrıcalıklı 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 değerine 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ğlama bağlantılı yolların etkin kapsayıcı kullanıcısı tarafından yazılabilir kalmasını sağlayın. Profil root ayrıcalıksız kullanıma uygundur ancak Docker veya Podman, ana makinede root ayrıcalıksız çalışma için önceden yapılandırılmış olmalıdır; Fleet, root ayrıcalıklı bir daemon’ı root ayrıcalıksız hâle 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ücreye özel köprü, hücreler arası bir ayırma sınırıdır; giden trafik 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ı dağıtımınıza uygun bir proxy, SSH tüneli veya tailnet yapılandırmasıyla öne çıkarın. http://127.0.0.1:<port> yalnızca Fleet ana makinesinden doğrudan 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 olarak fleet create, kriptografik olarak rastgele, 32 karakterli onaltılık bir Gateway belirteci oluşturur ve oluşturma sonucunda bir kez yazdırır. Bunu onaylı sır 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 sır yönetimi iş akışı sağlanan bir değer gerektirmiyorsa 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 kipindeki bir ortam dosyasına yazar, Docker veya Podman’a yalnızca bu dosyanın yolunu iletir ve çalışma zamanı komutu tamamlandıktan sonra dosyayı kaldırır. openclaw fleet create --gateway-token ... veya --env KEY=VALUE içine 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üvenilir 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.

İlgili