Work: पृथक कार्यक्षेत्र
Work, Libre WebUI का अंतर्निहित प्रोग्रामिंग-एजेंट अंतराफलक है। प्रत्येक कार्य एक टिकाऊ बातचीत, स्पष्ट प्रदाता मार्ग और अलग /workspace फ़ाइल प्रणाली जोड़ता है। मॉडल फ़ाइलें देख और बदल सकता है, कार्य के Docker कंटेनर या Kubernetes Pod में कमांड चला सकता है और पूर्वावलोकन शुरू कर सकता है।
Work सीधे लागू किया गया है; यह Libre Claw या अलग डेमन उपयोग नहीं करता।
:::चेतावनी केवल विश्वसनीय उपयोगकर्ता
सभी API के लिए पहुँच वाला प्रमाणित खाता आवश्यक है। तयशुदा में केवल प्रशासक को पहुँच है; इसे सेटिंग्स > उपयोगकर्ता प्रबंधन टैब से सभी सक्रिय उपयोगकर्ता के लिए खोला जा सकता है। होस्ट फ़ोल्डर हमेशा प्रशासक-केवल रहते हैं क्योंकि वे सर्वर पथ माउंट करते हैं। Work सैंडबॉक्स में मनमाने शेल कमांड जानबूझकर चला सकता है। चुनी नामित नीति नेटवर्क बंद न करे तो कार्य निर्गामी यातायात उपयोग करते हैं। हर अनुमत उपयोगकर्ता को केवल चैट उपयोगकर्ता नहीं, विश्वसनीय रनटाइम संचालक मानें।
:::
इस मुक्त की मुख्य क्षमताएँ
- स्पष्ट मोड चयनक के साथ अलग Work और Chat मोड।
- मुख्य पार्श्व-पट्टी में कार्य, स्थिर स्थान और सीधा हटाना।
- हर कार्य के लिए अलग सैंडबॉक्स पहचान और स्थायी Docker वॉल्यूम या Kubernetes PVC; फ़ाइलें खोए बिना परिवेश रोका या फिर बनाया जा सकता है।
- बातचीत, संचालन स्थिति, उपकरण गतिविधि, मॉडल चयन और कार्य स्वामी Libre WebUI डेटाबेस में सहेजे जाते हैं।
- सहायक पाठ, प्रदाता द्वारा प्रकट तर्क, उपकरण कॉल/परिणाम, उपयोग, कौशल और स्थिति बदलाव का प्रमाणित सीधा प्रवाह।
- Server-स्वामित्व कार्यप्रवाह कौशल मॉडल को परियोजना में नियंत्रण फ़ाइलें बनाए बिना जाँच, संपादन, परीक्षण और पूर्वावलोकन सिखाते हैं।
- उपकरण-समर्थ स्थानीय Ollama मॉडल, Ollama Cloud और विन्यस्त प्रदाता प्लगइन।
- डेस्कटॉप पर माउस/कीबोर्ड से आकार-परिवर्तनीय बातचीत/कार्यस्थल विभाजन और छोटे स्क्रीन पर स्विच।
- अंतर्निहित Files, Activity, Git, Terminal, पूर्वावलोकन और Screen दृश्य; Screen में Work Computer डेस्कटॉप।
- हल्का/गहरा वाक्यविन्यास उद्भासन, ब्राउज़र स्वरूपण, सहेजना-टकराव पहचान और अस्थायी प्रारूप।
- दूरस्थ प्रदाता चुनने पर प्रति-उपयोगकर्ता बंद-योग्य डेटा प्रकटीकरण।
- 25 भाषाओं में Work अनुवाद, जिसमें मूल अरबी RTL विन्यास और कोड/पथ/मॉडल ID/आउटपुट की LTR दिशा सुरक्षित रहती है।
स्थायी इकाई कार्य कार्यस्थल है, लगातार चलने वाला कंटेनर नहीं। Libre कंटेनर को शुरू, बंद और आवश्यक होने पर नामित वॉल्यूम बचाते हुए पुनः बनाता है।
Architecture
Sandbox/कार्यस्थल नाम, इमेज, वॉल्यूम माउंट, उपयोगकर्ता, सीमाएँ, नेटवर्क मोड और पूर्वावलोकन पोर्ट Libre WebUI चुनता है, मॉडल या ब्राउज़र नहीं। मॉडल को केवल ये उपकरण मिलते हैं:
list_filesread_filewrite_filedelete_filemove_filesearch_filesrun_commandstart_previewstop_preview
delete_file और move_file कार्यस्थल से बाहर नहीं जाते, प्रतीकात्मक लिंक अनुसरण नहीं करते, डायरेक्टरी के लिए स्पष्ट पुनरावर्ती ध्वज माँगते हैं और गंतव्य अधिलेखन नहीं करते। फ़ाइल helper उपयोग करने से run_command अवरुद्ध होने पर पूर्वावलोकन के दौरान भी चलते हैं।
मॉडल अनुरोध सर्वर चलाता है, Work कंटेनर नहीं; इसलिए वे कंटेनर नेटवर्क नीति पर निर्भर नहीं हैं।
Requirements
- Docker के लिए स्थापित/पहुँच-योग्य डेमन और सर्वर प्रक्रिया को
dockerयाWORK_DOCKER_COMMANDprogram चलाने की अनुमति। - Kubernetes के लिए नेमस्पेस-सीमित Role/RoleBinding API परिचय-पत्र, सैंडबॉक्स नेमस्पेस और Helm द्वारा
work.enabled=trueपर बनाई NetworkPolicies।
इसके साथ:
- स्वस्थ Ollama/Ollama Cloud उपकरण-समर्थ मॉडल या सटीक मॉडल और प्रशासक परिचय-पत्र वाला सक्रिय पूर्णता/चैट प्लगइन।
- परिवेश इमेज, projects और स्थानीय dependencies के लिए पर्याप्त स्मृति।
- Work पहुँच वाला प्रमाणित खाता; तयशुदा प्रशासक-केवल, पर सभी सक्रिय उपयोगकर्ता के लिए खुल सकता है।
Libre Ollama क्षमताएँ जाँचकर tools रहित मॉडल अस्वीकार करता है। प्लगइन मॉडल को प्रदाता का उपकरण-कॉलिंग प्रोटोकॉल समर्थन करना चाहिए। विफलता बिना मौन वैकल्पिक के संचालन समाप्त करता है।
स्थानीय संचालन
एक कंप्यूटर पर सरल तरीका:
docker info
npx libre-webui@latest
http://localhost:8080 खोलें, प्रशासक लॉगिन करें, Work और अनुकूल मॉडल चुनकर कार्य लिखें।
Docker न हो या अप्राप्य हो तो Work कारण सहित Runtime अनुपलब्ध दिखाकर आरंभ बंद करता है। कमांड कभी सीधे होस्ट पर नहीं चलते।
पहले उपयोग पर परिवेश इमेज जाँच होकर अनुपस्थित होने पर स्वतः-डाउनलोड होता है; इसलिए अधिक समय लग सकता है।
Work अंतराफलक
बनाना और फिर खोलना
Work चुनें, निर्देश लिखें, मॉडल चुनें और चलाएँ दबाएँ। पहला संदेश कार्य, पहला संचालन, प्रदाता मार्ग और स्थायी कार्यक्षेत्र बनाता है।
कार्य मुख्य पार्श्व-पट्टी में रहता है। फिर खोलने पर हाल की बातचीत, Files टैब, वर्तमान प्रदाता/मॉडल और कार्यक्षेत्र लौटते हैं। पुराने संदेश पृष्ठों में आते हैं। शीर्षक से नाम बदलें और मेनू या पार्श्व-पट्टी से हटाएँ।
एक कार्य में एक समय केवल एक संचालन सक्रिय हो सकता है; अगला निर्देश वही बातचीत और फ़ाइल प्रणाली उपयोग करता है।
कंपोज़र श्रुतलेखन समर्थित करता है: माइक्रोफ़ोन बटन ब्राउज़र वाक् API या विन्यस्त वाक्-पहचान मॉडल से लिप्यंतरण लिखे पाठ में जोड़ता है। बनी/स्थानांतरित फ़ाइलें संबंधित उपकरण क्रिया के नीचे क्लिक-योग्य चिह्न हैं; क्लिक संपादक खोलता और संकरी स्क्रीन पर कार्यस्थल दिखाता है। केवल परिवर्तनकारी उपकरण चिह्न बनाते हैं, इसलिए बीस पठन और एक लेखन केवल एक कलाकृति दिखाते हैं।
Agent के रूप में नियुक्त करना
पर्सोना होने पर Hire as एजेंट उपलब्ध है: कार्य स्थायी नामित एजेंट बनता है। पर्सोना संचालन के बीच रहता है; उसका नाम और प्रणाली प्रॉम्प्ट Work प्रॉम्प्ट से पहले आते हैं, पर सैंडबॉक्स अनुबंध सर्वोच्च है। पार्श्व-पट्टी एजेंट को एकबारगी कार्य से ऊपर Agents समूह में अवतार, गतिविधि और स्थिति सहित रखता है। पार्श्व-पट्टी संक्षिप्त होने पर रेल में केवल वही पिन किए एजेंट अवतार बचते हैं; एकबारगी Work कार्य पट्टी विस्तृत होते ही लौट आते हैं।
स्थिति-पंक्ति के दो स्तर हैं। नियुक्त एजेंट के संचालन बाद बिना उपकरण का सस्ता मॉडल अनुरोध लगभग 8 शब्द की स्थिति माँगता है (“इनबॉक्स खाली। 2 उत्तर तैयार।”); उत्तर 90 वर्ण की एक पंक्ति है। त्रुटि/समय-सीमा पर अंतिम सहायक उत्तर की पहली पंक्ति आती है। One-बंद कार्य और विफल संचालन नियतात्मक वैकल्पिक उपयोग करते हैं; WORK_STATUS_BLURB_MODEL=0 अनुरोध बंद करता है। कार्य खोलना उपकरण में समकालित एकदिश देखा चिह्न बढ़ाता है; बिंदु नया टर्मिनल संचालन बताता है।
Agents सूचनाएँ से काम बताते हैं: work-run-finished, work-run-attention, work-takeover। Screen बैनर केवल खुला टैब में है, पुश सूचना अन्य जगह पहुँचती है। हर लिंक एजेंट पर जाता है।
अपनी या साझा पर्सोना उपयोग करें; साझा दृश्य स्वामी स्मृतियाँ नहीं खोलता। पर्सोना हटे तो एजेंट बिना उसके चलता और चेतावनी लिखता है। API personaId और isAgent लेता है; पर्सोना कार्य स्वतः एजेंट बनता है।
Agent टैब
पहला अतिरिक्त टैब Agent है:
- पहचान: अवतार, नाम, गतिविधि सूचक और अंतिम स्थिति पंक्ति।
- Screen: Work Computer हो तो संक्षिप्त सीधा केवल-पठन लघुचित्र। यह पूरा कनेक्शन और सीमा में गणना होता है; क्लिक अधिग्रहण, शिक्षण और ऑडियो वाला पूर्ण स्क्रीन खोलता है।
- दिनचर्याएँ: कार्य से जुड़े स्वचालन। प्रत्येक trigger नया कार्य बनाने के बजाय उसी कार्यस्थल और बातचीत में agent के model तथा environment के साथ चलता है, इसलिए सुबह की रिपोर्ट एक ही जगह संचित होती है। पंक्तियाँ समय-सारणी और pause switch दिखाती हैं; + Routine form पहले से agent से जुड़ा है। व्यस्त agent का trigger कतार में गए बिना
work-task-busyसे समाप्त होता है। - स्वतः समीक्षा: प्रति-agent अनुमोदन स्विच और agent द्वारा एकत्र “हमेशा अनुमति दें” नियम (नियम हटाने पर उसका दायरा फिर बंद)। कार्य की नीति समीक्षा अनिवार्य करे तो स्विच चालू पर लॉक रहता है।
- सिखाए कौशल: सक्रिय स्विच वाली प्रदर्शित दिनचर्याएँ।
जुड़े टूल (MCP और OpenAPI सर्वर)
Work agent वही टूल सर्वर बुला सकते हैं जो Chat के लिए कॉन्फ़िगर हैं — MCP या OpenAPI, जिन्हें व्यवस्थापक सेटिंग → Tools में पंजीकृत करता है। टूल agent को namespaced नाम (server__tool) से दिखते हैं और कॉल sandbox के भीतर से नहीं, Libre WebUI बैकएंड से कठोर टूल gateway (SSRF-रक्षित egress, प्रति-उपयोगकर्ता क्रेडेंशियल, आकार/समय सीमाएँ) से चलती हैं।
प्रस्ताव इस बारे में ईमानदार है कि स्वायत्त संचालन वास्तव में क्या उपयोग कर सकता है:
- ऑफ़लाइन कार्य को कोई नहीं मिलता: egress बैकएंड से हो तब भी नेटवर्क-रहित कार्य ऑफ़लाइन रहता है — वही तर्क जो
web_searchका है। - जिस सर्वर को व्यक्तिगत क्रेडेंशियल चाहिए और उपयोगकर्ता ने सहेजा नहीं, वह प्रस्ताव के समय ही हटा दिया जाता है, क्योंकि स्वायत्त संचालन रुककर माँग नहीं सकता। सेटिंग → Tools में क्रेडेंशियल जोड़ें, अगला संचालन वह सर्वर देगा।
- टूल पहुँच मोड (केवल व्यवस्थापक या सभी उपयोगकर्ता) और प्रति-सर्वर दृश्यता Chat जैसी ही लागू होती हैं, और पर्सोना की टूल-सर्वर बाइंडिंग नियुक्त agent के लिए सूची संकुचित करती है।
- अनुमोदन सक्रिय हों तो सर्वर द्वारा पार्श्व प्रभाव वाले बताए गए जुड़े टूल किसी भी नियंत्रित क्रिया की तरह आपके निर्णय पर रुकते हैं; केवल-पढ़ने वाले बिना पूछे चलते हैं।
एजेंटों के बीच प्रत्यायोजन (@-उल्लेख)
नियुक्त agent काम एक-दूसरे को सौंप सकते हैं। Work composer में @ लिखकर अपने किसी दूसरे agent का उल्लेख करें; वर्तमान agent अपने निर्देशों में सहकर्मी सूची (नाम और स्थिति पंक्तियाँ) देखता है और मेल खाते अनुरोध message_agent से सौंपता है। प्रत्यायोजन संदेशों से समन्वय है, साझा कंप्यूटरों से जानबूझकर नहीं: हर agent का अपना पृथक कार्यस्थल और sandbox रहता है, और लक्ष्य agent सौंपने वाली बातचीत नहीं देख सकता — अनुरोध को अपना संदर्भ स्वयं ले जाना होगा।
प्रत्यायोजन असमकालिक है। टूल तुरंत लौटता है, लक्ष्य agent अपने कार्य में चलता है (उसकी बातचीत में अनुरोध भेजने वाले द्वारा प्रत्यायोजित दिखता है), और समाप्त होने पर — पूर्ण, इनपुट चाहिए, विफल या रद्द — उसका अंतिम उत्तर सौंपने वाले agent की बातचीत में उस agent की रिपोर्ट के रूप में पहुँचता है। सौंपने वाला अब भी चल रहा हो तो रिपोर्ट अगले चक्र में मॉडल तक जाती है; निष्क्रिय हो तो रिपोर्ट बातचीत में प्रतीक्षा करती है — रिपोर्ट कभी स्वतः संचालन शुरू नहीं करती, इसलिए दो agent आपस में ping-pong नहीं कर सकते। प्रत्यायोजित संचालन आगे प्रत्यायोजन नहीं कर सकते, व्यस्त लक्ष्य कतार के बजाय प्रयास स्पष्ट रूप से विफल करता है, और अनुमोदन सक्रिय हों तो message_agent भी किसी अन्य पार्श्व-प्रभाव क्रिया की तरह समीक्षा पर रुकता है (“हमेशा अनुमति दें” नियम केवल उसी एक लक्ष्य agent तक सीमित)।
क्रिया अनुमोदन (स्वतः समीक्षा)
पार्श्व प्रभाव वाली क्रियाएँ चलने से पहले आपके निर्णय पर रुक सकती हैं। किसी कार्य के लिए अनुमोदन सक्रिय हों — Work नीति में दुष्प्रभाव वाली क्रियाओं के लिए अनुमोदन आवश्यक करें हो, या agent का स्वतः समीक्षा स्विच चालू हो — तो संचालन run_command, computer_act, delete_file, move_file या message_agent चलाने से पहले रुककर बातचीत में निर्णय कार्ड दिखाता है: एक बार अनुमति दें, हमेशा अनुमति दें या अस्वीकार करें।
- एक बार अनुमति दें ठीक यही कॉल चलाता है और अगली बार फिर पूछता है।
- हमेशा अनुमति दें कॉल चलाकर कार्य पर नियम सहेजता है: फ़ाइल और कंप्यूटर क्रियाओं के लिए पूरे टूल पर,
run_commandके लिए कमांड के प्रोग्राम (पहला token) तक सीमित —npm run buildस्वीकारने पर भविष्य कीnpmकमांड पूर्व-अनुमोदित होती हैं, पूरा shell नहीं — औरmessage_agentके लिए उसी एक लक्ष्य agent तक सीमित। नियम Agent टैब के स्वतः समीक्षा भाग में सूचीबद्ध हैं और वहीं से हटाए जा सकते हैं। - अस्वीकार करें कॉल मना करता है। मॉडल को बताया जाता है कि उपयोगकर्ता ने क्रिया अस्वीकार की और उसे ज्यों का त्यों दोहराना नहीं है; संचालन उसी उत्तर के साथ चलता रहता है।
लंबित अनुमोदन सूचना भी उठाता है (इन-ऐप, और सक्षम हो तो web push), क्योंकि संचालन बिना निगरानी कई मिनट बाद इस द्वार पर पहुँच सकता है। पाँच मिनट में कोई निर्णय न ले तो अनुरोध समाप्त हो जाता है, क्रिया नहीं चलती, और संचालन अपना बजट खपाने के बजाय सामान्य हस्तांतरण के साथ इनपुट चाहिए पर समाप्त होता है।
अनुमोदन क्रियाओं को नियंत्रित करते हैं, दृश्यता को नहीं: write_file और केवल-पढ़ने वाले टूल अनियंत्रित रहते हैं, और हर निर्णय सुरक्षा ऑडिट लॉग में जाता है।
कार्य स्थिति
| Interface | Server स्थिति | रंग |
|---|---|---|
| निष्क्रिय | idle | rgb(255, 255, 255) |
| चल रहा | preparing या running | rgb(48, 121, 255) |
| तैयार | completed | rgb(76, 212, 117) |
| इनपुट चाहिए | needs_input या cancelled | rgb(255, 204, 0) |
| त्रुटि | failed | rgb(255, 61, 129) |
सक्रिय संचालन रोकने पर इनपुट चाहिए और फ़ाइलें सुरक्षित रहती हैं। चक्र/उपकरण बजट समाप्त होने पर उपकरण-रहित अंतिम हस्तांतरण बाद यही स्थिति; अधूरा काम तैयार नहीं कहलाता।
सक्रिय संचालन बातचीत अवरुद्ध नहीं करता: संदेश तुरंत जुड़कर अगला चक्र में मॉडल तक जाता है, जिससे बिना रोक मार्गदर्शन/सुधार/संदर्भ जोड़े जा सकते हैं।
आकार बदलना
डेस्कटॉप xl पर बातचीत/कार्यस्थल draggable divider से अलग हैं:
- तयशुदा बातचीत चौड़ाई 45%।
- पसंदीदा सीमा 30%–70%, न्यूनतम सामग्री चौड़ाई सहित।
- सहेजा अनुपात इस ब्राउज़र के साइन-इन उपयोगकर्ता का।
- Arrows 2%, Shift के साथ 10%।
- Home/End न्यूनतम/अधिकतम।
- Enter या दोहरा-क्लिक reset।
नियंत्रण लेखन दिशा अनुसरण करते हैं। अरबी में बातचीत दाएँ, कार्यस्थल बाएँ; सूचक/तीर दृश्य दिशा में।
Small स्क्रीन पर कार्य हेडर स्विच उपयोग करें।
Files
Files टैब /workspace की प्रत्यक्ष सूची, केवल वैध UTF-8 पाठ फ़ाइलें और कार्य वॉल्यूम में सहेजना देता है। अमान्य बाइट हानि के साथ प्रतिस्थापित नहीं, अस्वीकार होते हैं।
Editor देता है:
- सामान्य languages की light/गहरा वाक्यविन्यास उद्भासन;
Cmd/Ctrl+Sसहेजना;Shift+Alt+Fformat;- आशावादी सहेजना-टकराव पहचान;
- सत्र स्मृति में कार्य/पथ प्रारूप; और
- unsaved बदलाव पर चेतावनी।
सीधा उद्भासन 8,000 वर्ण/400 पंक्तियाँ पर रुकती है। स्वरूपण JavaScript/JSX, TypeScript/TSX, JSON प्रकार, CSS/SCSS/Less, HTML, Markdown/MDX, YAML में 100,000 वर्ण/4,000 पंक्तियाँ तक।
मॉडल खुला फ़ाइल बदलता है तो टैब चक्र-आरंभ से लाल/हरा अंतर और संकुचित अपरिवर्तित खंड दिखाता है। स्विच अंतर/संपादक बदलता; +added −removed सारांश। आधार चक्र से पहले ब्राउज़र सामग्री; बाद में पहली बार खुली फ़ाइल में अंतर नहीं।
प्रारूप सुविधा है, बैकअप नहीं; सहेजना, कार्य हटाना या सत्र end पर साफ।
Activity
टैब उपकरण कॉल/परिणाम, फ़ाइल क्रियाएँ, कमांड आउटपुट और त्रुटियाँ दिखाता है। मेटाडेटा विस्तार-योग्य; RTL UI में भी आउटपुट LTR।
सक्रिय संचालन प्रमाणित SSE प्रवाह खोलता है:
snapshot,run_state;- प्रदाता तर्क दे तो
reasoning_delta; assistant_delta;tool_call,tool_result;usage;skill_loaded; औरerror,done.
Reasoning उपलब्धता मॉडल/प्रदाता पर; Libre केवल API सामग्री दिखाता, गुप्त विचार-श्रृंखला पुनर्निर्मित नहीं कर सकता। कुछ मॉडल इसे नहीं भेजते। Text और उपकरण क्रियाएँ स्वतंत्र प्रवाह हो सकते हैं।
Output जानबूझकर सीमित है; कटौती आगे डेटा न होने का प्रमाण नहीं। मॉडल से संकरी परिणाम जाँचें।
Git
Git टैब /workspace में स्थानीय क्रियाएँ करता है:
mainब्रांच रिपो init;- porcelain स्थिति, आगे/पीछे, 20 कमिट तक;
- सीमित अंतर;
- 200 पथ तक stage;
- प्रशासक नाम/email या स्थानीय no-reply से कमिट;
- पहले कमिट बाद ब्रांच; और
- साफ़ वृक्ष पर मौजूदा ब्रांच स्विच।
सतह स्थानीय-केवल है: clone/fetch/पुल/पुश, दूरस्थ प्रबंधन, मनमाने कमांड, टोकन, SSH कुंजियाँ या पुल अनुरोध नहीं। इनके लिए अलग विश्वसनीय परिचय-पत्र मध्यस्थ, बेहतर GitHub ऐप या एकल-रिपो/क्रिया स्थापना टोकन। दीर्घजीवी परिचय-पत्र कार्यस्थल/कंटेनर परिवेश/रिपो विन्यास में न रखें।
Git पठन निष्क्रिय/सक्रिय कार्य में। मॉडल संचालन, टर्मिनल या पूर्वावलोकन कंटेनर स्वामित्व करे तो लेखन अस्वीकार; ब्रांच स्विच के लिए साफ़ वृक्ष। इससे दौड़ रुकते हैं।
UI कमांड स्थिर तर्क सरणियाँ और 1000:1000 उपयोग करते हैं; इनपुट शेल-मूल्यांकित नहीं। परिवेश प्रणाली/वैश्विक विन्यास, प्रॉम्प्ट, हुक, परिचय-पत्र सहायक, हस्ताक्षर, उपमॉड्यूल, बाहरी अंतर, textconv, नेटवर्क प्रोटोकॉल बंद करता है। Work वृक्ष /workspace न हो या Git डायरेक्टरी बाहर जाए तो अस्वीकार। चलने-योग्य साफ़/स्मज/प्रक्रिया फ़िल्टर पर लेखन अवरुद्ध।
यह Libre WebUI Git API बचाता है। प्रशासक टर्मिनल और मॉडल run_command से सामान्य Git चला सकते हैं; मनमाने कमांड सैंडबॉक्स/परिनियोजन सीमा से सीमित हैं।
अंतर्निहित कार्यप्रवाह कौशल
हर संचालन को /workspace सीमा, केवल-पठन रूट, अस्थायी प्रक्रियाएँ//tmp, नेटवर्क, सीमाएँ और पूर्वावलोकन जीवनचक्र की सर्वर-स्वामित्व reference मिलती है। कौशल कहते हैं:
- editing से पहले निर्देश, मैनिफेस्ट, lockfiles, स्क्रिप्ट, रिपो स्थिति देखें;
- असंबंधित कार्य बचाएँ, स्वतंत्र पठन बैच करें;
- plan पर न रुककर कार्यान्वयन जारी रखें;
- व्यापक परीक्षण से पहले लक्षित जाँच;
- blind पुनःप्रयास नहीं, निदान; और
- पूर्वावलोकन को अंतिम लंबी प्रक्रिया बनाने से पहले ऐप सत्यापित।
संदर्भ केवल मॉडल संदर्भ में। Libre AGENTS.md, कौशल डायरेक्टरी या नियंत्रण फ़ाइल नहीं बनाता। परियोजना निर्देश सुरक्षा सीमा override नहीं कर सकते।
Terminal
इंटरैक्टिव शेल उसी सैंडबॉक्स से जुड़ता है ताकि प्रशासक स्थिति देख, परियोजना निर्माण और debug कर सके।
वही नीति लागू है: अविशेषाधिकार 1000:1000, /workspace और क्षमताएँ रहित सुदृढ़ कंटेनर। Terminal run_command से अधिक विशेषाधिकार नहीं देता, केवल उसी सीमा का मानव अंतराफलक है।
- प्रमाणीकरण — प्राधिकरण हेडर HTTP से प्रोटोकॉल और सटीक कार्य-बंधा अल्पजीवी एक-समय टिकट बनता है।
/ws/work-terminalमें केवल टिकट और कार्य ID। हर इनपुट पर खाता/पहुँच/कार्य/स्वामी फिर जाँचते हैं; निरसन सत्र बंद और लीज़ मुक्त करता है। - Origin जाँच —
CORS_ORIGINयाBASE_URLहोने पर ब्राउज़र मूल मेल करे। दूरस्थ परिनियोजन में कम-से-कम एक निर्धारित करें। Electron/गैर-ब्राउज़र क्लाइंट Origin न भेजें तो भी वही टिकट/जाँच; TLS, फ़ायरवॉल और प्रॉक्सी से नियंत्रित करें। - प्रवेश — टर्मिनल रनटाइम लीज़ लेकर
WORK_MAX_ACTIVE_RUNTIMES_*में गणना होता है। - Container आयु — connected टर्मिनल कंटेनर को निष्क्रिय-रोक से बचाता है।
- समवर्तीता —
WORK_TERMINAL_MAX_SESSIONS_PER_TASKतयशुदा 2। - निष्क्रिय समय-सीमा —
WORK_TERMINAL_IDLE_TIMEOUT_MSतयशुदा 15 मिनट। - सक्रिय संचालन — टर्मिनल मॉडल चक्र समाप्त होने तक प्रतीक्षा करता है।
TTY को कैप्चर द्विदिश प्रवाह चाहिए, इसलिए टर्मिनल Docker इंजन API सीधे उपयोग करता है: WORK_DOCKER_SOCKET, फिर DOCKER_HOST का unix:// या Connection: Upgrade प्रॉक्सी वाला सादा HTTP tcp://, फिर /var/run/docker.sock। असमर्थित ssh:// या DOCKER_TLS_VERIFY वाला tcp:// टर्मिनल को स्पष्टीकरण सहित अनुपलब्ध करता है, बाकी Work नहीं। Kubernetes आकार-बदलाव सहित निष्पादन API TTY WebSocket उपयोग करता है।
इंटरैक्टिव sessions रिकॉर्ड नहीं होते; कमांड Activity में नहीं दिखते।
पूर्वावलोकन
पूर्वावलोकन ऐप आरंभ, रोक, embed और खुला करता है। खाली कमांड फ़ील्ड पहचानता है:
- रूट
package.jsonमें आवश्यक होस्ट/पोर्ट वालाdevस्क्रिप्ट; - built-in स्थिर सर्वर वाला रूट
index.html; या - अंतःस्थ डायरेक्टरी का एक ऐप।
रूट ऐप प्राथमिक है। अनेक अंतःस्थ ऐप या अनुपस्थित प्रवेश बिंदु स्पष्ट त्रुटि देता है, मनमाना npm नहीं। दूसरे परियोजना के लिए आरंभ पूर्वावलोकन से पहले कमांड दें; यह /workspace में शुरू होता है, जैसे cd apps/web && npm run dev -- --host 0.0.0.0 --port 4173। प्रक्रिया 0.0.0.0 और WORK_PREVIEW_PORT पर सुनकर 15 सेकंड में तैयार हो।
मॉडल start_preview उपयोग कर सकता है—लंबी-चलता प्रक्रिया छोड़ने का एकमात्र समर्थित तरीका। run_command पूर्णता पर पृष्ठभूमि child प्रक्रियाएँ साफ करता है।
Screen (Work Computer)
पूर्ण डेमो: वास्तविक असंपादित संचालन (30x, फिर वास्तविक समय), जिसमें एजेंट NASA ब्राउज़, चित्र चयन और एक प्रॉम्प्ट से Three.js गैलरी निर्माण/परीक्षण करता है।
Work Computer नीति Screen टैब जोड़ती है: उसी सैंडबॉक्स में विंडो प्रबंधक, पैनल और 1280×800 Chromium वाला सीधा आभासी डेस्कटॉप। Agent देखें, माउस/कीबोर्ड अधिग्रहण करें, कंप्यूटर ऑडियो सुनें और प्रदर्शन से क्रियाएँ सिखाएँ। टैब on-माँग ग्राफ़िकल सत्र शुरू करता है; पर्यवेक्षक से पहले कुछ नहीं चलता; VNC दृश्य WebSocket से जुड़ता है।
प्रशासक एक क्लिक Enable से built-in ग्राफ़िकल इमेज और नीति बनाता है; पहली बार मिनट लगते हैं, हाथ-से docker build नहीं। फ़िल्टरित प्रॉक्सी में निर्माण एंडपॉइंट बंद है; इमेज ghcr.io/libre-webui/libre-work-computer (libre-work-computer:latest) होस्ट पर पुल करें या deploy/work-computer/ से निर्माण करें, तब बटन केवल नीति बनाता है। Screen पूर्वावलोकन की तरह लूपबैक पोर्ट से है, इसलिए कार्य को नेटवर्क चाहिए।
कंटेनर का VNC server localhost पर सुनता है और हर सत्र में दो passwords उपयोग करता है: प्रत्येक अनुमत पर्यवेक्षक को केवल-दृश्य password और वर्तमान control-lease स्वामी को पूरा password मिलता है। Server बाकी input अनदेखा करता है। WebSocket bridge केवल host loopback पर प्रकाशित पहुँच-योग्य सतह है। हर पर्यवेक्षक terminal की तरह एकबारगी session/task ticket से प्रमाणित होता है; हर connection पर Work access जाँचा जाता है और revocation तुरंत screen काट देता है। अधिकतम चार पर्यवेक्षक हो सकते हैं और viewing को task activity माना जाता है।
दृश्य निष्पादन से प्रतिस्पर्धा नहीं करता: संचालन के दौरान वही सैंडबॉक्स, देखा स्क्रीन अगला संचालन अवरुद्ध नहीं करता, सत्र पूर्णता बाद भी रहता है—यहाँ-तक बाहरी वर्कर टीम परिनियोजन। ब्राउज़र प्रोफ़ाइल /workspace/.browser-profile में, इसलिए लॉगिन कंटेनर पुनःआरंभ पार करते हैं।
Agent नियंत्रण दो उपकरण उपयोग करता है। computer_observe पूर्ण स्क्रीनशॉट, सूचक, सक्रिय विंडो, वर्तमान ब्राउज़र URL, पृष्ठ/ब्राउज़र फ़ोकस, फ़ोकसयुक्त तत्व सारांश और स्क्रीनशॉट हैश लौटाता है। अर्थगत संकेत कंटेनर लूपबैक DevTools से; पुराने चित्र में नहीं। computer_act स्थानांतरण, क्लिक, दोहरा/दाएँ क्लिक, टाइप, कुंजी संयोजन, स्क्रॉल, प्रतीक्षा की 24-क्रिया बैच चलाकर स्थिर स्क्रीनशॉट लौटाता है।
तीन रक्षाएँ: type/key अपेक्षित focus घोषित कर सकते हैं और फ़ील्ड फ़ोकस-रहित हो तो सुरक्षित विफल, ताकि पाठ पता पट्टी में न जाए। विंडो/शीर्षक/फ़ोकस बदलने पर पुराने निर्देशांक के कारण बैच रुकता। अपेक्षित शीर्षक, URL या क्षेत्र बदलाव अनुकूली समय-सीमा में सत्यापित होता है; प्रतीक्षा सफलता नहीं।
बैच बाद स्क्रीन स्थिर विलंब नहीं, स्थिरता तक पोल होता है। परिणाम प्रमाण रखते हैं: क्लिक निकट पिक्सेल बदलाव, scroll_until पाठ/किनारा तक दृश्यता, हर अवलोकन पिछला से तुलना और no-बदलाव स्पष्ट। एक-पंक्ति subgoal जाँच-बिंदु और पुनर्प्राप्ति में दोहराना। अपरिवर्तित स्क्रीन पर तीन समान क्रियाएँ चेतावनी; दोहराव संचालन को इनपुट अनुरोध से रोकती है। अपुष्ट प्रतीक्षाएँ नई अवलोकन माँगते हैं। चक्र, विलंब, स्क्रीनशॉट, रक्षाएँ, निर्णय उपकरण/परिणाम के साथ लॉग होते हैं।
स्क्रीनशॉट Ollama, Anthropic, Gemini और OpenAI-अनुकूल Chat/Responses मार्ग में वास्तविक चित्र हैं; नियंत्रण के लिए दृष्टि मॉडल बेहतर। प्रदाता इमेज अस्वीकार करे तो संचालन विफल नहीं: बाकी संचालन से स्क्रीनशॉट हटते, मॉडल पाठ अवलोकन पर, लॉग स्पष्टीकरण। यह कमज़ोर है। संदर्भ में केवल हालिया स्क्रीनशॉट; स्थायी लॉग केवल पाठ, इमेज बाइट नहीं।
ब्राउज़र में सामग्री अवरोधन: विज्ञापन/ट्रैकर के लिए uBlock Origin Lite (स्थिर चेकसम-सत्यापित निर्माण, प्रबंधित फ़िल्टर नीति) और कुकी-सहमति बैनर स्वतः-बंद। विज्ञापन स्क्रीनशॉट/टोकन/क्लिक खर्च नहीं करते। ज्ञात विज्ञापन स्क्रिप्ट सुरक्षित स्थानीय प्रतिरूप बनते हैं। Agent परिचय-पत्र नहीं भरता, CAPTCHA/2FA नहीं पार करता; बाधा बताता है। अविश्वसनीय कार्य में ग्राफ़िकल नीति + फ़िल्टरिंग DNS उपयोग करें।
ऑडियो तयशुदा बंद क्योंकि ब्राउज़र क्लिक चाहता है। स्पीकर बटन वास्तविक-समय कंप्यूटर ऑडियो देता है। PulseAudio शून्य सिंक और निगरानी कच्चा PCM को समान टिकट/पहुँच पुनर्जाँच/पर्यवेक्षक सीमा वाले सेकंड लूपबैक प्रमाणित WebSocket से भेजता है। वर्तमान deploy/work-computer/ इमेज चाहिए।
लेना अधिग्रहण नियंत्रण लॉगिन, CAPTCHA या मानव-केवल चरण के लिए माउस/कीबोर्ड देता है; पूर्ण वापस करता है। VNC उत्पन्न लॉग-रहित पूर्ण/दृश्य पासवर्ड उपयोग करता; पूर्ण केवल लीज़ स्वामी। लीज़ दो मिनट में समाप्त, खुला UI नवीनीकृत करता, दूसरे उपयोगकर्ता से नहीं छीना जा सकता।
अनुमति स्क्रीन अधिग्रहण नीति नियंत्रण पूरी रोक सकती है: अधिग्रहण/शिक्षण बटन गुप्त, एंडपॉइंट अस्वीकार, request_takeover अनुपलब्ध; दृश्य रहता है। मानव नियंत्रण में computer_observe/computer_act अवरुद्ध, एजेंट हस्तक्षेप या इनपुट कैप्चर नहीं। request_takeover कारण बैनर और वापसी प्रतीक्षा। परिचय-पत्र कीबोर्ड से पृष्ठ, मॉडल/लॉग से नहीं। पुराना चित्र दृश्य-केवल।
सिखाएँ कार्य प्रदर्शन रिकॉर्ड करता है: मानव दृश्य सूचक सहित नियंत्रण करता, क्रियाएँ निर्देशांक में। हर क्लिक केवल-पठन टैग, ID, दृश्य लेबल, वर्तमान URL से बाइंड, इसलिए चरण लक्ष्य नाम देता है, जैसे “button#submit (Place order) क्लिक करें”; निर्देशांक संकेत हैं।
सहेजना नियतात्मक, मॉडल-रहित स्क्रिप्ट बनाता है: कुंजी-दबाव स्ट्रिंग में, क्लिक vs खींचाव 8-पिक्सेल सीमा, विराम प्रतीक्षाएँ; गुप्त-like/परिचय-पत्र-रूप पाठ (तीन वर्ग के 8+ वर्ण) संशोधित होकर request_takeover। प्राकृतिक-भाषा दिनचर्या बंधा लक्ष्य, फिर निर्देशांक, computer_observe पुनर्व्याख्या; शर्तें, इनपुट, चरण, सत्यापन, देखे होस्ट की अनुमत दायरा (बाहर जाने से पहले रोक/पूछना), स्वीकृति सीमाएँ और विफलता रोक।
स्क्रिप्ट taught- उपसर्ग वाली सामान्य कौशल, संस्करण/संपादन/साझा सहित। Work Computer स्वामी की सक्रिय सिखाए कौशल लोड/सूची करता; पुनरावृत्ति संबंधित दिनचर्या वाला सामान्य संचालन। संचालन बाद चिह्न ट्रैक रिकॉर्ड में दिनांकित सफलता/त्रुटि आकलन एक-क्लिक जोड़ते हैं (नवीनतम पहले, सीमित, प्रत्येक सामान्य संस्करण)। रिकॉर्डिंग में वास्तविक पासवर्ड न भरें; लॉगिन तक दिखाएँ, सहेजना, पुनरावृत्ति में request_takeover।
प्रदाता, मार्गन और डेटा प्रकटीकरण
समर्थित मार्ग
| मार्ग | जाँच और व्यवहार |
|---|---|
| स्थानीय Ollama | स्वस्थ Ollama; सटीक मॉडल उपकरण समर्थन बताता है। |
| Ollama Cloud | Explicit Ollama मार्ग; क्लाउड suffix प्रकटीकरण दिखाता है। |
| पूर्णता/चैट प्लगइन | सक्रिय, सटीक मॉडल और वर्तमान प्रशासक परिचय-पत्र। |
| Anthropic प्लगइन | Work के लिए Anthropic संदेश/उपकरण adapter। |
| Gemini प्लगइन | Work के लिए Gemini सामग्री/function कॉल adapter। |
| अन्य अनुकूल | Messages, उपकरण और उपकरण choice का OpenAI रूप। |
प्रदाता टाइप और प्लगइन ID कार्य तथा प्रत्येक संचालन में। मॉडल नाम अकेला मार्ग नहीं चुनता; समान-नाम प्लगइन मौजूदा कार्य अधिग्रहण नहीं करता।
प्रदाता को मिलने वाला डेटा
- Work प्रणाली प्रॉम्प्ट;
- कार्यप्रवाह कौशल और वर्तमान परिवेश सीमाएँ;
- उपयोगकर्ता/सहायक के last 30 संदेश, max 256 KB;
- उपकरण परिभाषाएँ;
- उपकरण-कॉल इतिहास; और
- सूचियाँ, फ़ाइल सामग्री, खोज, आउटपुट, त्रुटियाँ सहित परिणाम।
वॉल्यूम पूरा अपलोड नहीं, पर उपकरण-लौटाई सामग्री बातचीत बनकर प्रदाता को जाता है। संवेदनशील कार्य से पहले संग्रह अवधि, प्रशिक्षण, मूल्य, उपयोग शर्तें देखें।
परिचय-पत्र सर्वर-side रहते और Work कंटेनर में माउंट नहीं होते।
ऐप परिचय-पत्र एन्क्रिप्शन पूरे कार्य का एन्क्रिप्शन नहीं। बातचीत/परिणाम/आउटपुट/मेटाडेटा सामान्य डेटाबेस सामग्री; फ़ाइलें सामान्य वॉल्यूम/PVC फ़ाइलें। खतरा मॉडल अनुसार होस्ट नियंत्रण और डिस्क एन्क्रिप्शन लगाएँ।
दूरस्थ प्रदाता प्रकटीकरण
प्लगइन मॉडल और :cloud/-cloud Ollama नाम दूरस्थ माने जाते हैं। चयन पर डेटा प्रवाह और कई भुगतानयुक्त कॉल का बंद-योग्य सूचना; प्राथमिकता उपयोगकर्ता के लिए सहेजा।
सभी मार्ग WORK_MAX_AGENT_ROUNDS, तयशुदा 48; प्लगइन के लिए अलग 12 नहीं। उपकरण बजट max(128, configured rounds × 8) कॉल। समाप्त होने पर Libre पूरा कार्य/जाँचें/बाधाएँ/शेष का उपकरण-रहित अंतिम हस्तांतरण माँगकर अपवाद/झूठी पूर्णता नहीं, इनपुट आवश्यक लिखता है। जारी वही कार्यस्थल; एक संचालन कई भुगतानयुक्त अनुरोध कर सकता है।
होस्ट फ़ोल्डर (वैकल्पिक)
Docker सामान्यतः नामित वॉल्यूम उपयोग करता है, इसलिए मॉडल वास्तविक फ़ाइलें नहीं देखता। कार्य को वास्तविक होस्ट डायरेक्टरी से बाइंड कर सकते हैं। Kubernetes ऐसे डायरेक्टरी अस्वीकार कर PVC उपयोग करता है।
WORK_HOST_WORKSPACES_ENABLED=true
WORK_HOST_WORKSPACE_ROOTS=/Users/you/Projects
WORK_HOST_WORKSPACE_ROOTS :-अलग मूल सूची है; तयशुदा सर्वर-उपयोगकर्ता होम। कार्यस्थल फ़ोल्डर वैकल्पिक; खाली पृथक्करण बचाता है।
पथ निरपेक्ष मौजूदा डायरेक्टरी हो और प्रतीक-लिंक समाधान बाद रूट के भीतर। .ssh, .gnupg, .aws, .config, .kube, .docker, .claude, .libre-webui, node_modules हमेशा अस्वीकार। अनुमत पथ सहेजा/दिखाया।
मॉडल वास्तविक फ़ाइलें पढ़ता/बदलता है; अविशेषाधिकार उपयोगकर्ता, हटाई क्षमताएँ और सीमाएँ अब डायरेक्टरी से अलग नहीं करते। आवश्यकता न हो तो बंद रखें, संकरी मूल और संस्करण-नियंत्रित डायरेक्टरी चुनें।
Persistence और जीवनचक्र
| स्थिति | भंडारण | आयु |
|---|---|---|
| स्वामी, शीर्षक, प्रदाता, स्थिति | Libre डेटाबेस | कार्य/उपयोगकर्ता हटाना तक |
| संचालन, त्रुटियाँ, संदेश, गतिविधि | Libre डेटाबेस | कार्य हटाना तक |
| Files | Docker वॉल्यूम या K8s PVC | रद्द, पूर्वावलोकन रोक, restarts पार |
| रूट प्रणाली/अस्थायी फ़ाइलें | Container या Pod | अस्थायी; रोक/पुनर्निर्माण |
| पूर्वावलोकन प्रक्रिया | चलता सैंडबॉक्स | अस्थायी; स्वास्थ्य-सत्यापित होने पर |
| न-सहेजा प्रारूप | ब्राउज़र सत्र | अस्थायी सुविधा |
कार्य UUID सर्वर बनाता; संसाधन नाम केवल सर्वर। Reuse/हटाना से पहले प्रबंधन/स्वामी लेबल जाँच; दूसरे कार्य का संसाधन अस्वीकार।
Sandbox on-माँग बनता। फ़ाइल सहायक निष्क्रिय परिवेश रोकते, कमांड पूर्णता बाद; सत्यापित पूर्वावलोकन इसे रख सकता है। स्थायी कार्यस्थल फिर माउंट होता है।
प्रशासक नामित रनटाइम नीतियाँ बनाते हैं: इमेज, स्मृति/CPU/PID सीमाएँ, Kubernetes आकार, निष्क्रिय समय-सीमा, नेटवर्क और Work Computer (GUI + ब्राउज़र) / अनुमति स्क्रीन अधिग्रहण (शिक्षण भी)। कार्य चुनी नीति पर; खाली फ़ील्ड वैश्विक मान विरासत, हटाना अगला पुनर्निर्माण पर लौटाता है। नीति केवल संसाधन/सुविधाएँ बदलती, अविशेषाधिकार मोड/केवल-पठन रूट/हटाई क्षमताएँ/नेटवर्क पृथक्करण कमजोर नहीं कर सकती।
WORK_RUNTIME_IDLE_TIMEOUT_MS कमांड, टर्मिनल या हस्ताक्षरित पूर्वावलोकन अनुरोध न हों तो सैंडबॉक्स रोककर slot छोड़ता है। कार्यस्थल रहता, पूर्वावलोकन फिर आरंभ। तयशुदा 0 स्पष्ट रोक तक रखता है।
Server आरंभ पर सक्रिय संचालन विफल और पूर्वावलोकन स्थिति साफ़। ड्राइवर प्रबंधित कंटेनर/Pod एक क्वेरी में लेता है। ज्ञात कार्य के चलता परिवेश रोक, पहले-से रुके अपरिवर्तित, अनाथ हटाना। स्वामी लेबल से, नाम से नहीं। प्रति नेमस्पेस/डेमन एक Libre इंस्टेंस। सफाई सिद्ध न हो तो Work सुरक्षित-बंद, हर 10 सेकंड पुनःप्रयास और परिवर्तनकारी क्रियाएँ अवरुद्ध।
नेटवर्क
नामित नीति न हो तो नेटवर्क सक्रिय। प्रशासक तयशुदा-बंद नेटवर्क नीति बना सकता; लेखक निर्माण पर चुनता है। प्रति-कार्य स्विच नहीं; नीति बदलाव परिवेश पुनर्निर्माण चाहता है।
Docker नेटवर्कयुक्त कार्य को com.docker.network.bridge.enable_icc=false वाले प्रबंधित ब्रिज (libre-webui-work, WORK_NETWORK_NAME) से जोड़ता है:
- सैंडबॉक्स एक-दूसरे से जुड़ना नहीं; और
- तयशुदा में साझा ब्रिज के परिनियोजन कंटेनर, unpublished डेटाबेस/Ollama तक नहीं।
समान नाम पर प्रबंधन लेबल न हो तो नेटवर्क अस्वीकार।
Kubernetes Pod नेटवर्क लेबल लेता है। Helm तयशुदा-अस्वीकार, पूर्वावलोकन-केवल प्रवेश और work.networkPolicy.blockedEgressCidrs को छोड़ अनुमत Pod का इंटरनेट निर्गम बनाता है। CNI समर्थन पर ही प्रभावी; Kubernetes देखें।
पैकेज, Git और API के लिए निर्गामी अनुमत। यह निर्गम फ़ायरवॉल नहीं। कोड पहुँच सकता है:
- Docker होस्ट सेवाएँ;
- होस्ट LAN;
- इंटरनेट; और
- अवसंरचना मेटाडेटा एंडपॉइंट।
Egress नीति उपकरण
WORK_RUNTIME_DNS(Docker) — अल्पविराम-अलग IPv4/IPv6--dnsसे; फ़िल्टरिंग रिज़ॉल्वर नाम सूचियाँ। अमान्य पते अस्वीकार/लॉग, ध्वज प्रविष्ट नहीं।- होस्ट/ऊपरी फ़ायरवॉल प्रबंधित ब्रिज stable सबनेट पर।
WORK_NETWORK_NAMEविशेष options, प्रबंधन लेबल और ICC बंद वाला पूर्वनिर्मित नेटवर्क।
DNS प्रत्यक्ष IP सीमित नहीं करता; गारंटी के लिए फ़ायरवॉल।
Work को डेटा-निकासी सुरक्षा न मानें। केवल विश्वसनीय उपयोगकर्ता। Autonomous कार्य के लिए नामित ऑफ़लाइन नीति; तयशुदा बदलने वाला वैश्विक परिवेश var नहीं।
नेटवर्क परिचय-पत्र नहीं जोड़ता: SSH कुंजियाँ, क्लाउड परिचय-पत्र, ब्राउज़र प्रोफ़ाइल, होस्ट होम या Docker सॉकेट कार्य में माउंट नहीं। कोड /workspace में लिखा गुप्त भेज सकता है।
Sandbox यातायात मॉडल अनुरोध से अलग; Ollama/प्लगइन सर्वर-side स्पष्ट मार्ग से।
Sandbox सुरक्षा सीमा
Docker कंटेनर:
1000:1000गैर-रूट;- कार्य डायरेक्टरी
/workspace; - केवल चुनी कार्य वॉल्यूम;
- केवल-पठन रूट और सीमित
/tmp; - सभी Linux क्षमताएँ हटाना;
no-new-privileges;- अविशेषाधिकार और init प्रक्रिया;
- CPU, स्मृति, प्रक्रिया, समय, आउटपुट सीमाएँ;
- स्वैप स्थिर (
--memory-swap=--memory); - प्रबंधित no-ICC नेटवर्क या no नेटवर्क; और
- केवल पूर्वावलोकन पोर्ट assigned लूपबैक पर।
सभी गुण docker inspect से पुनर्जाँच और ai.libre-webui.policy में हैश। पुराना-नीति कंटेनर अद्यतन बाद नष्ट/पुनर्निर्माण।
Kubernetes समतुल्य: अविशेषाधिकार उपयोगकर्ता, केवल-पठन रूट, seccomp RuntimeDefault, no विशेषाधिकार वृद्धि, हटाई क्षमताएँ, सीमित अस्थायी संसाधन, no ServiceAccount टोकन, /workspace PVC; लेबल/अंगुली-चिह्न सत्यापित।
पथ सत्यापन निरपेक्ष पथ, अतिक्रमण, उलटी-स्लैश, NUL, अत्यधिक लंबाई अस्वीकार। सहायक वास्तविक पथ समाधान और प्रतीक-लिंक बाहर-निकलना अस्वीकार। लेखन अस्थायी फ़ाइल + परमाण्विक नाम-बदलना।
ये होस्ट प्रकटीकरण घटाते हैं, Work को VM या सुरक्षित दुर्भावनापूर्ण-विश्लेषण परिवेश नहीं बनाते। कंटेनर होस्ट कर्नेल साझा करते; Docker/Kubernetes/रनटाइम/इमेज/निर्भरता/कर्नेल कमज़ोरी सीमा पार कर सकती है।
Docker वॉल्यूम की स्वतंत्र कोटा नहीं। परियोजना भंडारण भर सकता; वृद्धि निगरानी और होस्ट सीमाएँ। Kubernetes PVC आकार लागूकरण भंडारण प्रदाता पर।
Docker सुदृढ़ीकरण जाँच-सूची
Kubernetes में नेमस्पेस RBAC, Pod सुरक्षा, भंडारण वर्ग और CNI NetworkPolicy लागूकरण मार्गदर्शिका अनुसार जाँचें।
ऐप कंटेनर ध्वज, पथ और API बचाता है; होस्ट फ़ायरवॉल, भंडारण कोटा या डेमन विशेषाधिकार नहीं दे सकता। संचालक जिम्मेदार।
1. Docker नियंत्रण अलग करना
मुख्य कंटेनर को डेमन नियंत्रण चाहिए; सॉकेट नियंत्रण-plane परिचय-पत्र है। ऐप समझौता होस्ट समझौता कर सकता है।
docker-compose.socket-proxy.yml सॉकेट ऐप को नहीं देता। प्रॉक्सी केवल कंटेनर, चित्र, वॉल्यूम, नेटवर्क, निष्पादन, जानकारी; स्वार्म, गुप्त, विन्यास, निर्माण, कमिट, प्रणाली अवरुद्ध। Libre सॉकेट/समूह माउंट बिना DOCKER_HOST=tcp://docker-socket-proxy:2375; CLI/टर्मिनल/निदान इसे अनुसरण। API सतह छोटा, प्रभाव दायरा रहता: कंटेनर निर्माण होस्ट पथ माउंट कर सकती है।
मज़बूत सीमा अलग VM बिना असंबंधित कार्यभार; मज़बूत समर्पित रूट-रहित डेमन या रनटाइम होस्ट। पहले लागूकरण फ़ाइल स्वामित्व, मार्गन, सफाई, टर्मिनल सत्यापित। सॉकेट केवल-पठन माउंट API केवल-पठन नहीं।
2. Sandbox से होस्ट नियंत्रण रोकना
ICC बंद करना होस्ट सेवाएँ नहीं रोकता। वास्तविक ब्रिज/सबनेट जाँचें:
docker network inspect libre-webui-work \
--format 'id={{.Id}} subnets={{range .IPAM.Config}}{{.Subnet}} {{end}}'
ss -lntup
स्थायी फ़ायरवॉल ब्रिज से SSH, Docker API, डेटाबेस, प्रशासक पोर्ट अस्वीकार करे। नष्टयोग्य कंटेनर और अनुमत डाउनलोड से परीक्षण, फिर स्थायी। DOCKER-USER अग्रेषित यातायात; होस्ट स्वयं के लिए INPUT नियम।
3. Egress लक्ष्य सीमित करना
Cloud मेटाडेटा, निजी अवसंरचना, क्लाइंट LAN अनावश्यक हों तो अवरुद्ध। DNS + फ़ायरवॉल। प्रत्यक्ष IP DNS बाईपास; प्रत्यक्ष कनेक्शन में HTTP प्रॉक्सी पर्याप्त नहीं। नीति कंटेनर बाहर लागू।
No-नेटवर्क, रजिस्ट्री-केवल और खुला-निर्गम अलग नीतियाँ। नीति नेटवर्क जोड़, बाहरी नियम अनुमत लक्ष्य तय करते हैं।
4. वास्तविक भंडारण कोटा
CPU/स्मृति/PID सीमाएँ वॉल्यूम नहीं सीमित। XFS परियोजना कोटा, कोटा तार्किक वॉल्यूम या आकार-लागूकारी वॉल्यूम/PVC ड्राइवर। ext4 Docker local घोषित आकार से विश्वसनीय कोटा नहीं।
हर ai.libre-webui.managed=true वॉल्यूम और Docker डेटा रूट निगरानी, पूर्ण होने से पहले चेतावनी, विफलता परीक्षण। UI/du केवल चेतावनी, जाँचें बीच सीमा लागू नहीं।
5. नीति सत्यापित करना
बदलाव बाद नष्टयोग्य कार्य और docker inspect से UID, केवल-पठन रूट, क्षमताएँ, no-new-privileges, स्मृति, स्वैप, CPU, PID, एकल कार्य वॉल्यूम, नेटवर्क जाँचें। मुख्य कंटेनर केवल अपेक्षित माउंट; सार्वजनिक प्रवेश प्रमाणित प्रॉक्सी/टनल से, Docker/पूर्वावलोकन पोर्ट से नहीं।
पूर्वावलोकन सुरक्षा और पहुंच
Docker पूर्वावलोकन सर्वर लूपबैक पर गतिशील प्रकाशित; Kubernetes Pod IP। मॉडल/ब्राउज़र मनमाने मूल नहीं चुनते। Libre सटीक कार्य/एंडपॉइंट URL हस्ताक्षर, हर अनुरोध प्रक्रिया सत्यापित और HTTP/WebSocket /api/work/previews प्रॉक्सी। रोक/पुनःआरंभ URL निरसन।
Responses से Libre credentials और upstream cookies हटा दिए जाते हैं। HTML को iframe sandbox और CSP सीमित करते हैं, जो same-origin के बिना scripts, forms, modal dialogs और downloads की अनुमति देते हैं; यही सुरक्षा अलग tab पर भी लागू होती है। उत्पन्न code अविश्वसनीय रहता है और कार्यस्थल या browser data भेज सकता है। URL अल्पजीवी secret है।
ब्राउज़र समान सार्वजनिक मूल लोड करता, इसलिए दूरस्थ HTTPS बिना पोर्ट/Pod IP/mixed सामग्री। रिवर्स प्रॉक्सी /api/work/previews/ WebSocket सुरक्षित करे; प्रदत्त Nginx करता है।
मुख्य ऐप फ़्रेम में केवल स्वामित्व मूल/Turnstile। पूर्वावलोकन बॉडी पास और संकरी सैंडबॉक्स हेतु वैश्विक Helmet बाईपास। विकास सर्वर आवश्यक हेडर कभी-कभार देते, इसलिए क्रॉस-मूल एम्बेडर नीति बंद।
Deployment मैट्रिक्स
| Deployment | संचालन/फ़ाइलें | पूर्वावलोकन |
|---|---|---|
स्थानीय npx libre-webui | Docker स्थापित/पहुँच-योग्य हो तो समर्थित। | ऐप मूल पर हस्ताक्षरित प्रॉक्सी। |
| स्थानीय स्रोत संचालन | वही requirements। | Port 3001 विकास API मूल। |
| Electron | Conditional: अलग Work रनटाइम बिना बाहरी बैकएंड। | उस बैकएंड का हस्ताक्षरित प्रॉक्सी। |
| दूरस्थ बेयर मेटल/VM | होस्ट पर Docker हो तो। | HTTP/WebSocket रिवर्स प्रॉक्सी। |
| मानक Compose | Docker Desktop पर तयशुदा समर्थित: इमेज में CLI, Compose होस्ट सॉकेट माउंट करता है और Work पोर्ट host.docker.internal से जाते हैं। नेटिव Docker Engine को अतिरिक्त रूप से पहुँच-योग्य गैर-सार्वजनिक WORK_PREVIEW_BIND चाहिए। | समान सार्वजनिक मूल। |
| Kubernetes/Helm | --set work.enabled=true: संचालन/फ़ाइलें/कमांड/Git/टर्मिनल/Work Computer स्क्रीन/ऑडियो के लिए Pod IP पर Pod/PVC, नेमस्पेस Role, तयशुदा-अस्वीकार NetworkPolicies; सॉकेट नहीं। Kubernetes। | क्लस्टर से Pod IP प्रॉक्सी। |
Libre WebUI स्वयं Docker में हो तो Work
रिपॉज़िटरी के सभी Compose फ़ाइलें Work शामिल करते हैं: इमेज में CLI और /var/run/docker.sock माउंट। Docker Desktop दिए गए रूटिंग डिफ़ॉल्ट से चलता है। नेटिव Docker Engine को अतिरिक्त रूप से WORK_PREVIEW_BIND ऐसे गैर-सार्वजनिक होस्ट अंतराफलक पर चाहिए जो सहोदर कंटेनरों से पहुँच-योग्य हो, जैसा नीचे बताया है।
कार्य कंटेनर Libre WebUI कंटेनर के siblings हैं, docker ps में और समान जीवनचक्र से प्रबंधित।
सॉकेट रूट-समतुल्य होस्ट नियंत्रण देता है। Work इसके बिना नहीं चलता: हर Libre WebUI प्रशासक प्रभावी Docker-होस्ट प्रशासक है। सुरक्षा, नेटवर्क, जीवनचक्र, बैकअप, पहुँच संचालक की जिम्मेदारी। Work बंद करने को सॉकेट पंक्ति हटाएँ; अन्य सुविधाएँ स्वतंत्र।
विकल्प DOCKER_HOST के साथ docker-compose.socket-proxy.yml; नियंत्रण पृथक्करण देखें।
तीन शर्तें:
- Docker CLI मौजूद। Official इमेज में; विशेष में
docker-cliयाWORK_DOCKER_COMMAND। अन्यथा:The "docker" CLI is not installed…. - सॉकेट माउंटेड। अन्यथा:
No Docker daemon is reachable…. - उपयोगकर्ता सॉकेट समूह में। इमेज uid 1001
nodejs; सॉकेट सामान्यतःroot/docker, इसलिए Composegroup_add: ['${DOCKER_GID:-0}']। तयशुदा Docker डेस्कटॉप के लिए, Linux अपना ID चाहता है। अन्यथा: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
पूर्वावलोकन पोर्ट होस्ट लूपबैक पर; HTTP/WebSocket समान-मूल हस्ताक्षरित प्रॉक्सी से। HTTPS/टनल में, सैंडबॉक्स लागू और पुराने URL निरस्त।
Docker प्रकाशित/जुड़ना पते अलग हो सकते हैं। WORK_PREVIEW_BIND=127.0.0.1 रखें; WORK_DOCKER_PUBLISHED_HOST पहुँच-योग्य होस्ट पता (host.docker.internal on Docker डेस्कटॉप)। साथ आने वाले Compose प्रोफ़ाइल दोनों मान सेट करते हैं और उस होस्ट नाम को मैप करते हैं। नेटिव Linux परिनियोजन को WORK_PREVIEW_BIND को Docker bridge gateway (या किसी अन्य स्पष्ट रूप से पहुँच-योग्य, गैर-सार्वजनिक होस्ट अंतराफलक) से बदलना ही होगा; मैपिंग अकेला लूपबैक पहुँच-योग्य नहीं बनाता। इन कच्चे अस्थायी पोर्ट को कभी 0.0.0.0 पर बाइंड न करें।
समवर्तीता सीमित: WORK_MAX_ACTIVE_RUNTIMES_PER_USER 2, WORK_MAX_ACTIVE_RUNTIMES_GLOBAL 3। Capabilities व्यस्त स्थिति बताते हैं। Resources पर्याप्त हों तभी बढ़ाएँ।
Kubernetes में work.enabled=true; चार्ट मार्गदर्शिका का RBAC, नेमस्पेस, नीतियाँ, Pod/PVC बनाता है।
Runtime विन्यास
| चर | तयशुदा | उद्देश्य |
|---|---|---|
WORK_RUNTIME_BACKEND | docker | Sandbox बैकएंड: docker या kubernetes |
WORK_RUNTIME_IMAGE | node:22.22-bookworm@sha256:2d178f2785b96dfbf62a416ca2e40f50e30150b4ff3320d706f0d96e90600eb3 | कार्य सैंडबॉक्स इमेज |
WORK_DOCKER_COMMAND | docker | Docker CLI executable |
WORK_COMMAND_TIMEOUT_MS | 120000 | तयशुदा कमांड समय-सीमा |
WORK_MAX_OUTPUT_CHARS | 50000 | Maximum कैप्चर आउटपुट |
WORK_MAX_AGENT_ROUNDS | 48 | मॉडल/उपकरण चक्र per संचालन |
WORK_MEMORY_LIMIT | 2g | Container स्मृति सीमा |
WORK_CPU_LIMIT | 2 | Container CPU सीमा |
WORK_PIDS_LIMIT | 256 | Container प्रक्रिया सीमा |
WORK_PREVIEW_PORT | 4173 | Container ऐप पोर्ट |
WORK_PREVIEW_BIND | 127.0.0.1 | होस्ट प्रकाशित अंतराफलक |
WORK_DOCKER_PUBLISHED_HOST | समान as WORK_PREVIEW_BIND | प्रकाशित Work पोर्ट का होस्ट/IP |
WORK_COMPUTER_SCREEN_PORT | 6080 | Screen WebSocket ब्रिज पोर्ट |
WORK_COMPUTER_AUDIO_PORT | 6081 | ऑडियो WebSocket ब्रिज पोर्ट |
WORK_RUN_LEASE_WAIT_MS | 60000 | अस्थायी रनटाइम लीज़ स्वामी प्रतीक्षा |
WORK_MAX_ACTIVE_RUNTIMES_GLOBAL | 3 | Instance-wide समवर्ती कंटेनर कार्य |
WORK_MAX_ACTIVE_RUNTIMES_PER_USER | 2 | प्रति-प्रशासक समवर्ती कार्य |
WORK_MAX_TASKS_GLOBAL | 500 | Instance स्थायी कार्य अधिकतम |
WORK_MAX_TASKS_PER_USER | 100 | प्रति-प्रशासक स्थायी अधिकतम |
WORK_NETWORK_NAME | libre-webui-work | Managed ब्रिज for नेटवर्कयुक्त सैंडबॉक्स |
WORK_RUNTIME_DNS | अनिर्धारित | अल्पविराम-अलग रिज़ॉल्वर IP |
WORK_DOCKER_SOCKET | DOCKER_HOST if unix:///tcp://, अन्यथा /var/run/docker.sock | Terminal/निदान Docker इंजन एंडपॉइंट |
WORK_TERMINAL_MAX_SESSIONS_PER_TASK | 2 | Concurrent ब्राउज़र terminals |
WORK_TERMINAL_IDLE_TIMEOUT_MS | 900000 | Terminal निष्क्रिय समय-सीमा |
WORK_RUNTIME_IDLE_TIMEOUT_MS | 0 (बंद) | निष्क्रिय सैंडबॉक्स रोक, पूर्वावलोकन सहित |
WORK_K8S_NAMESPACE | libre-webui-work | Kubernetes सैंडबॉक्स Pod/PVC नेमस्पेस |
WORK_K8S_STORAGE_CLASS | क्लस्टर तयशुदा | कार्यस्थल PVC StorageClass |
WORK_K8S_WORKSPACE_SIZE | 5Gi | प्रति-कार्य कार्यस्थल PVC आकार |
WORK_K8S_POD_READY_TIMEOUT_MS | 900000 | Sandbox Pod चलता प्रतीक्षा |
WORK_K8S_POD_GONE_TIMEOUT_MS | 60000 | Deleted Pod disappearance प्रतीक्षा |
उत्पादन में स्थिर सत्यापित इमेज संस्करण/डाइजेस्ट। परिवर्तनशील टैग Libre WebUI बदले बिना CLI उपकरण/सुरक्षा सीमा बदल सकता है।
संचालन, पूर्वावलोकन, फ़ाइल सहायक, कमांड और सैंडबॉक्स पुनर्निर्माण साझा क्षमता लेखांकन। गिना कार्य की अंतःस्थ क्रिया फिर नहीं गिनी। अधिक पर HTTP 429।
Fixed प्रोटोकॉल और UI सीमाएँ
| वस्तु | सीमा |
|---|---|
| नया कार्य/संचालन संदेश | 65,536 UTF-8 वर्ण/बाइट |
| मॉडल ID बनाना/बदलाव | 500 UTF-8 वर्ण/बाइट |
| प्लगइन प्रदाता ID | 200 वर्ण |
| सक्रिय संचालन per कार्य | 1 |
| Command पाठ | 20,000 वर्ण |
| उपकरण कमांड समय-सीमा | 1–600 सेकंड |
| पूर्वावलोकन तैयारी | 15 सेकंड |
| फ़ाइल पठन/लेखन | 2,000,000 बाइट UTF-8 पाठ |
| प्रत्यक्ष डायरेक्टरी सूची | पहले 1,000 वस्तुएँ |
| Message पृष्ठ | 200 संदेश, 1,000,000 बाइट |
| Stored संदेश | 100 KB |
| मॉडल बातचीत संदर्भ | Last 30 संदेश, 256 KB |
| Stored उपकरण आउटपुट | लगभग 20,000 स्रोत वर्ण + कटौती चिह्न |
| सीधा संपादक highlight | 8,000 वर्ण/400 पंक्तियाँ |
| ब्राउज़र स्वरूपण | 100,000 वर्ण/4,000 पंक्तियाँ |
| Git स्थिति | 2,000,000 वर्ण |
| Git अंतर | 600,000 वर्ण |
| Git इतिहास | 20 स्थानीय कमिट |
| Stage अनुरोध पथ | 200 |
| Commit संदेश | 4,000 वर्ण |
| Agent loop | WORK_MAX_AGENT_ROUNDS से तयशुदा 48 चक्र |
| उपकरण-कॉल बजट | max(128, configured rounds × 8) कॉल |
फ़ाइल API UTF-8 पाठ। अंतर्निहित संपादक binary फ़ाइलें नहीं; >2 MB Work API से नहीं खुलता।
API अवलोकन
सभी एंडपॉइंट /api/work में और प्रमाणीकरण/वर्तमान DB Work पहुँच चाहते हैं। तयशुदा प्रशासक; सामान्य क्रियाएँ सक्रिय उपयोगकर्ता को खुल सकती हैं। होस्ट-फ़ोल्डर चयन और प्रशासक नीति/पहुँच एंडपॉइंट प्रशासक-केवल।
| विधि | पथ | उद्देश्य |
|---|---|---|
GET | /capabilities | परिवेश/प्रदाता उपलब्धता और सीमाएँ |
GET | /tasks | वर्तमान प्रशासक कार्य सूची |
POST | /tasks | कार्य और पहले असमकालिक संचालन बनाना |
GET | /tasks/:id | स्थिति और latest संदेश लोड |
GET | /tasks/:id/messages | Older संदेश लोड |
PATCH | /tasks/:id | नाम-बदलाव या सटीक मॉडल मार्ग बदलाव |
DELETE | /tasks/:id | कार्य और स्थायी कार्यस्थल हटाना |
POST | /tasks/:id/runs | अगला संचालन आरंभ |
POST | /tasks/:id/messages | चलता एजेंट को संदेश |
GET | /tasks/:taskId/runs/:runId/events | Authenticated SSE events |
POST | /tasks/:id/cancel | सक्रिय संचालन रद्द |
GET | /tasks/:id/approvals | लंबित अनुमोदन और कार्य की स्वतः समीक्षा स्थिति |
PUT | /tasks/:id/approvals | प्रति-कार्य अनुमोदन opt-in बदलना |
POST | /tasks/:id/approvals/:approvalId | लंबित अनुमोदन का निर्णय (एक बार/हमेशा, अस्वीकार) |
DELETE | /tasks/:id/approval-rules/:ruleId | “हमेशा अनुमति दें” नियम हटाना |
GET | /computer/setup | प्रशासक Work Computer सेटअप स्थिति |
POST | /computer/setup | GUI इमेज/नीति बनाना |
POST | /tasks/:id/computer/start | Work Computer सत्र आरंभ |
GET | /tasks/:id/computer/control | वर्तमान नियंत्रक/अधिग्रहण अनुरोध |
POST | /tasks/:id/computer/control | Takeover/extend नियंत्रण |
DELETE | /tasks/:id/computer/control | Control एजेंट को लौटाएँ |
POST | /tasks/:id/computer/teach | Recorded डेमो as कौशल |
POST | /tasks/:id/computer/anchor | Clicked तत्व समाधान |
POST | /computer/skills/:slug/trace | Skill परिणाम add |
GET | /tasks/:id/files | कार्यस्थल सूची |
GET | /tasks/:id/file | Text फ़ाइल पठन |
PUT | /tasks/:id/file | Text फ़ाइल सहेजना |
GET | /tasks/:id/git | सुदृढ़ Git स्थिति/इतिहास |
GET | /tasks/:id/git/diff | Bounded स्थानीय अंतर |
POST | /tasks/:id/git/init | स्थानीय Git init |
POST | /tasks/:id/git/stage | Explicit पथ stage |
POST | /tasks/:id/git/commit | Staged बदलाव कमिट |
POST | /tasks/:id/git/branches | स्थानीय ब्रांच बनाना |
POST | /tasks/:id/git/switch | मौजूदा साफ़ ब्रांच स्विच |
POST | /tasks/:id/preview/start | Managed पूर्वावलोकन आरंभ |
POST | /tasks/:id/preview/stop | Managed पूर्वावलोकन रोक |
कार्य ID हमेशा प्रमाणित स्वामी के विरुद्ध जाँचा। वर्तमान खाता स्थिति, भूमिका, पहुँच नीति हर अनुरोध DB से; निरसन पुराने JWT भूमिका दावा पर भी।
कार्य अद्यतन स्कीमा आंतरिक अनुकूलता हेतु सर्वर networkEnabled फ़ील्ड रखता है। Work में अलग नियंत्रण नहीं। निर्माण पर वांछित तयशुदा नेटवर्क वाली नामित नीति चुनें; कच्चा फ़ील्ड को स्थायी API विन्यास न मानें।
हटाना, खाता बदलाव और बैकअप
कार्य हटाना
हटाना जानबूझकर विनाशकारी है:
- Server कार्य को सेवा-मुक्ति mark कर नया बदलाव अवरुद्ध करता है।
- सक्रिय संचालन रद्द और सैंडबॉक्स रोक।
- Libre रनटाइम संसाधन स्वामित्व लेबल सत्यापित करता है।
- Container/Pod और नामित वॉल्यूम/PVC हटाना।
- कार्य, संचालन/संदेश सहित डेटाबेस से क्रमिक हटाना।
- Success बाद ब्राउज़र प्रारूप साफ़।
Runtime सफाई विफल हो तो Libre रिकॉर्ड रखकर त्रुटि देता है ताकि संचालक Docker/Kubernetes सुधार और पुनःप्रयास करे। मेटाडेटा चुपचाप हटाकर अनट्रैक्ड संसाधन नहीं छोड़ता।
संचालन/पूर्वावलोकन रोक हटाना नहीं: निष्पादन रुकता, वॉल्यूम/बातचीत बचते हैं।
प्रशासक पदावनति और उपयोगकर्ता हटाना
पदावनति में Libre पहले भूमिका निरसन सहेजना करता; हर अगला अनुरोध वर्तमान अधिकार जाँच। Server कार्य निलंबित और संचालन/सैंडबॉक्स रोक प्रयास। सफाई त्रुटि पहुँच पुनर्स्थापन नहीं करता; संचालक को पुनःप्रयास के लिए।
दूसरे उपयोगकर्ता हटाना में प्रबंधित संसाधन पहले। विफलता पर स्वामित्व मेटाडेटा बचाने हेतु उपयोगकर्ता रिकॉर्ड रहता है।
पूर्ण कार्य बैकअप
पूर्ण Work बैकअप चाहिए:
- स्वामित्व, Docker/Kubernetes संसाधन नाम, मार्गन, संचालन, संदेश, गतिविधि वाला Libre WebUI डेटाबेस; और
- Work फ़ाइलें वाले सभी
ai.libre-webui.managed=trueDocker वॉल्यूम/Kubernetes PVCs।
अस्थायी कंटेनर/पूर्वावलोकन प्रक्रियाएँ प्रतिलिपि नहीं। सुसंगत प्रतिलिपि के लिए नया Work गतिविधि और सर्वर रोककर भंडारण स्नैपशॉट प्रक्रिया उपयोग करें।
Database और संबंधित कार्यस्थल साथ पुनर्स्थापन। हर वॉल्यूम/PVC सटीक दर्ज नाम से, ai.libre-webui.task=<task UUID> और ai.libre-webui.managed=true लेबल पुनर्स्थापन। Files अकेले लेबल खोते, डेटाबेस अकेला फ़ाइलें नहीं रखता, भंडारण अकेला स्वामित्व/नाम खोता है।
Encrypted प्रदाता परिचय-पत्र हों तो main डेटा-डायरेक्टरी/कुंजी बैकअप प्रक्रिया भी।
स्थानीयकरण और अरबी RTL
Work 25 भाषाओं में पूर्ण अनूदित है: अंग्रेज़ी, अरबी, बंगाली, चेक, डेनिश, जर्मन, स्पेनी, फ़्रांसीसी, हिंदी, इंडोनेशियाई, आइसलैंडिक, इतालवी, जापानी, कोरियाई, मलय, डच, पोलिश, पुर्तगाली, रूसी, स्वीडिश, थाई, तुर्की, यूक्रेनी, वियतनामी और चीनी।
अरबी React रेंडर से पहले lang="ar"/dir="rtl" निर्धारित करता: पार्श्व-पट्टी/बातचीत दाएँ, कार्यस्थल बाएँ, दिशात्मक आइकन प्रतिबिंबित, टैब/आकार-बदलाव RTL।
सही रहने के लिए technical सामग्री LTR:
- कोड/उद्भासन;
- filesystem पथ;
- मॉडल IDs;
- पूर्वावलोकन कमांड/logs;
- उपकरण आउटपुट/मेटाडेटा; और
- कोड-अवरुद्ध सामग्री।
कार्य शीर्षक, प्राकृतिक-भाषा प्रॉम्प्ट, त्रुटियाँ, फ़ाइलनाम और पूर्वावलोकन कमांड स्वतः पाठ दिशा।
समस्या निवारण
npx से रनटाइम अनुपलब्ध
npx libre-webui होस्ट पर सर्वर शुरू करता, Docker स्थापित नहीं। समान OS उपयोगकर्ता से docker info। Docker स्थापित/आरंभ या अनुमतियाँ सुधार, Work पुनःलोड। स्वस्थ Ollama या वर्तमान प्रशासक मॉडल/परिचय-पत्र वाला सक्रिय प्लगइन भी।
Docker/Kubernetes में रनटाइम अनुपलब्ध
रिपॉज़िटरी Compose में यह नहीं: इमेज CLI और फ़ाइल होस्ट सॉकेट माउंट। पैनल अनुपस्थित CLI/सॉकेट/समूह बताता। समूह हेतु DOCKER_GID निर्धारित, कंटेनर पुनर्निर्माण। Docker Work देखें।
Kubernetes में --set work.enabled=true। Libre kubernetes रिपोर्ट, API जाँच, PVC Pod आरंभ। नोड रनटाइम सॉकेट माउंट न करें; Kubernetes।
Work-अनुकूल मॉडल नहीं
Ollama में tools declaring मॉडल। प्लगइन में:
- पूर्णता/चैट टाइप;
- सक्रिय;
- मैपिंग में सटीक मॉडल;
- वर्तमान प्रशासक API कुंजी; और
- उपकरण-कॉल समर्थन।
Work कभी वैकल्पिक प्रदाता स्विच नहीं करता।
पैकेज स्थापित या दूरस्थ Git विफल
चुनी नामित नीति नेटवर्क अनुमति दे; per-कार्य स्विच नहीं। फिर DNS, प्रॉक्सी, फ़ायरवॉल/NetworkPolicy, रजिस्ट्री, प्रमाणपत्र, रनटाइम, ऊपरी सेवा, कमांड उपस्थिति। Git टैब स्थानीय-केवल; दूरस्थ Git केवल जानबूझकर अनुमत नेटवर्क/परिचय-पत्र से टर्मिनल/मॉडल। दीर्घजीवी टोकन चिपकाएँ न करें।
संचालन एजेंट सीमा पर रुका
चक्र/कॉल बजट समाप्त। Work उपकरण-रहित अंतिम हस्तांतरण देता; पूर्ण/शेष देखें। इनपुट आवश्यक संचालन का टर्मिनल स्थिति, पूर्णता दावा नहीं। अगला संचालन या संसाधन/लागत अनुमति दें तो WORK_MAX_AGENT_ROUNDS बढ़ाएँ।
संचालन के दौरान HTTP 429
सक्रिय रनटाइम/स्थायी-कार्य सीमा। प्रतीक्षा, अनावश्यक पूर्वावलोकन रोक, पुराने कार्य हटाना या संसाधन हों तो संबंधित WORK_MAX_*।
पूर्वावलोकन तैयार नहीं
Command चलता रहे, 0.0.0.0 बाइंड और 15 सेकंड में WORK_PREVIEW_PORT सुनना। खाली फ़ील्ड package.json dev, सादा index.html या एक अंतःस्थ ऐप। अनेक/कोई-नहीं पर स्पष्ट कमांड। /workspace से; अंतःस्थ के लिए cd <app-directory> && ...।
पूर्वावलोकन सर्वर पर, दूरस्थ ब्राउज़र में नहीं
हस्ताक्षरित प्रॉक्सी निर्माण जाँच और पुराने URL पुनःआरंभ। रिवर्स प्रॉक्सी/टनल /api/work/previews/ WebSocket दें। प्रकाशित Docker पोर्ट लूपबैक पर, फ़ायरवॉल खोलना नहीं।
Files हैं, पूर्वावलोकन रुका
रद्द, सर्वर पुनःआरंभ, स्पष्ट रोक या विफल तैयारी बाद अपेक्षित। प्रक्रिया अस्थायी, वॉल्यूम स्थायी। कार्य खोलकर पूर्वावलोकन फिर शुरू।
फ़ाइल खुला/सहेजना नहीं
API 2 MB UTF-8 पाठ। खोलना बाद फ़ाइल बदले तो सहेजना से पहले पुनःलोड। उद्भासन >8,000 वर्ण/400 पंक्तियाँ सादा; स्वरूपण 100,000/4,000 और दस्तावेजीकृत प्रकार।
Work सैंडबॉक्स पुनर्प्राप्ति बताता है
आरंभ/समापन में ज्ञात सैंडबॉक्स रुके सिद्ध नहीं। Work सुरक्षित-बंद और 10-सेकंड पुनःप्रयास। Docker/Kubernetes API सुधार, सर्वर लॉग। लेबलयुक्त संसाधन मिलान तक DB पंक्तियाँ न हटाएँ।
कार्य हटाना नहीं
Runtime पहुँच-योग्य जाँचें। अपेक्षित ai.libre-webui.task लेबल रहित टकराता संसाधन जानबूझकर अस्वीकार। सावधानी से सुधार/पुनःप्रयास।
सुरक्षा सारांश
- Work तयशुदा प्रशासक-केवल; सभी-उपयोगकर्ता हर सक्रिय खाता को सैंडबॉक्स संचालक बनाता है। होस्ट फ़ोल्डर हमेशा प्रशासक।
- Server विन्यस्त Docker डेमन/Kubernetes नेमस्पेस नियंत्रित करे।
- कंटेनर filesystem पहुँच घटाते, VM नहीं।
- Offline नीति बिना कार्य में निर्गम; लक्ष्य सीमित करना संचालक।
- Work वॉल्यूम की स्वतंत्र डिस्क कोटा नहीं।
- Git स्थानीय-केवल; दूरस्थ परिचय-पत्र माउंट/API स्वीकार नहीं।
- Firewall, डेमन पृथक्करण, निर्गम सीमाएँ, वास्तविक कोटा संचालक।
- दूरस्थ providers requested परिणाम और कई भुगतानयुक्त कॉल लेते हैं।
- पूर्वावलोकन पोर्ट लूपबैक पर, हस्ताक्षरित निरस्त-योग्य URL से।
- मानक Compose Docker; Kubernetes/Helm
work.enabled=trueपर Pod/PVC। - पूर्ण बैकअप को Libre DB + Work वॉल्यूम।