Skip to main content

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:
Bu, 1 ile 40 arasında küçük harfe, rakama ve iç tirelere izin verir. Bir kimlik harf veya rakamla başlayıp 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 cell oluşturup başlatın:
Sabit bir bağlantı noktasında, başlatmadan bir Podman cell’ı oluşturun:
--env seçeneğini yineleyerek kiracıya özgü ortam değişkenlerini aktarın:
Ortam anahtarları harf, rakam ve alt çizgi kullanır ve rakamla başlayamaz. Fleet bunları korumalı bir çalışma zamanı ortam dosyası üzerinden aktardığı için değerler tek satırlı olmalıdır. Fleet, Depolama ve konteyner düzeni altında listelenen, yönetilen konteyner yolu ve Gateway belirteci 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 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:
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 cell’ı inceleyin:
Durum; Fleet kayıt defteri satırını, canlı konteyner incelemesini ve aşağıdaki adrese yönelik kısa, en iyi çaba esaslı bir isteği birleştirir:
Sağlık sonucu 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:
Fleet, herhangi bir günlüğü okumadan önce kayıtlı konteynerin sahiplik etiketlerini doğrular; bu nedenle beklenen cell adını kullanan yabancı bir konteyneri reddeder. Akış, incelenen konteyner kimliğine sabitlenir; böylece eş zamanlı bir değiştirme işlemi akışı daha yeni bir nesle yönlendiremez. Operatörün durdurma işlemini komut hatası olarak değerlendirmeden --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:
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ücre başına 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ücre başına 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, 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:
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 gizli bilgilerini içerir, 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:
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, işlem çıkış kodunu sıfırdan farklı bir değere ayarlar.

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, 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 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:
İlk dizin /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 olarak fleet 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.

İlgili