Work: yalıtılmış çalışma alanları
Work, Libre WebUI’nin yerleşik programlama ajanı arayüzüdür. Her görev; kalıcı konuşmayı, açık sağlayıcı rotasını ve ayrı /workspace dosya sistemini birleştirir. Model dosyaları inceleyip değiştirebilir, görevin Docker kapsayıcısında veya Kubernetes Pod’unda komut çalıştırabilir ve önizleme başlatabilir.
Work doğrudan uygulanır; Libre Claw veya ayrı bir daemon kullanmaz.
Tüm API’ler, erişimi bulunan ve kimliği doğrulanmış bir hesap ister. Varsayılan olarak yalnızca yöneticiler erişebilir; erişim, Ayarlar > Kullanıcı Yönetimi sekmesinden tüm etkin kullanıcılara açılabilir (ana bilgisayar klasörleri sunucu yollarını bağladığı için her zaman yalnızca yöneticilere açıktır). Work, korumalı alanda rastgele kabuk komutlarını bilerek çalıştırabilir. Seçilen adlandırılmış ilke kapatmıyorsa görevler çıkış trafiği kullanır. İzin verilen her kullanıcıyı yalnızca sohbet kullanıcısı değil, güvenilir bir çalışma zamanı işletmecisi kabul edin.
Sürümün temel yetenekleri
- Görünür mod seçimi bulunan ayrı Work ve Chat modları.
- Ana yan listedeki görevler, kararlı konumlar ve doğrudan silme.
- Her görev için ayrı korumalı alan kimliği ve kalıcı Docker birimi veya Kubernetes PVC’si; dosyalar kaybolmadan ortam durdurulabilir ya da yeniden oluşturulabilir.
- Konuşma, çalışma durumu, araç etkinliği, model seçimi ve görev sahibi Libre WebUI veritabanında saklanır.
- Asistan metninin, sağlayıcının açıkladığı muhakemenin, araç çağrılarının ve sonuçlarının, kullanımın, becerilerin ve durum değişikliklerinin kimliği doğrulanmış canlı akışı.
- Sunucuya ait iş akışı becerileri, projede yönetim dosyası oluşturmadan modele inceleme, düzenleme, sınama ve önizleme başlatmayı öğretir.
- Araç destekli yerel Ollama modelleri, Ollama Cloud ve yapılandırılmış sağlayıcı eklentileri.
- Masaüstünde fare ve klavyeyle boyutlandırılabilen, küçük ekranlarda geçiş düğmesi bulunan uyarlanabilir Konuşma/Çalışma alanı ayrımı.
- Yerleşik Dosyalar, Etkinlik, Git, Terminal, Önizleme ve Ekran görünümleri; Ekran, Work Computer masaüstünü gösterir.
- Açık ve koyu modda sözdizimi vurgulama, tarayıcıda biçimlendirme, kaydetme çakışması algılama ve geçici taslaklar.
- Uzak sağlayıcı seçildiğinde kullanıcı başına kapatılabilir veri açıklaması.
- Kod, yol, model ID’si ve çıktı yönünü soldan sağa koruyan yerel Arapça sağdan sola düzeni dâhil, Work’ün 25 dilde tam çevirisi.
Kalıcı birim, sürekli çalışan kapsayıcı değil görev çalışma alanıdır. Libre kapsayıcıyı başlatır, durdurur ve gerektiğinde adlandırılmış birimi koruyarak yeniden oluşturur.
Mimari
Korumalı alan ve çalışma alanı adlarını, imajı, birim bağlamasını, kullanıcıyı, sınırları, ağ modunu ve önizleme portunu model veya tarayıcı değil Libre WebUI seçer. Model yalnızca şu araçları alır:
list_filesread_filewrite_filedelete_filemove_filesearch_filesrun_commandstart_previewstop_preview
delete_file ve move_file çalışma alanından çıkmaya izin vermez, sembolik bağlantıları izlemez, dizinler için açık yinelemeli bayrak ister ve hedefin üzerine yazmaz. Dosya yardımcısını kullandıkları için run_command engellendiğinde, önizleme sırasında da çalışırlar.
Model isteklerini Work kapsayıcısı değil sunucu yürütür; bu nedenle kapsayıcının ağ ilkesinden etkilenmezler.
Gereksinimler
- Docker için kurulu ve erişilebilir bir daemon ile sunucu sürecinin
dockerveyaWORK_DOCKER_COMMANDiçindeki programı çağırma izni gerekir. - Kubernetes için ad alanıyla sınırlandırılmış Role ve RoleBinding API kimlik bilgileri, korumalı alan ad alanı ve Helm’in
work.enabled=trueile oluşturduğu NetworkPolicies gerekir.
Ayrıca:
- Sağlıklı Ollama veya Ollama Cloud üzerinden araç destekleyen bir model ya da tam model ve yönetici kimlik bilgileri bulunan etkin completion/chat eklentisi.
- Ortam imajı, projeler ve yerel bağımlılıklar için yeterli bellek.
- Work erişimi olan kimliği doğrulanmış hesap; varsayılan olarak yalnızca yöneticiler erişir, ancak tüm etkin kullanıcılara açılabilir.
Libre, Ollama’nın bildirdiği yetenekleri denetler ve tools desteği olmayan modeli reddeder. Eklenti modeli, sağlayıcısının araç çağrısı protokolünü desteklemelidir. Red, sessiz geçiş yapmadan çalışmayı sonlandırır.
Yerel çalıştırma
Tek bilgisayardaki en basit seçenek:
docker info
npx libre-webui@latest
http://localhost:8080 adresini açın, yönetici olarak oturum açın, Work’ü ve uyumlu bir modeli seçip görevi açıklayın.
Docker yoksa veya erişilemiyorsa Work, nedeni belirten Çalışma zamanı kullanılamıyor iletisini gösterir ve başlatmayı kapatır. Komutlar hiçbir zaman doğrudan ana bilgisayarda çalıştırılmaz.
İlk kullanımda ortam imajı denetlenir ve yoksa otomatik indirilir; bu nedenle işlem daha uzun sürebilir.
Work arayüzü
Oluşturma ve yeniden açma
Work’ü seçin, yönergeyi girin, modeli seçin ve Çalıştır düğmesine basın. İlk ileti görevi, ilk çalışmayı, sağlayıcı rotasını ve kalıcı çalışma alanını oluşturur.
Görev ana yan çubukta kalır. Yeniden açmak son konuşmayı, Dosyalar sekmesini, geçerli sağlayıcıyı ve modeli, ayrıca çalışma alanını geri yükler. Eski iletiler sayfalar hâlinde yüklenir. Görev başlığından yeniden adlandırılabilir; menüden veya yan çubuktan silinebilir.
Bir görevde aynı anda yalnızca bir çalışma etkin olabilir; sonraki yönerge aynı konuşmayı ve dosya sistemini kullanır.
Oluşturucu dikteyi destekler: mikrofon düğmesi tarayıcının konuşma API’sini veya yapılandırılmış konuşma tanıma modelini kullanır ve dökümü yazılmış metne ekler. Oluşturulan veya taşınan dosyalar, ilgili araç eyleminin altında tıklanabilir rozetler olarak görünür; tıklamak dosyayı düzenleyicide açar ve dar ekranda çalışma alanına geçer. Rozetleri yalnızca değişiklik yapan araçlar oluşturur; bu nedenle yirmi okuma ve bir yazma tam olarak bir artefakt gösterir.
Ajan olarak işe alma
Persona varsa Ajan olarak işe al eylemi kullanılabilir: görev, kalıcı ve adlandırılmış bir ajan olur. Persona çalışmalar arasında korunur; adı ve sistem istemi Work isteminden önce gelir, ancak korumalı alan sözleşmesi her zaman önceliklidir. Yan çubuk ajanları tek seferlik görevlerin üstündeki Ajanlar grubuna yerleştirir ve avatar, etkinlik ile durumu gösterir. Yan çubuk daraltıldığında rayda yalnızca bu sabitlenmiş ajan avatarları kalır; tek seferlik Work görevleri yan çubuk genişletilince geri döner.
Durum satırının iki katmanı vardır. İşe alınmış bir ajan için çalışmadan sonra, araçsız ve düşük maliyetli bir model isteği yaklaşık 8 sözcüklük durum ister (“Gelen kutusu boş. 2 yanıt hazır.”); yanıt 90 karakterlik tek satırla sınırlıdır. Hata veya zaman aşımında asistanın son yanıtının ilk satırı kullanılır. Tek seferlik görevler ve başarısız çalışmalar yalnızca bu belirlenimci yedeği kullanır; WORK_STATUS_BLURB_MODEL=0 isteği tamamen kapatır. Görevi açmak cihazlar arasında eşitlenen, yalnızca ileri giden görüntüleme işaretini ilerletir; nokta daha yeni bir son çalışma bulunduğunu gösterir.
Ajanlar çalışmayı bildirimler üzerinden bildirir: work-run-finished, work-run-attention ve work-takeover. Ekran başlığı yalnızca açık sekmede görünür; push bildirimi kullanıcıya başka yerde de ulaşır. Her bağlantı doğrudan ajana gider.
Kendi persona’nızı veya paylaşılan bir persona’yı kullanabilirsiniz; paylaşılan görüntüleme sahibin anılarını açığa çıkarmaz. Persona silinirse ajan onsuz çalışmaya devam eder ve uyarı kaydeder. API personaId ve isAgent kabul eder; persona içeren görev otomatik olarak ajan olur.
Agent sekmesi
İlk ek sekme Agent’tır:
- Kimlik: avatar, ad, etkinlik göstergesi ve son durum satırı.
- Ekran: Work Computer varsa salt görüntülenebilir, küçük canlı önizleme. Bu tam bir bağlantıdır ve sınıra dâhildir; tıklamak devralma, öğretme ve ses denetimleriyle tam ekranı açar.
- Rutinler: görevle ilişkili otomasyonlar. Her tetikleme yeni görev olarak değil, aynı çalışma alanı ve konuşmada ajanın modeli ve ortamıyla çalışır; bu nedenle sabah raporu tek yerde birikir. Satırlar zamanlamayı ve duraklatma anahtarını gösterir; + Rutin formu ajana zaten bağlıdır. Meşgul ajan tetiklemesi kuyruğa girmeden açıkça
work-task-busyile sonlanır. - Otomatik İnceleme: bu ajana özgü onay anahtarı ve ajanın topladığı “her zaman izin ver” kuralları (bir kuralı kaldırmak kapsamını yeniden daraltır). Görevin ilkesi incelemeyi zorunlu kılıyorsa anahtar açık konumda kilitlenir.
- Öğretilen beceriler: etkinleştirme anahtarı bulunan gösterilmiş rutinler.
Bağlı araçlar (MCP ve OpenAPI sunucuları)
Work ajanları, Chat için yapılandırılan aynı araç sunucularını çağırabilir — yöneticinin Ayarlar → Araçlar altında kaydettiği MCP veya OpenAPI sunucuları. Araçlar ajana ad alanlı adlarıyla (server__tool) görünür ve çağrılar korumalı alanın içinden değil, Libre WebUI arka ucundan sağlamlaştırılmış araç ağ geçidi üzerinden çalışır (SSRF korumalı çıkış, kullanıcı başına kimlik bilgileri, boyut ve süre sınırları).
Sunulan liste, özerk bir çalışmanın gerçekte neyi kullanabileceği konusunda dürüsttür:
- Çevrimdışı görev hiçbirini almaz: çıkış arka uçtan olsa bile ağ erişimi olmayan görev çevrimdışı kalır —
web_searchile aynı gerekçe. - Kullanıcının saklamadığı kişisel bir kimlik bilgisi isteyen sunucu, sunum sırasında listeden çıkarılır, çünkü özerk bir çalışma durup bunu isteyemez. Kimlik bilgisini Ayarlar → Araçlar altında ekleyin; sonraki çalışma sunucuyu sunar.
- Araç erişim kipi (yalnız yöneticiler veya tüm kullanıcılar) ve sunucu başına görünürlük Chat’teki gibi geçerlidir; persona’nın araç sunucusu bağlamaları da işe alınan ajanın gördüğü sunucuları daraltır.
- Onaylar etkinken, sunucunun yan etkili saydığı bağlı araçlar diğer denetlenen eylemler gibi kararınız için durur; salt okunur araçlar sormadan çalışır.
Ajanlar arası devretme (@-anmaları)
İşe alınan ajanlar işi birbirine devredebilir. Work yazma alanında @ yazarak diğer ajanlarınızdan birini anın; geçerli ajan yönergelerinde akran listesini (adlar ve durum satırları) görür ve uygun istekleri message_agent aracıyla devreder. Devretme, paylaşılan bilgisayarlarla değil bilinçli olarak iletilerle yapılan bir eşgüdümdür: her ajan kendi yalıtılmış çalışma alanını ve korumalı alanını korur, hedef ajan devreden konuşmayı göremez; bu yüzden istek kendi bağlamını taşımalıdır.
Devretme eşzamansızdır. Araç hemen döner, hedef ajan kendi görevinde çalışır (konuşmasında istek, gönderen tarafından Devredildi etiketiyle görünür) ve iş bittiğinde — tamamlandı, girdi gerekli, başarısız ya da iptal — son yanıtı devreden ajanın konuşmasına o ajandan Rapor etiketli bir ileti olarak ulaşır. Devreden ajan hâlâ çalışıyorsa rapor bir sonraki turda modeline ulaşır; boştaysa rapor konuşmada bekler — rapor hiçbir zaman kendiliğinden çalışma başlatmaz, bu yüzden iki ajan birbirine top çeviremez. Devredilen çalışmalar yeniden devredemez, meşgul hedef kuyruğa girmek yerine denemeyi açıkça başarısız kılar ve onaylar etkinken message_agent de diğer yan etkili eylemler gibi inceleme için durur (“her zaman izin ver” kuralı yalnız o tek hedef ajanla sınırlıdır).
Eylem onayları (Otomatik İnceleme)
Yan etkili eylemler çalışmadan önce kararınız için durabilir. Bir görevde onaylar etkinken — Work ilkesinde Yan etkili eylemler için onay iste seçiliyse ya da ajanın Otomatik İnceleme anahtarı açıksa — çalışma run_command, computer_act, delete_file, move_file veya message_agent yürütülmeden önce durur ve konuşmada bir karar kartı gösterir: Bir kez izin ver, Her zaman izin ver veya Reddet.
- Bir kez izin ver yalnız bu çağrıyı çalıştırır ve bir dahakine yeniden sorar.
- Her zaman izin ver çağrıyı çalıştırır ve göreve bir kural yazar: dosya ve bilgisayar eylemleri için araç genelinde,
run_commandiçin komutun programıyla (ilk sözcüğüyle) sınırlı —npm run buildonayı sonrakinpmkomutlarını önceden onaylar, kabuğun tamamını değil — vemessage_agentiçin yalnız o tek hedef ajanla sınırlı. Kurallar Agent sekmesinin Otomatik İnceleme bölümünde listelenir ve oradan kaldırılabilir. - Reddet çağrıyı geri çevirir. Modele kullanıcının eylemi reddettiği ve aynı biçimde yeniden denememesi gerektiği bildirilir; çalışma bu yanıtla sürer.
Bekleyen onay ayrıca bildirim üretir (uygulama içi ve etkinse web push), çünkü çalışma bu kapıya gözetimsiz geçen dakikalardan sonra gelmiş olabilir. Beş dakika içinde kimse karar vermezse istek zaman aşımına uğrar, eylem yürütülmez ve çalışma bütçesini tüketmek yerine olağan bir devirle Girdi gerekli durumunda biter.
Onaylar görünürlüğü değil eylemleri denetler: write_file ve salt okunur araçlar denetim dışıdır ve her karar güvenlik denetim günlüğüne düşer.
Görev durumu
| Arayüz | Sunucu durumu | Renk |
|---|---|---|
| Boşta | idle | rgb(255, 255, 255) |
| İşleniyor | preparing veya running | rgb(48, 121, 255) |
| Hazır | completed | rgb(76, 212, 117) |
| Girdi gerekli | needs_input veya cancelled | rgb(255, 204, 0) |
| Hata | failed | rgb(255, 61, 129) |
Etkin çalışmayı durdurmak durumu Girdi gerekli yapar ve dosyaları korur. Tur veya araç bütçesi tükenirse araçsız son devirden sonra aynı durum kullanılır; tamamlanmamış iş Hazır olarak işaretlenmez.
Etkin çalışma konuşmayı engellemez: gönderilen ileti hemen eklenir ve sonraki turda modele ulaşır. Böylece durdurmadan yönlendirme, düzeltme ve bağlam ekleme yapılabilir; durdurma düğmesi gönderme düğmesinin yanında kalır.
Boyutlandırma
Masaüstü xl genişliğinde konuşma ve çalışma alanı sürüklenebilir ayırıcıyla bölünür:
- Varsayılan konuşma genişliği %45’tir.
- İçeriğin en küçük genişliği hesaba katılarak tercih edilen aralık %30–%70’tir.
- Saklanan oran bu tarayıcıda oturum açan kullanıcıya aittir.
- Ok tuşları sınırı %2, Shift ile %10 taşır.
- Home ve End kullanılabilir en küçük ve en büyük değeri seçer.
- Enter veya çift tıklama bölmeyi sıfırlar.
Denetimler yazı yönünü izler. Arapça’da konuşma sağda, çalışma alanı soldadır; işaretçi ve oklar beklenen görsel yönde çalışır.
Küçük ekranlarda görev başlığındaki geçiş düğmesini kullanın.
Dosyalar
Dosyalar sekmesi /workspace içeriğini doğrudan listeler, yalnızca geçerli UTF-8 metin dosyalarını açar ve değişiklikleri görev birimine kaydeder. Geçersiz bayt dizileri veri kaybıyla değiştirilmez, reddedilir.
Düzenleyici şunları sunar:
- yaygın diller için açık ve koyu modda sözdizimi vurgulama;
Cmd/Ctrl+Sile kaydetme;Shift+Alt+File biçimlendirme;- iyimser kaydetme çakışması algılama;
- oturum belleğinde göreve ve yola özel taslaklar; ve
- kaydedilmemiş değişikliklerle ayrılırken uyarı.
Canlı vurgulama 8,000 karakter veya 400 satırın üzerinde duraklatılır. JavaScript/JSX, TypeScript/TSX, JSON türleri, CSS/SCSS/Less, HTML, Markdown/MDX ve YAML için biçimlendirme 100,000 karakter ve 4,000 satıra kadar kullanılabilir.
Model açık dosyayı değiştirdiğinde sekme turun başından itibaren kırmızı-yeşil farkı gösterir ve uzun değişmemiş bölümleri daraltır. Geçiş düğmesi fark ile düzenleyici arasında geçer; +added −removed sayaçları kısa özet verir. Temel, tarayıcının turdan önce gördüğü içeriktir; turdan sonra ilk kez açılan dosyada fark gösterilmez.
Taslak kolaylık içindir, yedek değildir; kaydetme, görevi silme veya oturum sonrasında temizlenir.
Etkinlik
Sekme araç çağrılarını ve sonuçlarını, dosya işlemlerini, komut çıktısını ve hataları gösterir. Meta veriler genişletilebilir. Sağdan sola arayüzde bile çıktı soldan sağa görüntülenir.
Etkin çalışma şu olayları içeren kimliği doğrulanmış SSE akışı açar:
snapshot,run_state;- sağlayıcı muhakemeyi açıklıyorsa
reasoning_delta; assistant_delta;tool_call,tool_result;usage;skill_loaded; veerror,done.
Muhakemenin kullanılabilirliği modele ve sağlayıcıya bağlıdır; Libre yalnızca API’nin döndürdüğü içeriği gösterir ve gizli düşünce zincirini yeniden oluşturamaz. Bazı modeller bunu hiç göndermez. Metin ve araç eylemleri birbirinden bağımsız akabilir.
Çıktı bilerek sınırlıdır; kesilmiş sonuç devamının olmadığını kanıtlamaz. Modelden daha dar bir sonucu denetlemesini isteyin.
Git
Git sekmesi /workspace içinde yerel işlemler yapar:
- depoyu
maindalıyla başlatır; - porcelain durumunu, geride/ileride sayısını ve en fazla 20 commit’i gösterir;
- sınırlı fark gösterir;
- en fazla 200 yolu stage eder;
- yönetici adı ve e-postasıyla veya yerel no-reply adresiyle commit oluşturur;
- ilk commit’ten sonra dal oluşturur; ve
- çalışma ağacı temizse mevcut dala geçer.
Yüzey yalnızca yereldir: clone, fetch, pull, push, uzak depo yönetimi, rastgele komut, belirteç, SSH anahtarı veya pull request yoktur. Bunlar için ayrı ve güvenilir bir kimlik bilgisi aracısı gerekir; tercihen tek depo ve işlemle sınırlandırılmış GitHub App ya da eşdeğer kurulum belirteci kullanın. Uzun ömürlü kimlik bilgilerini çalışma alanında, kapsayıcı ortamında veya depo yapılandırmasında saklamayın.
Git okuma boşta ve etkin görevlerde kullanılabilir. Model çalışması, terminal veya önizleme kapsayıcıya sahipken yazma reddedilir; dal değiştirmek için temiz ağaç gerekir. Bu, yarışları önler.
Arayüz komutları sabit bağımsız değişken dizileri kullanır ve 1000:1000 olarak çalışır; girdi kabuk tarafından değerlendirilmez. Ortam, sistem ve genel yapılandırmayı, istemleri, hook’ları, kimlik bilgisi yardımcılarını, imzalamayı, alt modülleri, dış farkları, textconv’u ve ağ protokollerini kapatır. Çalışma ağacı /workspace değilse veya Git dizini bunun dışına çıkarsa depo reddedilir. Çalıştırılabilir clean, smudge veya process filtresi varsa yazma da engellenir.
Bu, Libre WebUI Git API’sini korur. Yönetici terminalden, model de run_command üzerinden normal Git komutlarını yine çalıştırabilir; bu nedenle rastgele komutlar korumalı alan ve dağıtım sınırıyla kısıtlanır.
Yerleşik iş akışı becerileri
Her çalışma; kalıcı /workspace sınırı, salt okunur kök, geçici süreçler ve /tmp, ağ, sınırlar ve önizleme yaşam döngüsü hakkında sunucuya ait bir başvuru alır. Beceriler şunları ister:
- düzenlemeden önce yönergeleri, manifestleri, kilit dosyalarını, betikleri ve depo durumunu incelemek;
- ilgisiz çalışmayı korumak ve bağımsız okumaları birleştirmek;
- planda durmak yerine uygulamayı sürdürmek;
- daha geniş sınamadan önce hedefli sınama yapmak;
- körlemesine yinelemek yerine hatayı tanılamak; ve
- önizlemeyi son uzun süreç olarak başlatmadan önce uygulamayı doğrulamak.
Başvuru yalnızca model bağlamında bulunur. Libre AGENTS.md, beceri dizini veya başka yönetim dosyası oluşturmaz. Proje yönergeleri güvenlik sınırını geçersiz kılamaz.
Terminal
Etkileşimli kabuk aynı korumalı alana bağlanır; böylece yönetici durumu inceleyebilir, projeyi derleyebilir ve hata ayıklayabilir.
Aynı ilkeyi kullanır: ayrıcalıksız 1000:1000, /workspace dizini ve capabilities bulunmayan güçlendirilmiş kapsayıcı. Terminal run_command aracından daha fazla yetki vermez; yalnızca insana aynı sınır için arayüz sağlar.
- Kimlik doğrulama — normal Authorization başlığı HTTP üzerinden protokole ve tam göreve bağlı, kısa ömürlü, tek kullanımlık bilete dönüştürülür.
/ws/work-terminaliçinde yalnızca bilet ve görev ID’si bulunur. Her girdiden önce hesap, erişim, görev ve sahip yeniden denetlenir; erişim iptali oturumu kapatır ve kirayı bırakır. - Origin denetimi —
CORS_ORIGINveyaBASE_URLayarlandığında tarayıcı origin’i eşleşmelidir. Uzak dağıtım için en az birini yapılandırın. Electron ve tarayıcı dışı istemciler Origin göndermeyebilir, ancak aynı bileti ve denetimi ister; bunları TLS, güvenlik duvarı ve proxy ile yönetin. - Kabul — terminal çalışma zamanı kirası alır ve
WORK_MAX_ACTIVE_RUNTIMES_*sınırlarına dâhil edilir. - Kapsayıcı ömrü — bağlı terminal kapsayıcıyı tutar; boşta olarak durdurulmasını önler.
- Eşzamanlılık —
WORK_TERMINAL_MAX_SESSIONS_PER_TASKvarsayılan olarak 2’dir. - Boşta kalma zaman aşımı —
WORK_TERMINAL_IDLE_TIMEOUT_MSvarsayılan olarak 15 dakikadır. - Etkin çalışma — terminal model turunun bitmesini bekler.
TTY yakalanmış iki yönlü akış istediği için terminal doğrudan Docker Engine API’ye erişir. Sırasıyla WORK_DOCKER_SOCKET, ardından DOCKER_HOST — unix:// soketi veya Connection: Upgrade tüneli bulunan proxy üzerinden düz HTTP tcp:// — ve son olarak /var/run/docker.sock kullanılır. Desteklenmeyen ssh:// veya DOCKER_TLS_VERIFY içeren tcp://, Work’ün geri kalanını etkilemeden açıklamayla terminali kullanılamaz yapar. Kubernetes, Docker olmadan yeniden boyutlandırma dâhil exec API alt kaynağının TTY WebSocket’ini kullanır.
Etkileşimli oturumlar kaydedilmez; komutlar Etkinlik bölümünde görünmez.
Önizleme
Önizleme uygulamayı başlatır, durdurur, gömer ve açar. Boş komut alanı şunları algılar:
- gereken ana bilgisayar ve portla kök
package.jsoniçindekidevbetiği; - yerleşik statik sunucunun sunduğu kök
index.html; ya da - iç dizindeki tek uygulama.
Kök uygulama önceliklidir. Birden fazla eşdeğer iç uygulama veya eksik giriş noktası rastgele npm komutu yerine açık hata verir. Başka bir proje için Önizlemeyi başlat öncesinde komut belirtin; komut /workspace içinde başlar, örneğin cd apps/web && npm run dev -- --host 0.0.0.0 --port 4173. Süreç 0.0.0.0 ve WORK_PREVIEW_PORT üzerinde dinlemeli ve 15 saniye içinde hazır olmalıdır.
Model start_preview kullanabilir; bu, uzun bir süreci açık bırakmanın desteklenen tek yoludur. run_command tamamlanınca arka plan alt süreçlerini temizler.
Ekran (Work Computer)
Tam demo: ajanın NASA’yı kendi gezdiği, fotoğrafları seçtiği ve tek istemle Three.js galerisi oluşturup sınadığı gerçek, düzenlenmemiş çalışma (30x, ardından gerçek zamanlı).
Work Computer ilkesi Ekran sekmesini ekler: aynı korumalı alandaki sanal masaüstünün canlı penceresi; pencere yöneticisi, panel ve 1280×800 çözünürlüklü Chromium. Ajanı izleyebilir, fare ile klavyeyi devralabilir, bilgisayar sesini dinleyebilir ve eylemleri göstererek öğretebilirsiniz. Sekmeyi açmak isteğe bağlı grafik oturumu başlatır (gözlemci gelene kadar hiçbir şey çalışmaz) ve WebSocket üzerinden VNC görünümünü bağlar.
Yönetici tek tıklamayla Etkinleştir seçeneğini kullanır: Libre, elle docker build gerektirmeden dağıtımın Docker daemon’unda yerleşik grafik imajı (ilk kez birkaç dakika sürer) ve hazır ilke oluşturur. Filtreli proxy arkasında derleme uç noktası bilerek kapalıdır; bunun yerine imajı (ghcr.io/libre-webui/libre-work-computer, libre-work-computer:latest etiketi) ana bilgisayarda indirin veya deploy/work-computer/ konumundan derleyin; düğme yalnızca ilkeyi oluşturur. Ekrana da önizleme gibi loopback’te yayımlanan porttan erişildiği için görevlerin ağa ihtiyacı vardır.
Kapsayıcı içindeki VNC sunucusu localhost’ta dinler ve oturum başına iki parola kullanır: her izinli gözlemci salt görüntüleme parolasını, yalnızca geçerli denetim kirası sahibi tam parolayı alır. Böylece sunucu diğer girdileri kendisi yok sayar. WebSocket köprüsü, yalnızca ana bilgisayar loopback’inde yayımlanan tek erişilebilir yüzeydir. Her gözlemci terminaldeki gibi tek kullanımlık oturum ve görev biletiyle kimliğini doğrular; her bağlantıda Work erişimi denetlenir, iptal ekranı hemen keser. Aynı anda en fazla dört gözlemci kabul edilir ve izleme görev etkinliği sayılır.
Görüntüleme yürütmeyle yarışmaz: çalışma sırasında açmak aynı korumalı alana bağlanır, izlenen ekran sonraki çalışmayı engellemez ve oturum dış worker kullanan team dağıtımında bile tamamlanmadan sonra kalır. Tarayıcı profili /workspace/.browser-profile içinde saklandığı için oturum açmalar kapsayıcı yeniden başlatmasını aşar.
Ajan denetimi iki araç kullanır. computer_observe tam ekran görüntüsünü, işaretçi konumunu, etkin pencereyi, tarayıcının geçerli URL’sini, sayfa veya tarayıcı arayüzü odağını, odaktaki öğenin kısa açıklamasını ve görüntü karmasını döndürür. Anlamsal sinyaller kapsayıcının loopback’indeki DevTools’tan gelir ve eski imajlarda yoktur. computer_act taşıma, tıklama, çift veya sağ tıklama, yazma, tuş birleşimi, kaydırma ve bekleme eylemlerinden en fazla 24’ünü paket hâlinde çalıştırır; kararlı duruma geldikten sonra görüntü döndürür.
Koruma üç yerde çalışır: type ve key eylemleri beklenen focus değerini bildirebilir; alan odakta değilse metin adres çubuğuna gitmesin diye güvenli hatayla biter. Pencere açılır, başlık veya odak değişirse kalan koordinatlar eskidiği için paket durur. Paket beklenen başlığı, URL’yi veya bölge değişimini bildirebilir; ortam bunu uyarlanabilir süreyle doğrular ve bekleme durumunu başarı saymaz.
Paket sonrasında ekran sabit gecikme yerine kararlılığa ulaşana kadar yoklanır. Sonuçlar kanıt içerir: tıklama yakındaki piksellerin değişimini bildirir, scroll_until metne veya kenara kadar kaydırıp görünürlüğü bildirir, her gözlem öncekiyle karşılaştırılır ve değişiklik yokluğu açıkça söylenir. Tek satırlık subgoal kontrol noktası olarak saklanır ve kurtarmada yinelenir. Değişmeyen ekranda üç aynı eylem uyarı verir; tekrar, çalışmayı girdi isteyerek bitirir. Art arda doğrulanmamış beklemeler yeni gözlem gerektirir. Tur, gecikme, görüntü, koruma ve karar telemetrisi araçlar ve sonuçla birlikte kaydedilir.
Ekran görüntüleri Ollama, Anthropic, Gemini ve OpenAI uyumlu Chat ile Responses rotalarının tümünde gerçek görüntü olarak iletilir; bu nedenle denetim için görsel model seçmek daha iyidir. Sağlayıcı görüntüyü reddederse çalışma hatayla bitmez: görüntüler çalışmanın geri kalanı için çıkarılır, model metin gözlemlerine geçer ve günlük açıklama içerir. Bu doğrulama belirgin biçimde daha zayıftır. Geçerli bağlamda yalnızca son görüntüler kalır; kalıcı günlük hiçbir zaman görüntü baytlarını değil yalnızca metni saklar.
Tarayıcıda içerik engelleme yerleşiktir: reklam ve izleyiciler için uBlock Origin Lite (sürüm sabitlenir ve derlemede sağlama toplamıyla doğrulanır; filtre modu yönetilen ilkeyle ayarlanır) ve cookie onay başlıklarını otomatik kapatma. Böylece reklamlar ekran görüntüsü, belirteç ve tıklama tüketmez. Bilinen reklam betikleri güvenli yerel ikamelerle değiştirilir; sayfalar çalışmaya devam eder. Ajanın kimlik bilgisi girmesi ve CAPTCHA veya 2FA geçmesi yasaktır; engeli bildirir. Güvenilmeyen görevlerde grafik ilkesini filtreli DNS ile birleştirin: masaüstü tarayıcısı çıkış denetimini daha önemli kılar.
Tarayıcı tıklama istediği için ses varsayılan olarak kapalıdır. Hoparlör düğmesi bilgisayar sesini gerçek zamanlı aktarır. PulseAudio sesi boş alıcıda oynatır; monitör ham PCM’yi aynı biletler, yeniden erişim denetimi ve gözlemci sınırıyla loopback’teki ikinci kimliği doğrulanmış WebSocket üzerinden taşır. deploy/work-computer/ içindeki güncel imaj gerekir.
Denetimi devral, giriş, CAPTCHA veya ajanın yapmaması gereken adım için fare ve klavyeyi verir; Bitti ekranı geri döndürür. Tek VNC oturumu, günlüklenmeyen üretilmiş tam ve gözlem parolalarını kullanır; tam parola yalnızca kira sahibine verilir. Kira iki dakika içinde dolar, açık arayüzle uzatılır ve başka kullanıcıdan alınamaz.
Ekran devralmaya izin ver ilkesi denetimi tamamen yasaklayabilir: devralma ve öğretme düğmeleri gizlenir, uç nokta reddeder, request_takeover kullanılamadığını bildirir; görüntüleme sürer. İnsan denetimdeyken computer_observe ve computer_act engellenir; böylece ajan araya girmez veya girdiyi görüntülemez. request_takeover nedeni içeren başlık gösterir ve geri verilmesini bekler. Kimlik bilgileri klavyeden doğrudan sayfaya gider; model veya günlükten geçmez. Eski imajlar yalnızca görüntülemeyi destekler.
Görevi öğret modu gösterimi kaydeder: insan görünür göstergeyle ekranı denetler, eylemler koordinatlarda saklanır. Her tıklama salt okunur bulunan etiket, ID, görünür başlık ve geçerli URL’ye de bağlanır; böylece adım hedefi adlandırır, örneğin “button#submit (Place order) düğmesine tıklayın”; koordinatlar ipucu olarak kalır.
Kaydetme, belirlenimci ve modelsiz senaryo oluşturur: tuş vuruşları dizelerde birleştirilir, tıklama 8 piksellik eşikle sürüklemeden ayrılır, duraklamalar beklemeye dönüşür; gizli değer sözlüğüne veya kimlik bilgisi biçimine uyan metin (üç sınıftan 8+ karakter) sansürlenip request_takeover ile değiştirilir. Doğal dil rutini önce bağlı hedefleri, sonra koordinatları kullanır ve computer_observe ile yeniden yorumlanır. Uygulama koşulları, girdiler, adımlar, doğrulama, gerçekten ziyaret edilmiş ana bilgisayarlardan oluşan izinli kapsam (dışına çıkmadan durup sormalı), onay sınırları ve hatada durma içerir.
Senaryo taught- önekli normal bir beceri olarak saklanır; sürümleme, düzenleme ve paylaşımı destekler. Work Computer çalışmaları sahibin etkin öğretilmiş becerilerini yükler ve listeler; yeniden oynatma uygun rutini kullanan normal çalışmadır. Çalışma sonrasında rozetler, Track record bölümüne tek tıklamayla tarihli başarı veya hata değerlendirmesi ekler (yeniler üstte, sayı sınırlı, her kayıt normal sürümdür). Kayıtta gerçek parola girmeyin: girişe kadarki akışı gösterin, kaydedin ve yeniden oynatmada request_takeover kullanın.
Sağlayıcılar, yönlendirme ve veri açıklaması
Desteklenen rotalar
| Rota | Denetim ve davranış |
|---|---|
| Yerel Ollama | Ollama sağlıklı; tam model araç desteğini bildirir. |
| Ollama Cloud | Açıkça Ollama üzerinden yönlendirilir; bulut son eki veri açıklamasını gösterir. |
| Completion veya chat eklentisi | Etkin; tam modeli ve geçerli yöneticinin kimlik bilgilerini içerir. |
| Anthropic eklentisi | Work için Anthropic ileti ve araç bağdaştırıcısını kullanır. |
| Gemini eklentisi | Work için Gemini içerik ve işlev çağrısı bağdaştırıcısını kullanır. |
| Diğer uyumlu | İletiler, araçlar ve araç seçimi için OpenAI biçimini kullanır. |
Sağlayıcı türü ve eklenti ID’si görevde ve her çalışmada saklanır. Model adı tek başına rotayı seçmez; aynı adlı eklenti mevcut görevi devralmaz.
Sağlayıcının aldığı veriler
- Work sistem istemi;
- iş akışı becerileri ve geçerli ortam sınırları;
- kullanıcının ve asistanın en son 30 iletisi, en fazla 256 KB;
- araç tanımları;
- araç çağrısı geçmişi; ve
- listeler, dosya içeriği, arama, çıktı ve hatalar dâhil sonuçlar.
Birim tümüyle yüklenmez; ancak aracın döndürdüğü içerik konuşmanın parçası olur ve sağlayıcıya gönderilir. Gizli çalışmadan önce saklama, eğitim, fiyat ve kullanım koşullarını denetleyin.
Kimlik bilgileri sunucuda kalır ve Work kapsayıcısına hiçbir zaman bağlanmaz.
Uygulamanın kimlik bilgilerini şifrelemesi görevin tamamını şifrelediği anlamına gelmez. Konuşmalar, sonuçlar, çıktı ve meta veriler normal veritabanı içeriğidir; dosyalar normal birim veya PVC dosyalarıdır. Tehdit modelinize göre ana bilgisayar denetimi ve disk şifrelemesi uygulayın.
Uzak sağlayıcı açıklaması
Eklenti modelleri ve :cloud veya -cloud içeren Ollama adları uzak sayılır. Seçildiğinde veri akışı ve birden fazla ücretli çağrı hakkında kapatılabilir bildirim gösterilir; tercih kullanıcı için saklanır.
Tüm rotalar WORK_MAX_AGENT_ROUNDS kullanır; varsayılan 48 turdur ve eklentiler için ayrı 12 tur sınırı yoktur. Araç bütçesi max(128, configured rounds × 8) çağrıdır. Tükendiğinde Libre, yapılan iş, sınamalar, engeller ve kalanlar hakkında araçsız son devir ister; ardından istisna veya yanlış tamamlama yerine Girdi gerekli durumunu yazar. Devam aynı çalışma alanını kullanır. Tek çalışma yine çok sayıda ücretli istek yapabilir.
Ana bilgisayar klasörleri (isteğe bağlı)
Docker normalde adlandırılmış birim kullanır; bu nedenle model gerçek dosyaları görmez. Görev gerçek bir ana bilgisayar dizinine bağlanabilir. Kubernetes bu dizinleri reddeder ve PVC kullanır.
WORK_HOST_WORKSPACES_ENABLED=true
WORK_HOST_WORKSPACE_ROOTS=/Users/you/Projects
WORK_HOST_WORKSPACE_ROOTS, : ile ayrılmış kökler listesidir; varsayılan sunucu kullanıcısının giriş dizinidir. Çalışma alanı klasörü isteğe bağlıdır; boş değer yalıtımı korur.
Yol mutlak ve mevcut dizin olmalı; sembolik bağlantılar çözüldükten sonra kökün içinde kalmalıdır. .ssh, .gnupg, .aws, .config, .kube, .docker, .claude, .libre-webui ve node_modules her zaman reddedilir. İzin verilen yol saklanır ve görüntülenir.
Model gerçek dosyaları okur ve değiştirir; ayrıcalıksız kullanıcı, bırakılmış capabilities ve sınırlar artık modeli dizinden ayırmaz. Gerekmedikçe özelliği kapalı tutun, dar kökler belirleyin ve sürüm denetimli dizinleri tercih edin.
Kalıcılık ve yaşam döngüsü
| Durum | Depolama | Ömür |
|---|---|---|
| Sahip, başlık, sağlayıcı, durum | Libre veritabanı | Görev/kullanıcı silinene kadar |
| Çalışmalar, hatalar, iletiler, etkinlik | Libre veritabanı | Görev silinene kadar |
| Dosyalar | Docker birimi veya K8s PVC | İptal, önizleme durdurma ve yeniden başlatmaları aşar |
| Kök sistem ve geçici dosyalar | Kapsayıcı veya Pod | Tek kullanımlık; durdurulabilir veya yeniden oluşturulabilir |
| Önizleme süreci | Çalışan korumalı alan | Geçici; yalnızca sağlıklı olduğu doğrulanırsa tutulur |
| Kaydedilmemiş taslak | Tarayıcı oturumu | Geçici kolaylık |
Görev UUID’sini sunucu oluşturur; kaynak adlarını yalnızca sunucu belirler. Yeniden kullanım veya silmeden önce yönetim ve sahip etiketleri denetlenir; başka görevin kaynağı reddedilir.
Korumalı alan isteğe bağlı hazırlanır. Dosya yardımcıları boşta ortamı durdurur, komutlar tamamlanınca bırakır; doğrulanmış önizleme ortamı tutabilir. Kalıcı çalışma alanı yeniden bağlanır.
Yöneticiler adlandırılmış çalışma zamanı ilkeleri tanımlar: imaj, bellek, CPU ve PID sınırları, Kubernetes boyutu, boşta kalma zaman aşımı, ağ ile Work Computer (GUI + tarayıcı) ve Ekran devralmaya izin ver (öğretmeyi de belirler) anahtarları. Görev seçilen ilkeyle çalışır; boş alanlar genel değerleri devralır, ilkenin silinmesi sonraki yeniden oluşturmada bunlara döndürür. İlke yalnızca kaynakları ve özellikleri değiştirir; ayrıcalıksız modu, salt okunur kökü, bırakılmış capabilities değerlerini veya ağ yalıtımını zayıflatamaz.
WORK_RUNTIME_IDLE_TIMEOUT_MS komut, terminal veya imzalı önizleme isteği olmadığında korumalı alanı durdurup yuvayı bırakır. Çalışma alanı korunur, önizleme yeniden başlatılır. Varsayılan 0 değeri açıkça durdurulana kadar ortamı tutar.
Sunucu başlatılırken etkin çalışmalar başarısız işaretlenir ve önizleme durumu temizlenir. Sürücü yönetilen kapsayıcıları veya Pod’ları tek istekte alır. Bilinen görevlerin çalışan ortamları durdurulur, zaten durmuş olanlar değişmez, sahipsizler silinir. Sahip adla değil etiketle belirlenir. Her ad alanı veya daemon için tek Libre örneği olmalıdır. Temizlik kanıtlanamazsa Work güvenli biçimde kapanır, 10 saniyede bir yeniden dener ve değişiklik yapan işlemleri engeller.
Ağ
Adlandırılmış ilke yoksa ağ açıktır. Yönetici ağı varsayılan olarak kapalı bir ilke oluşturabilir; yazar görevi oluştururken bunu seçer. Göreve özel ayrı anahtar yoktur; ilkeyi değiştirmek ortamın yeniden oluşturulmasını gerektirir.
Docker ağ erişimli görevleri com.docker.network.bridge.enable_icc=false ayarlı yönetilen köprüye (libre-webui-work, WORK_NETWORK_NAME) bağlar:
- korumalı alanlar birbirine bağlanamaz; ve
- varsayılan olarak ortak köprüdeki dağıtım kapsayıcılarına, yayımlanmamış veritabanı veya Ollama dâhil, erişemez.
Aynı adlı ancak yönetim etiketi olmayan ağ reddedilir.
Kubernetes’te Pod ağ etiketi alır. Helm varsayılan reddetme, yalnızca önizleme girişi ve work.networkPolicy.blockedEgressCidrs dışındaki izinli Pod’lar için internet çıkışı kurar. Bu yalnızca CNI destekliyorsa etkilidir; Kubernetes bölümüne bakın.
Paketler, Git ve API için çıkış trafiğine izin verilir. Bu bir çıkış güvenlik duvarı değildir. Kod şuralara erişebilir:
- Docker ana bilgisayar hizmetleri;
- ana bilgisayarın yerel ağı;
- internet; ve
- altyapı meta veri uç noktaları.
Çıkış ilkesi araçları
WORK_RUNTIME_DNS(Docker) — virgülle ayrılmış IPv4/IPv6 adresleri--dnsile zorlanır; filtreli çözümleyici ad listeleri sağlar. Geçersiz adresler reddedilip günlüklenir; bayrak eklenemez.- Ana bilgisayar veya üst ağ güvenlik duvarı, yönetilen köprünün kararlı alt ağında uygulanır.
WORK_NETWORK_NAME, kendi seçenekleri, yönetim etiketi ve kapalı ICC’si bulunan önceden oluşturulmuş ağ için kullanılır.
DNS doğrudan IP adreslerini sınırlamaz; garanti için güvenlik duvarı gerekir.
Work’ü veri sızdırmaya karşı koruma saymayın. Yalnızca güvenilir kullanıcılara erişim verin. Özerk görev için adlandırılmış çevrimdışı ilke seçin; varsayılanı değiştiren genel ortam değişkeni yoktur.
Ağ kimlik bilgisi eklemez: göreve SSH anahtarları, bulut kimlik bilgileri, tarayıcı profilleri, ana bilgisayar giriş dizini veya Docker soketi bağlanmaz. Kod yine de /workspace içinde yazılı bir sırrı gönderebilir.
Korumalı alan trafiği model isteklerinden ayrıdır; Ollama ve eklentiler her zaman sunucu tarafından açık rotayla çağrılır.
Korumalı alan güvenlik sınırı
Docker kapsayıcısı:
1000:1000olarak root olmadan çalışır;- çalışma dizini olarak
/workspacekullanır; - yalnızca seçilen görevin birimini bağlar;
- salt okunur kök ve sınırlı
/tmpkullanır; - tüm Linux capabilities değerlerini bırakır;
no-new-privileges;- ayrıcalıklı değildir ve init süreci kullanır;
- CPU, bellek, süreç, zaman ve çıktı sınırlarını uygular;
- swap’i sabitler (
--memory-swap=--memory); - ICC’siz yönetilen ağa bağlanır veya ağsız kalır; ve
- yalnızca önizleme portunu atanan loopback’te yayımlar.
Tüm özellikler docker inspect ile yeniden doğrulanır ve ai.libre-webui.policy içinde karmalanır. Eski ilkeye sahip kapsayıcı güncellemeden sonra yok edilir ve yeniden oluşturulur.
Kubernetes eşdeğerini uygular: ayrıcalıksız kullanıcı, salt okunur kök, seccomp RuntimeDefault, ayrıcalık yükseltme yok, bırakılmış capabilities, sınırlı geçici kaynaklar, ServiceAccount belirteci yok ve /workspace konumunda PVC. Etiketler ve parmak izi doğrulanır.
Yol doğrulaması mutlak yolları, dizin geçişini, ters eğik çizgileri, NUL’u ve aşırı uzunluğu reddeder. Yardımcılar gerçek yolu çözer ve sembolik bağlantıyla çıkışı reddeder. Yazma geçici dosya ve atomik yeniden adlandırma kullanır.
Bu önlemler ana bilgisayarın yanlışlıkla açığa çıkmasını azaltır, ancak Work’ü sanal makineye veya güvenli kötü amaçlı yazılım analiz ortamına dönüştürmez. Kapsayıcılar ana bilgisayar çekirdeğini paylaşır; Docker, Kubernetes, çalışma zamanı, imaj, bağımlılık veya çekirdek açığı sınırı aşabilir.
Docker birimlerinin bağımsız kotası yoktur. Proje depolamayı tüketebilir; büyümeyi izleyin ve ana bilgisayar sınırları uygulayın. Kubernetes PVC boyutunun uygulanması depolama sağlayıcısına bağlıdır.
Docker güçlendirme denetim listesi
Kubernetes’te ayrıca ad alanı RBAC’sini, Pod güvenliğini, depolama sınıfını ve CNI NetworkPolicy uygulamasını kılavuza göre denetleyin.
Uygulama kapsayıcı bayraklarını ayarlar, yolları doğrular ve API’yi korur; ancak ana bilgisayar güvenlik duvarını, depolama kotalarını veya daemon yetki düzeyini sağlayamaz. Bunlar işletmecinin sorumluluğudur.
1. Docker denetimini yalıtma
Ana kapsayıcının daemon denetimine ihtiyacı vardır; soket denetim düzlemi kimlik bilgisidir. Uygulamanın ele geçirilmesi ana bilgisayarın ele geçirilmesine yol açabilir.
docker-compose.socket-proxy.yml soketi uygulamaya vermez. Proxy yalnızca containers, images, volumes, networks, exec ve info’yu geçirir; swarm, secrets, configs, build, commit ve system’i engeller. Libre soket veya grup bağlamadan DOCKER_HOST=tcp://docker-socket-proxy:2375 kullanır; CLI, terminal ve tanılama bu adresi izler. API yüzeyi küçülür, ancak etki alanı kalır: kapsayıcı oluşturmak ana bilgisayar yollarını bağlamayı sağlar.
Daha güçlü sınır, ilgisiz iş yükü olmayan ayrı sanal makinedir; daha da güçlüsü adanmış rootless daemon veya ayrı çalışma zamanı ana bilgisayarıdır. Uygulamadan önce dosya sahipliğini, yönlendirmeyi, temizliği ve terminali doğrulayın. Normal soketi salt okunur bağlamak API erişimini salt okunur yapmaz.
2. Korumalı alandan ana bilgisayar denetimini engelleme
ICC’yi kapatmak ana bilgisayar hizmetlerini engellemez. Gerçek köprüyü ve alt ağı denetleyin:
docker network inspect libre-webui-work \
--format 'id={{.Id}} subnets={{range .IPAM.Config}}{{.Subnet}} {{end}}'
ss -lntup
Kalıcı güvenlik duvarı köprüden SSH’ye, Docker API’ye, veritabanlarına ve yönetim portlarına trafiği reddetmelidir. Kuralı tek kullanımlık kapsayıcı ve izinli indirmelerle sınayın, sonra kalıcılaştırın. DOCKER-USER yönlendirilen trafiği denetler; ana bilgisayarın kendisine erişim INPUT kuralı gerektirebilir.
3. Çıkış hedeflerini sınırlama
Gerekmiyorsa bulut meta verilerini, özel altyapıyı ve istemci LAN’ını engelleyin. DNS ile güvenlik duvarını birlikte kullanın. Doğrudan IP, DNS’yi aşar; doğrudan bağlantılarda HTTP proxy yetersizdir. İlkeyi kapsayıcı dışında uygulayın.
Ağsız, yalnızca kayıt depolarına erişen ve açık çıkışlı ayrı ilkeler oluşturun. İlke ağ bağlantısını, dış kurallar izinli hedefleri belirler.
4. Gerçek depolama kotaları
CPU, bellek ve PID sınırları birimi sınırlamaz. XFS proje kotaları, kotalı mantıksal birimler veya boyut uygulayan birim/PVC sürücüsü kullanın. ext4 üzerinde Docker local yalnızca bildirilen boyutla güvenilir kota almaz.
Her ai.libre-webui.managed=true birimini ve Docker veri kökünü izleyin, dolmadan uyarın ve hata davranışını sınayın. Arayüz veya du yalnızca uyarır; denetimler arasında sınır uygulamaz.
5. İlkeyi doğrulama
Değişiklikten sonra tek kullanımlık görev oluşturup docker inspect ile UID’yi, salt okunur kökü, capabilities değerlerini, no-new-privileges, bellek, swap, CPU, PID, tek görev birimi ve ağı denetleyin. Ana kapsayıcı yalnızca beklenen bağlamalara sahip olmalı; genel giriş Docker veya önizleme portundan değil, kimliği doğrulanmış proxy ya da tünelden geçmelidir.
Önizleme güvenliği ve erişilebilirliği
Docker önizlemeyi sunucunun loopback’inde dinamik yayımlar; Kubernetes Pod IP’sini kullanır. Model ve tarayıcı rastgele kaynak seçmez. Libre URL’yi tam görev ve uç nokta için imzalar, her istekte süreci doğrular ve HTTP/WebSocket’i /api/work/previews üzerinden proxy’ler. Durdurma veya yeniden başlatma URL’yi iptal eder.
Yanıtlardan Libre kimlik bilgileri ve üst sunucu cookie’leri çıkarılır. HTML; same-origin olmadan betik, form, iletişim kutusu ve indirmeye izin veren iframe korumalı alanı ve CSP ile sınırlandırılır; bu ayrı sekmeyi de korur. Üretilen kod güvenilmez kalır ve çalışma alanı veya tarayıcı verilerini gönderebilir. URL kısa ömürlü sırdır.
Tarayıcı aynı genel origin’i yükler; böylece uzak HTTPS, portları veya Pod IP’lerini açmadan ve karışık içerik olmadan çalışır. Ters proxy /api/work/previews/ için WebSocket’i korumalıdır; sağlanan Nginx bunu yapar.
Ana uygulama çerçevelerde yalnızca kendi origin’ine ve Turnstile’a izin verir. Önizleme gövdeleri aktarabilmek ve daha dar korumalı alan uygulamak için genel Helmet ilkesini atlar. Geliştirme sunucularında gereken başlıklar nadiren bulunduğundan cross-origin embedder ilkesi kapalıdır.
Dağıtım matrisi
| Dağıtım | Çalışmalar/dosyalar | Önizleme |
|---|---|---|
Yerel npx libre-webui | Docker kurulu ve erişilebilirse desteklenir. | Uygulama origin’inde imzalı proxy. |
| Kaynaktan yerel çalışma | Aynı gereksinimler. | 3001 portundaki geliştirme API origin’i. |
| Electron | Koşullu: ayrı Work çalışma zamanı olmadan dış sunucu kullanır. | O sunucunun imzalı proxy’si. |
| Uzak bare metal veya VM | Ana bilgisayarda Docker varsa çalışır. | HTTP ve WebSocket ters proxy’si. |
| Standart Compose | Docker Desktop’ta varsayılan olarak desteklenir: imaj CLI içerir, Compose ana bilgisayar soketini bağlar ve Work bağlantı noktaları host.docker.internal üzerinden yönlendirilir. Yerel Docker Engine ayrıca erişilebilir, herkese açık olmayan bir WORK_PREVIEW_BIND ister. | Aynı genel origin. |
| Kubernetes/Helm | --set work.enabled=true: çalışmalar, dosyalar, komutlar, Git, terminal, Work Computer ekranı ve sesi için Pod IP’si üzerinden Pod/PVC, ad alanı Role ve default-deny NetworkPolicies; soket yoktur. Kubernetes bölümüne bakın. | Küme içinden Pod IP’sine proxy. |
Libre WebUI Docker içindeyken Work
Depodaki tüm Compose dosyaları Work’ü içerir: imaj CLI içerir ve /var/run/docker.sock bağlar. Docker Desktop, ürünle gelen yönlendirme varsayılanlarıyla çalışır. Yerel Docker Engine’de ayrıca WORK_PREVIEW_BIND, kardeş kapsayıcılardan erişilebilen ve herkese açık olmayan bir ana makine arayüzüne ayarlanmalıdır; aşağıda anlatılıyor.
Görev kapsayıcıları Libre WebUI kapsayıcısının eş düzeyidir; docker ps içinde görünür ve aynı yaşam döngüsüyle yönetilir.
Soket ana bilgisayarda root düzeyinde denetim verir. Work onsuz çalışmaz; sonuç açıktır: her Libre WebUI yöneticisi fiilen Docker ana bilgisayarı yöneticisidir. Güvenlik, ağ, yaşam döngüsü, yedek ve erişim işletmecinin sorumluluğudur. Work’ü kapatmak için soket satırını kaldırın; diğer özellikler buna bağlı değildir.
Alternatif, DOCKER_HOST üzerinden docker-compose.socket-proxy.yml kullanmaktır; denetim yalıtımına bakın.
Üç koşul sağlanmalıdır:
- Docker CLI vardır. Resmî imaj bunu içerir; özel imajda
docker-cliveyaWORK_DOCKER_COMMANDgerekir. Aksi durumda:The "docker" CLI is not installed…. - Soket bağlıdır. Aksi durumda:
No Docker daemon is reachable…. - Kullanıcı soket grubundadır. İmaj uid 1001 ile
nodejsolarak çalışır; soket normalderootveyadockergrubuna aittir, bu nedenle Composegroup_add: ['${DOCKER_GID:-0}']kullanır. Varsayılan Docker Desktop için uygundur; Linux kendi ID’sini ister. Aksi durumda:The Docker socket is mounted but the Libre WebUI user cannot open it….
# Read the socket's group as seen INSIDE a container. A macOS host reports a
# different value, because Docker Desktop proxies the socket through a VM.
echo "DOCKER_GID=$(docker run --rm -v /var/run/docker.sock:/var/run/docker.sock \
alpine stat -c '%g' /var/run/docker.sock)" >> .env
docker compose up -d --force-recreate
Önizleme portları ana bilgisayar loopback’inde kalır; HTTP ve WebSocket için aynı origin’in imzalı proxy’sinden erişilir. HTTPS ve tünellerle çalışır, korumalı alanı uygular ve eski URL’yi iptal eder.
Docker’da yayımlama ve bağlantı adresleri farklı olabilir. WORK_PREVIEW_BIND=127.0.0.1 olarak kalsın; WORK_DOCKER_PUBLISHED_HOST değerini erişilebilir ana bilgisayar adresine ayarlayın (Docker Desktop’ta host.docker.internal). Ürünle gelen Compose profilleri her iki değeri de ayarlar ve bu ana makine adını eşler. Yerel Linux kurulumları WORK_PREVIEW_BIND değerini Docker köprü ağ geçidiyle (ya da açıkça erişilebilir, herkese açık olmayan başka bir ana makine arayüzüyle) geçersiz kılmalıdır; yalnızca host.docker.internal eşlemesi loopback dinleyicisini erişilebilir yapmaz. Bu ham geçici bağlantı noktalarını asla 0.0.0.0 adresine bağlamayın.
Eşzamanlılık sınırlıdır: WORK_MAX_ACTIVE_RUNTIMES_PER_USER 2, WORK_MAX_ACTIVE_RUNTIMES_GLOBAL 3 değeridir. Yetenek yanıtı doluluğu bildirir. Yalnızca yeterli kaynak varsa artırın.
Kubernetes için work.enabled=true kullanın; chart, kılavuzdaki RBAC’yi, ad alanını, ilkeleri ve Pod/PVC’yi oluşturur.
Çalışma zamanı yapılandırması
| Değişken | Varsayılan | Amaç |
|---|---|---|
WORK_RUNTIME_BACKEND | docker | Korumalı alan sunucusu: docker veya kubernetes |
WORK_RUNTIME_IMAGE | node:22.22-bookworm@sha256:2d178f2785b96dfbf62a416ca2e40f50e30150b4ff3320d706f0d96e90600eb3 | Görev korumalı alan imajı |
WORK_DOCKER_COMMAND | docker | Docker CLI çalıştırılabilir dosyası |
WORK_COMMAND_TIMEOUT_MS | 120000 | Varsayılan komut zaman aşımı |
WORK_MAX_OUTPUT_CHARS | 50000 | En fazla yakalanan çıktı |
WORK_MAX_AGENT_ROUNDS | 48 | Çalışma başına model ve araç turları |
WORK_MEMORY_LIMIT | 2g | Kapsayıcı bellek sınırı |
WORK_CPU_LIMIT | 2 | Kapsayıcı CPU sınırı |
WORK_PIDS_LIMIT | 256 | Kapsayıcı süreç sınırı |
WORK_PREVIEW_PORT | 4173 | Kapsayıcı içindeki uygulama portu |
WORK_PREVIEW_BIND | 127.0.0.1 | Ana bilgisayar yayımlama arayüzü |
WORK_DOCKER_PUBLISHED_HOST | WORK_PREVIEW_BIND ile aynı | Yayımlanan Work Docker portları için ana bilgisayar veya IP |
WORK_COMPUTER_SCREEN_PORT | 6080 | Ekran WebSocket köprüsü portu |
WORK_COMPUTER_AUDIO_PORT | 6081 | Ses WebSocket köprüsü portu |
WORK_RUN_LEASE_WAIT_MS | 60000 | Geçici çalışma zamanı kira sahibini bekleme |
WORK_MAX_ACTIVE_RUNTIMES_GLOBAL | 3 | Örnekteki eşzamanlı kapsayıcı görevleri |
WORK_MAX_ACTIVE_RUNTIMES_PER_USER | 2 | Yönetici başına eşzamanlı kapsayıcı görevleri |
WORK_MAX_TASKS_GLOBAL | 500 | Örnekteki en fazla kalıcı görev |
WORK_MAX_TASKS_PER_USER | 100 | Yönetici başına en fazla kalıcı görev |
WORK_NETWORK_NAME | libre-webui-work | Ağ erişimli korumalı alanların yönetilen köprüsü |
WORK_RUNTIME_DNS | ayarlanmamış | Ağ erişimli görevler için virgülle ayrılmış çözümleyici IP’leri |
WORK_DOCKER_SOCKET | DOCKER_HOST unix:// veya tcp:// ise o; aksi durumda /var/run/docker.sock | Terminal ve tanılama için Docker Engine uç noktası |
WORK_TERMINAL_MAX_SESSIONS_PER_TASK | 2 | Görev başına eşzamanlı tarayıcı terminalleri |
WORK_TERMINAL_IDLE_TIMEOUT_MS | 900000 | Terminal boşta kalma zaman aşımı |
WORK_RUNTIME_IDLE_TIMEOUT_MS | 0 (kapalı) | Önizleme dâhil boşta kalınca korumalı alanı durdurma |
WORK_K8S_NAMESPACE | libre-webui-work | Kubernetes korumalı alan Pod ve PVC ad alanı |
WORK_K8S_STORAGE_CLASS | küme varsayılanı | Çalışma alanı PVC’leri için StorageClass |
WORK_K8S_WORKSPACE_SIZE | 5Gi | Görev başına çalışma alanı PVC boyutu |
WORK_K8S_POD_READY_TIMEOUT_MS | 900000 | Korumalı alan Pod’unun Running olmasını bekleme |
WORK_K8S_POD_GONE_TIMEOUT_MS | 60000 | Silinen Pod’un kaybolmasını bekleme |
Üretimde sabit, doğrulanmış imaj sürümü veya digest kullanın. Değişken etiket, Libre WebUI değişmeden komut satırı araçlarını ve güvenlik sınırını değiştirebilir.
Çalışma, önizleme, dosya yardımcıları, komutlar ve korumalı alanı yeniden oluşturma ortak kapasite muhasebesini kullanır. Zaten sayılan görevin iç işlemi ikinci kez sayılmaz. Sınırı aşmak HTTP 429 döndürür.
Sabit protokol ve arayüz sınırları
| Öğe | Sınır |
|---|---|
| Yeni görev veya çalışma iletisi | 65,536 UTF-8 karakter ve bayt |
| Oluşturma veya değiştirmede model ID’si | 500 UTF-8 karakter ve bayt |
| Eklenti sağlayıcı ID’si | 200 karakter |
| Görev başına etkin çalışma | 1 |
| Komut metni | 20,000 karakter |
| Araç komutu zaman aşımı | 1–600 saniye |
| Önizleme hazırlığı | 15 saniye |
| Dosya okuma veya yazma | 2,000,000 bayt UTF-8 metin |
| Doğrudan dizin listesi | İlk 1,000 öğe |
| İleti sayfası | En fazla 200 ileti ve 1,000,000 bayt |
| Saklanan tek ileti | 100 KB |
| Model konuşma bağlamı | Son 30 ileti, en fazla 256 KB |
| Saklanan araç çıktısı | Yaklaşık 20,000 kaynak karakter ve kesme işareti |
| Canlı düzenleyici vurgusu | 8,000 karakter ve 400 satır |
| Tarayıcı biçimlendirmesi | 100,000 karakter ve 4,000 satır |
| Git durum çıktısı | 2,000,000 yakalanan karakter |
| Git diff çıktısı | 600,000 yakalanan karakter |
| Git geçmişi | 20 yerel commit |
| Tek stage isteğindeki yollar | 200 |
| Commit iletisi | 4,000 karakter |
| Her sağlayıcı için ajan döngüsü | WORK_MAX_AGENT_ROUNDS ile varsayılan 48 tur |
| Araç çağrısı bütçesi | max(128, configured rounds × 8) çağrı |
Dosya API’si UTF-8 metinle çalışır. Yerleşik düzenleyici ikili dosyaları düzenlemez; 2 MB’tan büyük dosya Work API üzerinden açılamaz.
API genel görünümü
Tüm uç noktalar /api/work altındadır; kimlik doğrulama ve veritabanından geçerli Work erişimi ister. Work varsayılan olarak yöneticilere açıktır; normal işlemler etkin kullanıcılara açılabilir. Ana bilgisayar klasörü seçimi ile yönetim ilkesi ve erişim uç noktaları yalnızca yöneticilere açık kalır.
| Yöntem | Yol | Amaç |
|---|---|---|
GET | /capabilities | Ortam ve sağlayıcı kullanılabilirliği ile sınırları |
GET | /tasks | Geçerli yöneticinin görevlerini listeleme |
POST | /tasks | Görev ve ilk eşzamansız çalışmayı oluşturma |
GET | /tasks/:id | Durumu ve son iletileri yükleme |
GET | /tasks/:id/messages | Eski iletileri yükleme |
PATCH | /tasks/:id | Yeniden adlandırma veya tam model rotasını değiştirme |
DELETE | /tasks/:id | Görevi ve kalıcı çalışma alanını silme |
POST | /tasks/:id/runs | Sonraki çalışmayı başlatma |
POST | /tasks/:id/messages | Çalışma sırasında ajana ileti gönderme |
GET | /tasks/:taskId/runs/:runId/events | Kimliği doğrulanmış SSE olaylarını akıtma |
POST | /tasks/:id/cancel | Etkin çalışmayı iptal etme |
GET | /tasks/:id/approvals | Bekleyen onaylar ve görevin Otomatik İnceleme durumu |
PUT | /tasks/:id/approvals | Görev başına onay katılımını değiştirme |
POST | /tasks/:id/approvals/:approvalId | Bekleyen onayı karara bağlama (bir kez/her zaman izin, ret) |
DELETE | /tasks/:id/approval-rules/:ruleId | “Her zaman izin ver” kuralını kaldırma |
GET | /computer/setup | Yönetici için Work Computer kurulum durumu |
POST | /computer/setup | GUI imajını ve ilkeyi oluşturma |
POST | /tasks/:id/computer/start | Work Computer oturumunu başlatma |
GET | /tasks/:id/computer/control | Geçerli denetleyen ve ajanın devralma isteği |
POST | /tasks/:id/computer/control | Denetimi devralma veya uzatma |
DELETE | /tasks/:id/computer/control | Denetimi ajana geri verme |
POST | /tasks/:id/computer/teach | Kaydedilen gösterimi beceri olarak saklama |
POST | /tasks/:id/computer/anchor | Kaydedilen tıklamanın altındaki öğeyi çözme |
POST | /computer/skills/:slug/trace | Beceriye başarılı veya başarısız sonuç ekleme |
GET | /tasks/:id/files | Çalışma alanı dizinini listeleme |
GET | /tasks/:id/file | Metin dosyasını okuma |
PUT | /tasks/:id/file | Metin dosyasını kaydetme |
GET | /tasks/:id/git | Güçlendirilmiş Git durumunu ve geçmişini okuma |
GET | /tasks/:id/git/diff | Sınırlı yerel diff’i okuma |
POST | /tasks/:id/git/init | Yerel Git’i başlatma |
POST | /tasks/:id/git/stage | Açık yolları stage etme |
POST | /tasks/:id/git/commit | Stage edilmiş değişikliklerden commit oluşturma |
POST | /tasks/:id/git/branches | Yerel dal oluşturma |
POST | /tasks/:id/git/switch | Mevcut temiz dala geçme |
POST | /tasks/:id/preview/start | Yönetilen önizlemeyi başlatma |
POST | /tasks/:id/preview/stop | Yönetilen önizlemeyi durdurma |
Görev ID’si her zaman kimliği doğrulanmış sahibe göre denetlenir. Geçerli hesap durumu, rol ve erişim ilkesi her istekte veritabanından okunur; bu nedenle iptal, JWT’de eski rol iddiası bulunsa bile geçerlidir.
Görev güncelleme şeması iç uyumluluk için sunucu networkEnabled alanını korur. Bu, Work içinde ayrı denetim olarak gösterilmez. Oluştururken gereken varsayılan ağ durumuna sahip adlandırılmış ilkeyi seçin; ham alanı kalıcı API yapılandırması olarak kullanmayın.
Silme, hesap değişiklikleri ve yedekleme
Görevi silme
Silme bilerek yıkıcıdır:
- Sunucu görevi hizmetten çıkarılıyor olarak işaretler ve yeni değişiklikleri engeller.
- Etkin çalışma iptal edilir ve korumalı alan durdurulur.
- Libre WebUI çalışma zamanı kaynaklarının sahiplik etiketlerini doğrular.
- Kapsayıcı veya Pod ile adlandırılmış birim veya PVC silinir.
- Görev, çalışmalar ve iletilerle birlikte veritabanından art arda silinir.
- Başarılı olunca tarayıcı taslakları temizlenir.
Çalışma zamanı temizliği başarısız olursa Libre WebUI kaydı tutar ve hata döndürür; işletmeci Docker veya Kubernetes’i onarıp yeniden deneyebilir. Meta veriler sessizce silinip hesapsız kaynak bırakılmaz.
Çalışmayı veya önizlemeyi durdurmak silmekten farklıdır: yürütmeyi bitirir, ancak birimi ve konuşmayı korur.
Yöneticinin rolünü düşürme ve kullanıcı silme
Rol düşürülürken Libre WebUI önce rol iptalini saklar; sonraki her istek geçerli yetkiyi denetler. Sunucu görevleri askıya alır ve çalışmaları ile korumalı alanları durdurmayı dener. Temizlik hatası erişimi geri vermez; yeniden denemesi için işletmeciye bildirilir.
Başka kullanıcı silinirken önce yönetilen kaynakları kaldırılır. Temizlik başarısız olursa sahiplik meta verilerini kaybetmemek için kullanıcı kaydı tutulur.
Tam görev yedeği
Tam Work yedeği şunları ister:
- sahiplik, Docker veya Kubernetes kaynak adları, yönlendirme, çalışmalar, iletiler ve etkinlik bulunan Libre WebUI veritabanı; ve
- Work dosyalarını içeren,
ai.libre-webui.managed=trueetiketli tüm Docker birimleri veya Kubernetes PVC’leri.
Tek kullanımlık kapsayıcılar ve önizleme süreçleri kopyalanmaz. Uyumlu kopya için yeni Work etkinliğini ve sunucuyu durdurun, ardından depolamanızın anlık görüntü prosedürünü kullanın.
Veritabanını ve karşılık gelen çalışma alanlarını birlikte geri yükleyin. Her birimi veya PVC’yi kaydedilmiş tam adıyla oluşturun; ai.libre-webui.task=<task UUID> ve ai.libre-webui.managed=true etiketlerini geri yükleyin. Yalnızca dosyalar etiketleri saklamaz; yalnızca veritabanında dosyalar yoktur; yalnızca depolama sahipliği ve kaynak adlarını kaybeder.
Kurulumda şifreli sağlayıcı kimlik bilgileri de varsa veri dizini ve anahtar için ana yedekleme prosedürünü izleyin.
Yerelleştirme ve Arapça RTL
Work’ün tamamı 25 dile çevrilmiştir: İngilizce, Arapça, Bengalce, Çekçe, Danca, Almanca, İspanyolca, Fransızca, Hintçe, Endonezce, İzlandaca, İtalyanca, Japonca, Korece, Malayca, Felemenkçe, Lehçe, Portekizce, Rusça, İsveççe, Tayca, Türkçe, Ukraynaca, Vietnamca ve Çince.
Arapça, React işlenmeden önce lang="ar" ve dir="rtl" ayarlar: yan çubuk ve konuşma sağa, çalışma alanı sola geçer; yön simgeleri yansıtılır; sekmeler ve boyutlandırma RTL’yi izler.
Doğruluk için gereken teknik içerik soldan sağa kalır:
- kod ve vurgulama;
- dosya sistemi yolları;
- model ID’leri;
- önizleme komutları ve günlükleri;
- araç çıktısı ve meta verileri; ve
- kod bloğu içeriği.
Görev başlıkları, doğal dil istemleri, hatalar, dosya adları ve önizleme komutları otomatik metin yönü kullanır.
Sorun giderme
npx ile çalışma zamanı kullanılamıyor
npx libre-webui sunucuyu ana bilgisayarda başlatır, ancak Docker kurmaz. Aynı işletim sistemi kullanıcısıyla docker info çalıştırın. Docker’ı kurun veya başlatın ya da izinleri düzeltip Work’ü yeniden yükleyin. Ayrıca sağlıklı Ollama’yı veya geçerli yöneticinin modeli ve kimlik bilgileri bulunan etkin eklentiyi doğrulayın.
Docker veya Kubernetes içinde çalışma zamanı kullanılamıyor
Depodaki Compose bu hatayı göstermemelidir: imaj CLI içerir ve dosya ana bilgisayar soketini bağlar. Panel nedeni belirtir: CLI, soket veya grup eksik. Sonuncusu için DOCKER_GID ayarlayıp kapsayıcıyı yeniden oluşturun. Docker içindeki Work bölümüne bakın.
Kubernetes’te --set work.enabled=true ayarlayın. Libre kubernetes bildirecek, API’yi denetleyecek ve PVC’li Pod başlatacaktır. Düğüm çalışma zamanı soketini bağlamayın; Kubernetes bölümüne bakın.
Work uyumlu model yok
Ollama için tools bildiren model seçin. Eklenti için şunları denetleyin:
- completion veya chat türü;
- etkinlik;
- eşlemedeki tam model;
- geçerli yöneticinin kullanılabilir API anahtarı; ve
- modelin araç çağrısı desteği.
Work yedek olarak başka sağlayıcıya hiçbir zaman geçmez.
Paket kurulamıyor veya uzak Git çalışmıyor
Seçilen adlandırılmış ilkenin ağa izin verdiğini doğrulayın. Göreve özel ayrı anahtar yoktur. Ardından DNS, proxy, güvenlik duvarı veya NetworkPolicy, kayıt deposu, sertifika, çalışma zamanı, üst hizmet ve komut varlığını denetleyin. Git sekmesi yalnızca yereldir; uzak Git için terminali veya modeli yalnızca bilinçli izin verilen ağ ve kimlik bilgileriyle kullanın. Uzun ömürlü belirteç yapıştırmayın.
Çalışma ajan sınırında durdu
Tur veya çağrı bütçesi tükenmiş olabilir. Work araçsız son devir ister; yapılan işi ve kalanları inceleyin. Girdi gerekli bu çalışmanın son durumudur, ancak tamamlandığını iddia etmez. Sonraki çalışmayı başlatın veya kaynaklar ve maliyetler uygunsa WORK_MAX_AGENT_ROUNDS değerini bilinçli artırın.
Çalışma sırasında HTTP 429
Etkin ortam veya kalıcı görev sınırına ulaşıldı. Başka işlemin bitmesini bekleyin, gereksiz önizlemeyi durdurun, eski görevleri silin veya yeterli kaynak varsa ilgili WORK_MAX_* değerini artırın.
Önizleme hazır olmuyor
Komut çalışmayı sürdürmeli, 0.0.0.0 adresine bağlanmalı ve 15 saniye içinde WORK_PREVIEW_PORT üzerinde dinlemelidir. Boş alan package.json içindeki dev betiğini, düz index.html dosyasını veya tek iç uygulamayı bulur. Birden fazla veya hiç uygulama bulunmazsa açık komut girin. Komut /workspace içinde başlar; iç uygulama için cd <app-directory> && ... kullanın.
Önizleme sunucuda çalışıyor, uzak tarayıcıda çalışmıyor
İmzalı proxy derlemesini denetleyin ve eski URL’yi yeniden başlatın. Ters proxy ile tünel /api/work/previews/ için WebSocket’e izin vermelidir. Yayımlanan Docker portu loopback’te kalmalı ve güvenlik duvarını açmayı gerektirmemelidir.
Dosyalar duruyor, önizleme durmuş
İptal, sunucu yeniden başlatması, açık durdurma veya başarısız hazırlık denetimi sonrasında bu beklenir. Süreç geçici, birim kalıcıdır. Görevi açıp önizlemeyi yeniden başlatın.
Dosya açılmıyor veya kaydedilmiyor
API 2 MB’a kadar UTF-8 metin kabul eder. Dosya açıldıktan sonra değiştiyse kaydetmeden önce yeniden yükleyin. Vurgulama 8,000 karakter veya 400 satırın üzerinde düz metne geçer; biçimlendirmenin ayrı 100,000 karakter ve 4,000 satır sınırı vardır ve yalnızca belgelenmiş türleri destekler.
Work korumalı alanları kurtardığını bildiriyor
Başlatma veya kapatma sırasında bilinen korumalı alanların durduğu kanıtlanamadı. Work güvenli biçimde engellenir ve 10 saniyede bir yeniden dener. Docker veya Kubernetes API erişimini onarın ve sunucu günlüğünü denetleyin. Etiketli kaynaklar uzlaştırılana kadar veritabanı satırlarını silmeyin.
Görev silinemiyor
Çalışma zamanının erişilebilir olduğunu doğrulayın. Beklenen ai.libre-webui.task etiketi olmayan çakışan kaynak bilerek reddedilir. Çakışmayı dikkatle düzeltip yeniden deneyin.
Güvenlik özeti
- Work varsayılan olarak yalnızca yöneticilere açıktır; herkese açmak her etkin hesabı korumalı alan işletmecisi yapar. Ana bilgisayar klasörleri her zaman yönetimseldir.
- Sunucu yapılandırılmış Docker daemon’unu veya Kubernetes ad alanını denetlemelidir.
- Kapsayıcılar dosya sistemi erişimini azaltır, ancak sanal makine değildir.
- Çevrimdışı ilke olmayan görevlerde çıkış trafiği vardır; hedefleri sınırlamak işletmecinin sorumluluğudur.
- Work birimlerinin bağımsız disk kotası yoktur.
- Git yalnızca yereldir; uzak kimlik bilgileri bağlanmaz ve API tarafından kabul edilmez.
- Güvenlik duvarını, daemon yalıtımını, çıkış sınırlarını ve gerçek kotaları işletmeci sağlar.
- Uzak sağlayıcılar istenen sonuçları alır ve birden fazla ücretli çağrı yapabilir.
- Önizleme portları loopback’te kalır ve yalnızca imzalı, iptal edilebilir URL’lerle erişilir.
- Standart Compose Docker sağlar; Kubernetes/Helm
work.enabled=trueile Pod/PVC sağlar. - Tam yedek Libre WebUI veritabanını ve Work birimlerini gerektirir.