Sliver C2 फ्रेमवर्क के लिए क्रॉस-प्लेटफ़ॉर्म Electron GUI, जो सत्र और बीकन डैशबोर्ड, पेलोड जनरेशन, लिसनर, लूट और क्लाउड डिप्लॉयमेंट प्रबंधन प्रदान करता है।
Sliver GUI, Sliver के लिए एक क्रॉस-प्लेटफ़ॉर्म Electron डेस्कटॉप एप्लिकेशन है। यह HeroUI, HeroUI Pro, और Font Awesome के साथ बनाए गए React इंटरफ़ेस में बैकएंड कनेक्शन, लाइव स्टेटस व्यू, समर्पित वर्कस्पेस, और एक नेटिव Sliver कंसोल को संयोजित करता है।
GUI हर अपस्ट्रीम कमांड या विकल्प को लागू नहीं करता। ऑपरेटर कनेक्शन mTLS का उपयोग करते हैं; WireGuard ऑपरेटर कॉन्फ़िगरेशन पहचाने जाते हैं लेकिन कनेक्ट नहीं कर सकते। ट्रैक किए गए कवरेज के लिए operator parity report देखें और विशिष्ट सीमाओं के लिए नीचे दिए गए फ़ीचर दस्तावेज़ देखें।
समर्थित संस्करण और लॉक की गई निर्भरताएँ package.json और package-lock.json में दर्ज हैं। एप्लिकेशन कोड सख्त TypeScript का उपयोग करता है; बिल्ड हेल्पर Node.js ES मॉड्यूल का उपयोग करते हैं।
npm ci --strict-allow-scripts
npx heroui-pro login
npx heroui-pro install --yes
npm run dev
प्रारंभिक वर्कस्टेशन सेटअप के लिए HeroUI लॉगिन/इंस्टॉल चरणों की आवश्यकता होती है;
जब इंस्टॉलेशन के लिए HEROUI_AUTH_TOKEN पहले से कॉन्फ़िगर हो तो इन्हें छोड़ा जा
सकता है। क्रेडेंशियल्स को ट्रैक की गई फ़ाइलों से बाहर रखें।
npm run dev स्थिर एप्लिकेशन को sliver://app/index.html पर बनाता और लॉन्च
करता है, उत्पादन कंटेंट सुरक्षा नीति का उपयोग करते हुए। स्रोत परिवर्तनों के बाद
कमांड को पुनः आरंभ करें; यह वर्कफ़्लो HMR का उपयोग नहीं करता।
TypeScript क्लाइंट पिन किए गए sliver-script npm पैकेज से इंस्टॉल किया जाता है।
एक निकटवर्ती क्लाइंट चेकआउट की आवश्यकता नहीं है। सामान्य एप्लिकेशन विकास के लिए
Sliver स्रोत चेकआउट की आवश्यकता नहीं होती; नेटिव कंसोल बनाने के लिए होती है।
डिफ़ॉल्ट Sliver क्लाइंट रूट ~/.sliver-client है; SLIVER_CLIENT_ROOT_DIR एक
अलग रूट चुन सकता है। एप्लिकेशन प्राथमिकताएँ, जिनमें Overview ग्राफ़ विकल्प शामिल
हैं, gui/application-settings.json में सहेजी जाती हैं; वर्कस्पेस ज़ूम
gui/workspace-zoom.json में सहेजा जाता है, और टेक्स्ट एडिटर प्राथमिकताएँ उस रूट
के अंतर्गत gui/text-editor-settings.json में। GUI configs/ में मौजूदा ऑपरेटर
कॉन्फ़िगरेशन खोजता है और जब कोई मान्य कॉन्फ़िग वहाँ सहेजा जाता है तो खुले
सेलेक्टर को अपडेट करता है। यह Import के माध्यम से चुने गए कॉन्फ़िग्स को
gui/operator-configs.json में निजी फ़ाइल संदर्भों के रूप में सहेजता है। Import
और Forget स्रोत कॉन्फ़िग्स को कॉपी या हटाते नहीं हैं।
Ghostty-संगत टर्मिनल रंग Settings → Terminal में कॉन्फ़िगर किए जाते हैं और
gui/ghostty/config में सहेजे जाते हैं। कस्टम थीम gui/ghostty/themes/ में होनी
चाहिए; इंस्टॉल किए गए नेटिव Ghostty थीम स्वचालित रूप से खोजे जाते हैं। कॉन्फ़िग
साझाकरण, Monaco एडिटर, प्लेटफ़ॉर्म पारदर्शिता समर्थन, और रनटाइम सीमाओं के लिए
terminal appearance and Ghostty themes देखें।
| कमांड | उद्देश्य |
|---|---|
npm run typecheck | मुख्य/preload और रेंडरर TypeScript प्रोजेक्ट्स की जाँच करें। |
npm test | Vitest यूनिट और कंपोनेंट परीक्षण चलाएँ। |
npm run test:watch | Vitest को इंटरैक्टिव रूप से चलाएँ। |
npm run test:e2e:electron | इसके रेंडरर, preload, और IPC के माध्यम से Electron को बनाएँ और परखें। |
npm run protocol:check | पिन किए गए क्लाइंट, अपस्ट्रीम बेसलाइन, और parity आर्टिफ़ैक्ट्स को सत्यापित करें। |
npm run build | dist/ में एप्लिकेशन आउटपुट को टाइपचेक और बिल्ड करें। |
npm run build:console | पिन किए गए नेटिव Sliver कंसोल को बिल्ड करें। |
npm run package | release/ के अंतर्गत एक अनपैक्ड एप्लिकेशन बनाएँ। |
npm run dist | release/ के अंतर्गत प्लेटफ़ॉर्म इंस्टॉलर बनाएँ। |
npm run test:e2e:packaged | स्थानीय फ़िक्स्चर के विरुद्ध मौजूदा अनपैक्ड एप्लिकेशन को सत्यापित और परीक्षण करें। |
यूनिट और कंपोनेंट परीक्षण स्रोत फ़ाइलों के बगल में रहते हैं; Electron परिदृश्य
src/e2e/ में रहते हैं। Actual-server परीक्षण अलग, ऑप्ट-इन जाँचें हैं जिनके लिए
कॉन्फ़िगर किए गए डिस्पोज़ेबल इन्फ्रास्ट्रक्चर की आवश्यकता होती है। एक फ़िक्स्चर
परीक्षण लाइव-सर्वर या इंस्टॉल किए गए पैकेज संगतता स्थापित नहीं करता।
प्रोटोकॉल जाँच Go का उपयोग करती है और पिन किए गए अपस्ट्रीम स्रोत को एक अस्थायी निर्देशिका में लाती है। provenance जाँचों और स्पष्ट रूप से चुने गए स्थानीय बेसलाइन का उपयोग करने के लिए protocol documentation देखें।
कंसोल और वितरण बिल्ड के लिए Go 1.27.1 और
console provenance में दर्ज कमिट और
ट्री पर एक साफ़ Sliver चेकआउट की आवश्यकता होती है। इसे sliver/ में रखें या
SLIVER_SOURCE_DIR सेट करें। कंसोल बिल्ड स्रोत को मान्य करता है; यह उस चेकआउट
को लाता या संशोधित नहीं करता।
बिल्ड स्वचालित Go टूलचेन स्विचिंग को अक्षम करता है। आवश्यक Go बाइनरी को PATH
पर रखें या SLIVER_GO_BINARY को उसके पूर्ण पथ पर सेट करें। Universal macOS
कंसोल बिल्ड के लिए macOS और /usr/bin/lipo की आवश्यकता होती है।
npm run package और npm run dist पैकेजिंग से पहले नेटिव रनटाइम, कंसोल, और
लाइसेंस इन्वेंटरी तैयार करते हैं। dist/, release/, native/sliver-console/,
और .e2e-dist/ के अंतर्गत उत्पन्न आउटपुट Git द्वारा अनदेखा किया जाता है।
CI पैकेजिंग मैट्रिक्स है:
| प्लेटफ़ॉर्म | पैकेज | स्वचालित अपडेट |
|---|---|---|
| macOS universal | DMG और ZIP | इंस्टॉल किया गया ऐप ZIP अपडेट डाउनलोड करता है। |
| Windows x64 | NSIS इंस्टॉलर और पोर्टेबल EXE | केवल NSIS इंस्टॉलेशन; पोर्टेबल बिल्ड मैन्युअल रूप से अपडेट होते हैं। |
| Linux x64 | AppImage और DEB | केवल AppImage; DEB पैकेज मैन्युअल रूप से अपडेट होते हैं। |
समर्थित पैकेज GitHub Releases की जाँच करने, पृष्ठभूमि में अपडेट डाउनलोड करने, और Restart to update या सामान्य एप्लिकेशन निकास पर इंस्टॉल करने के लिए कॉन्फ़िगर किए गए हैं। स्थिर बिल्ड prerelease अपडेट स्वीकार नहीं करते। एप्लिकेशन में कोई GitHub टोकन एम्बेड नहीं है।
प्रारंभिक v0.0.1 रिलीज़ स्थायी स्व-हस्ताक्षरित कोड-साइनिंग प्रमाणपत्रों का
उपयोग करती है। macOS Check for Updates पहली अपडेट जाँच से पहले नेटिव
प्रमाणपत्र विश्वास संवाद प्रदान करता है; ऐप को पहले Gatekeeper के माध्यम से
लॉन्च करने की अनुमति दी जानी चाहिए। Windows इंस्टॉलेशन के लिए गंतव्य मशीन पर
सार्वजनिक साइनिंग प्रमाणपत्र को विश्वसनीय बनाना आवश्यक है। ट्रस्ट बूटस्ट्रैप,
सार्वजनिक फ़िंगरप्रिंट, और रिलीज़ कुंजी नीति के लिए
self-signed installation and updates देखें।
बिल्ड लक्ष्य और न्यूनतम-रनटाइम प्रमाणन अलग हैं। रनटाइम आवश्यकताओं, प्रमाणन स्थिति, और साइनिंग/अपडेट नीति के लिए platform support ADR देखें।