इसे छोड़कर कंटेंट पर जाएं

रिपॉजिटरी सीक्रेट्स

En Parlant~ Windows, macOS और Linux के लिए रिलीज़ बाइनरी बनाने हेतु GitHub Actions का उपयोग करता है। CI पाइपलाइन को कोड साइनिंग, अपडेट साइनिंग, वायरस स्कैनिंग और मल्टीप्लेयर रिले URL के लिए क्रेडेंशियल्स की आवश्यकता होती है। इन्हें GitHub रिपॉजिटरी सीक्रेट्स के रूप में संग्रहीत किया जाता है — ये एन्क्रिप्टेड वैल्यूज़ हैं जिन्हें GitHub वर्कफ़्लो रन में इंजेक्ट करता है लेकिन कभी प्रदर्शित नहीं करता।

यदि आप En Parlant~ को फोर्क करते हैं और अपने स्वयं के साइन्ड बिल्ड बनाना चाहते हैं, तो आपको अपने खुद के सीक्रेट्स सेट अप करने होंगे। इनके बिना भी बिल्ड कंपाइल होंगे, लेकिन बाइनरी साइन नहीं होंगी, अपडेट वेरीफाई नहीं होंगे, और VirusTotal स्कैन स्टेप स्किप हो जाएगा।

Azure Trusted Signing (Windows कोड साइनिंग)

Section titled “Azure Trusted Signing (Windows कोड साइनिंग)”

जब Windows उपयोगकर्ता कोई अनसाइन्ड .exe चलाते हैं तो उन्हें SmartScreen चेतावनी (“Windows protected your PC”) दिखाई देती है। कोड साइनिंग इस चेतावनी को समाप्त करती है और Windows को बताती है कि बाइनरी एक सत्यापित प्रकाशक से आई है।

En Parlant~ इसके लिए Azure Trusted Signing का उपयोग करता है। Tauri बिल्ड Windows बिल्ड स्टेप के दौरान trusted-signing-cli को इनवोक करता है, जो एक्ज़ीक्यूटेबल को साइन करने के लिए Azure से संवाद करता है।

सीक्रेटउद्देश्य
AZURE_CLIENT_IDसर्विस प्रिंसिपल ऐप ID
AZURE_CLIENT_SECRETसर्विस प्रिंसिपल क्रेडेंशियल
AZURE_TENANT_IDAzure AD टेनेंट
AZURE_SUBSCRIPTION_IDAzure सब्सक्रिप्शन
AZURE_CODE_SIGNING_ACCOUNTTrusted Signing अकाउंट नाम
AZURE_CODE_SIGNING_ENDPOINTTrusted Signing एंडपॉइंट URL
AZURE_CODE_SIGNING_PROFILEसर्टिफ़िकेट प्रोफ़ाइल नाम

अपना सेट अप करने के लिए: एक Azure अकाउंट बनाएँ, एक Trusted Signing रिसोर्स सेट अप करें, एक सर्टिफ़िकेट प्रोफ़ाइल बनाएँ, और उचित अनुमतियों के साथ एक सर्विस प्रिंसिपल रजिस्टर करें। Microsoft का Trusted Signing क्विकस्टार्ट इस प्रक्रिया को विस्तार से बताता है।

यदि आप इसे छोड़ देते हैं: Windows बिल्ड फिर भी काम करेंगे, लेकिन आपके उपयोगकर्ताओं का स्वागत उस भयानक नीली SmartScreen of Death से होगा — आप जानते हैं कौन सी। हम सभी ने “Run anyway” पर क्लिक किया है और सबसे अच्छे की उम्मीद की है। macOS और Linux बिल्ड अप्रभावित रहते हैं।

Tauri अपडेट साइनिंग

Section titled “Tauri अपडेट साइनिंग”

Tauri का बिल्ट-इन अपडेटर यह सत्यापित करता है कि अपडेट वास्तविक प्रकाशक से आए हैं, किसी छेड़छाड़ किए गए स्रोत से नहीं। जब ऐप नए वर्शन की जाँच करता है, तो वह अपडेट डाउनलोड करता है और ऐप में एम्बेडेड पब्लिक की के विरुद्ध उसके सिग्नेचर को वेरीफाई करता है। उन सिग्नेचर को बनाने वाली प्राइवेट की CI में रहती है।

