Gateway
बहु-किरायेदार होस्टिंग
मल्टी-टेनेंट होस्टिंग
OpenClaw का डिफ़ॉल्ट सुरक्षा मॉडल प्रत्येक Gateway के लिए एक विश्वसनीय ऑपरेटर सीमा है, न कि एक साझा Gateway के भीतर अविश्वसनीय मल्टी-टेनेंट पृथक्करण। इसलिए, ऐसी उपयोगकर्ता या संगठन होस्ट करने के लिए जो समान विश्वास सीमा साझा नहीं करते, प्रत्येक टेनेंट के लिए एक अलग संपूर्ण OpenClaw इंस्टेंस चलाना आवश्यक है।
openclaw fleet प्रत्येक पृथक इंस्टेंस को एक सेल कहता है। सेल एक कठोर बनाए गए कंटेनर में पूर्ण Gateway है, जिसका अपना स्टेट, क्रेडेंशियल, वर्कस्पेस, चैनल अकाउंट, टोकन और केवल-लूपबैक होस्ट पोर्ट होता है।
Fleet प्रयोगात्मक है: इसके कमांड, फ़्लैग और कंटेनर प्रोफ़ाइल रिलीज़ों के बीच बिना किसी डिप्रिकेशन अवधि के बदल सकते हैं।
Fleet का परीक्षण Linux और macOS होस्ट पर किया गया है। Windows होस्ट का वर्तमान में परीक्षण नहीं किया गया है।
प्रत्येक टेनेंट को सेल की आवश्यकता क्यों है
एक Gateway के भीतर प्रमाणित ऑपरेटर की विश्वसनीय कंट्रोल-प्लेन भूमिका होती है। सेशन ID रूटिंग चुनती हैं; वे एक टेनेंट को दूसरे के विरुद्ध अधिकृत नहीं करतीं। एजेंट सैंडबॉक्सिंग अविश्वसनीय सामग्री और टूल निष्पादन के प्रभाव को कम कर सकती है, लेकिन यह एक साझा Gateway को टेनेंट प्राधिकरण सीमा में नहीं बदलती।
प्रत्येक टेनेंट के लिए एक सेल उपयोग करें, ताकि हर विश्वास डोमेन का अलग Gateway प्रोसेस, कंटेनर, स्थायी स्टेट ट्री और Gateway क्रेडेंशियल हो। यह Gateway सुरक्षा मॉडल का पालन करता है: परस्पर अविश्वसनीय उपयोगकर्ताओं को एक OpenClaw प्रोसेस या एक OS उपयोगकर्ता के अंतर्गत साथ न रखें।
आर्किटेक्चर
Fleet CLI एक होस्ट-साइड लाइफ़साइकल सुपरवाइज़र है। यह OpenClaw स्टेट डेटाबेस में सेल दर्ज करता है और स्थानीय Docker या Podman रनटाइम से उनके कंटेनर बनाने, निरीक्षण करने, शुरू करने, रोकने, बदलने और हटाने के लिए कहता है। रिमोट रनटाइम एंडपॉइंट समर्थित नहीं हैं, क्योंकि Fleet के बाइंड पथ और लूपबैक URL स्थानीय होस्ट से संबंधित होते हैं। Fleet टेनेंट संदेशों को प्रॉक्सी नहीं करता और सेल के बीच साझा एप्लिकेशन-स्तरीय डेटा पथ नहीं जोड़ता।
प्रत्येक सेल अपने उपयोगकर्ता-परिभाषित ब्रिज नेटवर्क पर आधिकारिक ghcr.io/openclaw/openclaw इमेज चलाता है। अलग ब्रिज, प्रोवाइडर और चैनल के लिए आउटबाउंड NAT पहुँच बनाए रखते हुए, सेल के बीच सीधे कंटेनर-IP ट्रैफ़िक को रोकते हैं। डिफ़ॉल्ट रूप से आउटबाउंड इग्रेस अप्रतिबंधित होता है। प्रकाशित लूपबैक Gateway पोर्ट को बनाए रखते हुए इग्रेस रोकने के लिए Podman सेल --network internal का उपयोग कर सकते हैं। Docker के आंतरिक नेटवर्क उस प्रकाशित पोर्ट को अनुपयोगी बना देते हैं, इसलिए Fleet इस संयोजन को अस्वीकार करता है; इसके बजाय DOCKER-USER चेन जैसे होस्ट फ़ायरवॉल नियमों से Docker इग्रेस नीति लागू करें। सेल का Gateway कंटेनर के भीतर पोर्ट 18789 पर सुनता है, जबकि रनटाइम इसे होस्ट पर केवल 127.0.0.1:<allocated-port> पर प्रकाशित करता है। रिमोट पहुँच आवश्यक होने पर ऑपरेटर उस लूपबैक एंडपॉइंट के आगे अनुमोदित रिवर्स प्रॉक्सी, SSH टनल या टेलनेट रख सकता है।
स्थायी Gateway स्टेट <state-dir>/fleet/cells/<tenant>/ से आता है और /home/node/.openclaw पर माउंट होता है। ऑथ-प्रोफ़ाइल एन्क्रिप्शन कुंजियाँ अलग <state-dir>/fleet/auth-profile-secrets/<tenant>/ होस्ट पथ से आती हैं और /home/node/.config/openclaw पर माउंट होती हैं, जो आधिकारिक Docker स्थायित्व लेआउट से मेल खाता है। कुंजी सामान्य स्टेट माउंट के भीतर नेस्टेड नहीं होती। प्रत्येक टेनेंट के चैनल अकाउंट उनके स्वामी सेल के भीतर समाप्त होते हैं; Fleet कोई साझा चैनल अकाउंट या इनबाउंड संदेश राउटर प्रदान नहीं करता।
आधिकारिक इमेज डिफ़ॉल्ट रूप से UID 1000 वाले गैर-रूट node उपयोगकर्ता का प्रयोग करती है। Fleet होस्ट-संगत उपयोगकर्ता मैपिंग का उपयोग करता है, ताकि निजी बाइंड माउंट लिखने योग्य रहें: Podman keep-id का उपयोग करता है, रूटफुल Docker उसे लागू करने वाली गैर-रूट पहचान का उपयोग करता है और रूटलेस Docker कंटेनर रूट को विशेषाधिकार-रहित डेमन उपयोगकर्ता से मैप करता है। होस्ट SELinux सक्रिय होने पर Docker और Podman निजी :Z रीलेबल लागू करते हैं। कंटेनर प्रोफ़ाइल विशेषाधिकार-युक्त होस्ट सुविधाओं से बचती है और रूटलेस-अनुकूल है, लेकिन रूटलेस संचालन एक होस्ट रनटाइम विकल्प और पूर्वापेक्षा है, न कि ऐसी चीज़ जिसे Fleet स्वचालित रूप से सक्षम करता हो।
विश्वास सीमा
मल्टी-टेनेंसी टेनेंट को एक-दूसरे से सुरक्षित रखती है। प्रत्येक टेनेंट Fleet ऑपरेटर और होस्ट पर विश्वास करता है। समझौता किए गए होस्ट के विरुद्ध प्रतिरोध लक्ष्य नहीं है।
इसका अर्थ है कि होस्ट प्रशासक कंटेनर कॉन्फ़िगरेशन और एनवायरनमेंट का निरीक्षण कर सकता है, माउंट किया गया सेल डेटा पढ़ सकता है, इमेज बदल सकता है या कंटेनर में प्रवेश कर सकता है। Gateway टोकन और --env के साथ दिए गए मान Docker या Podman निरीक्षण के माध्यम से प्रशासक को दिखाई देते हैं। इसके अनुसार होस्ट नियंत्रण, प्रशासनिक पहुँच नीति, निगरानी, बैकअप और अनुमोदित सीक्रेट मैनेजर का उपयोग करें।
बेसलाइन आकस्मिक वाइल्डकार्ड नेटवर्क एक्सपोज़र को रोकती है और सामान्य कंटेनर विशेषाधिकार-वृद्धि तंत्रों को हटाती है, लेकिन यह अविश्वसनीय होस्ट को सुरक्षित नहीं बनाती।
पृथक्करण के स्तर
होस्ट किए जाने वाले टेनेंट के अनुरूप सीमा चुनें:
- कठोर कंटेनर बेसलाइन। Fleet सभी Linux क्षमताएँ हटाता है,
no-new-privilegesसक्षम करता है, PID, मेमोरी, CPU और वैकल्पिक लिखने योग्य-लेयर डिस्क सीमाएँ लागू करता है, अलग स्थायी माउंट और प्रति-सेल नेटवर्क का उपयोग करता है तथा केवल होस्ट लूपबैक पर प्रकाशित करता है। ब्रिज नेटवर्किंग में इग्रेस अप्रतिबंधित रहता है; जब किसी सेल को आउटबाउंड कनेक्शन शुरू करने से रोकना हो, तो Podman--network internalया Docker होस्ट फ़ायरवॉल नीति का उपयोग करें। यह उन टेनेंट के लिए डिफ़ॉल्ट प्रोफ़ाइल है जो ऑपरेटर और होस्ट पर विश्वास करते हैं। - अधिक मजबूत कंटेनर या VM पृथक्करण। अधिक जोखिम वाले वर्कलोड के लिए Docker या Podman को gVisor या Kata Containers जैसे अधिक मजबूत OCI पृथक्करण रनटाइम का उपयोग करने हेतु कॉन्फ़िगर करें, या सेल को microVM में रखें। यह रनटाइम या इन्फ़्रास्ट्रक्चर कॉन्फ़िगरेशन है; Fleet का
--runtime docker|podmanविकल्प कंटेनर CLI चुनता है, OCI पृथक्करण बैकएंड नहीं। Docker के वैकल्पिक कंटेनर रनटाइम और Docker VM रनटाइम मार्गदर्शिका देखें। - अविश्वसनीय टेनेंट के लिए अलग मशीनें। अविश्वसनीय टेनेंट को एक OpenClaw प्रोसेस या OS उपयोगकर्ता के अंतर्गत साथ न रखें। जब टेनेंट समान होस्ट ऑपरेटर पर विश्वास नहीं करते या उन्हें अधिक मजबूत प्रशासनिक सीमा की आवश्यकता होती है, तो अलग रनटाइम प्रशासन वाली अलग VM या भौतिक होस्ट का उपयोग करें।
इस स्तर-क्रम का कोई भी स्तर OpenClaw एप्लिकेशन विश्वास मॉडल को नहीं बदलता: एक Gateway एक ही विश्वसनीय ऑपरेटर डोमेन रहता है।
त्वरित शुरुआत
एक सेल बनाएँ। कमांड जनरेट किया गया Gateway टोकन एक बार प्रिंट करता है, इसलिए उसे तुरंत संग्रहीत करें:
openclaw fleet create acmeFleet होस्ट पर रिपोर्ट किया गया http://127.0.0.1:<port> URL खोलें, उस टेनेंट के टोकन से प्रमाणित करें और सेल के भीतर प्रोवाइडर क्रेडेंशियल तथा चैनल अकाउंट कॉन्फ़िगर करें।
कंटेनर स्टेट और Gateway की सक्रियता जाँचें:
openclaw fleet status acmeहोस्ट पोर्ट, माउंट किए गए डेटा, रिसोर्स प्रोफ़ाइल, उपयोगकर्ता-प्रदत्त एनवायरनमेंट और Gateway टोकन को बनाए रखते हुए अपग्रेड करें:
openclaw fleet upgrade acmeटेनेंट डेटा बनाए रखते हुए कंटेनर और रजिस्ट्री पंक्ति हटाएँ:
openclaw fleet rm acme --forceस्थायी टेनेंट डेटा भी हटाने के लिए --purge-data जोड़ें। पर्ज करने के लिए --force आवश्यक है, यह अपरिवर्तनीय है और कुछ भी हटाने से पहले रिज़ॉल्व किए गए पथ की कंटेनमेंट जाँच करता है:
openclaw fleet rm acme --purge-data --forceप्रत्येक कमांड और विकल्प के लिए openclaw fleet CLI संदर्भ देखें।
वर्तमान दायरा
Fleet ये सुविधाएँ प्रदान नहीं करता:
- साझा चैनल अकाउंट या साझा इनग्रेस राउटर
- पूर्ण OpenClaw इंस्टेंस के बजाय हल्के प्रति-टेनेंट होस्ट प्रोसेस
- एक सुपरवाइज़र द्वारा प्रबंधित रिमोट सेल होस्ट
- टेनेंट सेल्फ़-सर्विस पोर्टल, बिलिंग प्लेन या प्रत्यायोजित प्रशासन UI
इन क्षमताओं के लिए स्पष्ट पहचान, रूटिंग, प्राधिकरण और विफलता-डोमेन अनुबंध आवश्यक हैं। एक Gateway या उसके क्रेडेंशियल को टेनेंट के बीच साझा करके इनका अनुमानित विकल्प न बनाएँ। Fleet एकल-होस्ट लाइफ़साइकल सुपरवाइज़र है; मल्टी-मशीन, पहचान-शासित फ्लीट के लिए अलग कंट्रोल-प्लेन स्तर आवश्यक है।