सीक्रेटउद्देश्य
TAURI_PRIVATE_KEYअपडेट साइनिंग के लिए Ed25519 प्राइवेट की
TAURI_KEY_PASSWORDप्राइवेट की की सुरक्षा करने वाला पासवर्ड

अपना सेट अप करने के लिए: pnpm tauri signer generate से एक कीपेयर जेनरेट करें। प्राइवेट की और पासवर्ड को अपने रिपो सीक्रेट्स में रखें, और पब्लिक की को tauri.conf.json में plugins.updater.pubkey के अंतर्गत रखें।

यदि आप इसे छोड़ देते हैं: ऐप सही से बिल्ड होगा, लेकिन ऑटो-अपडेटर काम नहीं करेगा। उपयोगकर्ताओं को नए वर्शन मैन्युअली डाउनलोड करने होंगे।

रिलीज़ आर्टिफ़ैक्ट्स बनाने के बाद, CI पाइपलाइन प्रत्येक बाइनरी (.exe, .dmg, .deb, .rpm, .AppImage) को स्वचालित मैलवेयर स्कैनिंग के लिए VirusTotal पर अपलोड करती है। यह एक विश्वास संकेत है — उपयोगकर्ता सत्यापित कर सकते हैं कि आधिकारिक बिल्ड स्वच्छ हैं।

सीक्रेटउद्देश्य
VIRUSTOTAL_API_KEYVirusTotal v3 API के लिए API की

अपना सेट अप करने के लिए: एक मुफ़्त VirusTotal अकाउंट बनाएँ और अपनी प्रोफ़ाइल से अपनी API की कॉपी करें।

यदि आप इसे छोड़ देते हैं: VirusTotal स्कैन स्टेप चुपचाप विफल हो जाएगा। बिल्ड फिर भी सफल होंगे और सामान्य रूप से रिलीज़ होंगे — बस आपके पास स्वचालित स्कैन परिणाम नहीं होंगे।

मल्टीप्लेयर रिले URL

Section titled “मल्टीप्लेयर रिले URL”

मल्टीप्लेयर रिले सर्वर URL बिल्ड समय पर इंजेक्ट किया जाता है ताकि ऐप को पता रहे कि ऑनलाइन गेम्स के लिए कहाँ कनेक्ट करना है।

सीक्रेटउद्देश्य
VITE_RELAY_URLमल्टीप्लेयर रिले के लिए WebSocket URL (उदा., wss://your-relay.fly.dev)

अपना सेट अप करने के लिए: अपना खुद का रिले सर्वर डिप्लॉय करें (देखें मल्टीप्लेयर सर्वर सेटअप गाइड) और इसे उसके पब्लिक URL पर सेट करें।

यदि आप इसे छोड़ देते हैं: मल्टीप्लेयर फिर भी काम करता है यदि आप रनटाइम पर ऐप की सेटिंग्स में रिले URL सेट करते हैं। यह सीक्रेट बस डिफ़ॉल्ट सेट करता है ताकि उपयोगकर्ताओं को इसे मैन्युअली कॉन्फ़िगर न करना पड़े।

सीक्रेट समूहकिसके लिए आवश्यकक्या आप इसे छोड़ सकते हैं?
Azure (7 सीक्रेट्स)साइन्ड Windows बिल्डहाँ — बिल्ड काम करते हैं, उपयोगकर्ताओं को SmartScreen चेतावनी मिलती है
Tauri (2 सीक्रेट्स)ऑटो-अपडेटरहाँ — बिल्ड काम करते हैं, ऑटो-अपडेट नहीं
VirusTotal (1 सीक्रेट)मैलवेयर स्कैन रिपोर्टहाँ — बिल्ड काम करते हैं, स्कैन परिणाम नहीं
रिले URL (1 सीक्रेट)डिफ़ॉल्ट मल्टीप्लेयर सर्वरहाँ — उपयोगकर्ता ऐप सेटिंग्स में सेट कर सकते हैं

इनमें से कोई भी सीक्रेट ऐप को लोकली बिल्ड और रन करने के लिए आवश्यक नहीं है। ये केवल CI/CD रिलीज़ बिल्ड के लिए महत्वपूर्ण हैं।