रिपॉजिटरी सीक्रेट्स
En Parlant~ Windows, macOS और Linux के लिए रिलीज़ बाइनरी बनाने हेतु GitHub Actions का उपयोग करता है। CI पाइपलाइन को कोड साइनिंग, अपडेट साइनिंग, वायरस स्कैनिंग और मल्टीप्लेयर रिले URL के लिए क्रेडेंशियल्स की आवश्यकता होती है। इन्हें GitHub रिपॉजिटरी सीक्रेट्स के रूप में संग्रहीत किया जाता है — ये एन्क्रिप्टेड वैल्यूज़ हैं जिन्हें GitHub वर्कफ़्लो रन में इंजेक्ट करता है लेकिन कभी प्रदर्शित नहीं करता।
यदि आप En Parlant~ को फोर्क करते हैं और अपने स्वयं के साइन्ड बिल्ड बनाना चाहते हैं, तो आपको अपने खुद के सीक्रेट्स सेट अप करने होंगे। इनके बिना भी बिल्ड कंपाइल होंगे, लेकिन बाइनरी साइन नहीं होंगी, अपडेट वेरीफाई नहीं होंगे, और VirusTotal स्कैन स्टेप स्किप हो जाएगा।
सीक्रेट्स
Section titled “सीक्रेट्स”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_ID | Azure AD टेनेंट |
AZURE_SUBSCRIPTION_ID | Azure सब्सक्रिप्शन |
AZURE_CODE_SIGNING_ACCOUNT | Trusted Signing अकाउंट नाम |
AZURE_CODE_SIGNING_ENDPOINT | Trusted 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 के अंतर्गत रखें।
यदि आप इसे छोड़ देते हैं: ऐप सही से बिल्ड होगा, लेकिन ऑटो-अपडेटर काम नहीं करेगा। उपयोगकर्ताओं को नए वर्शन मैन्युअली डाउनलोड करने होंगे।
VirusTotal
Section titled “VirusTotal”रिलीज़ आर्टिफ़ैक्ट्स बनाने के बाद, CI पाइपलाइन प्रत्येक बाइनरी (.exe, .dmg, .deb, .rpm, .AppImage) को स्वचालित मैलवेयर स्कैनिंग के लिए VirusTotal पर अपलोड करती है। यह एक विश्वास संकेत है — उपयोगकर्ता सत्यापित कर सकते हैं कि आधिकारिक बिल्ड स्वच्छ हैं।
| सीक्रेट | उद्देश्य |
|---|---|
VIRUSTOTAL_API_KEY | VirusTotal v3 API के लिए API की |
अपना सेट अप करने के लिए: एक मुफ़्त VirusTotal अकाउंट बनाएँ और अपनी प्रोफ़ाइल से अपनी API की कॉपी करें।
यदि आप इसे छोड़ देते हैं: VirusTotal स्कैन स्टेप चुपचाप विफल हो जाएगा। बिल्ड फिर भी सफल होंगे और सामान्य रूप से रिलीज़ होंगे — बस आपके पास स्वचालित स्कैन परिणाम नहीं होंगे।
मल्टीप्लेयर रिले URL
Section titled “मल्टीप्लेयर रिले URL”मल्टीप्लेयर रिले सर्वर URL बिल्ड समय पर इंजेक्ट किया जाता है ताकि ऐप को पता रहे कि ऑनलाइन गेम्स के लिए कहाँ कनेक्ट करना है।
| सीक्रेट | उद्देश्य |
|---|---|
VITE_RELAY_URL | मल्टीप्लेयर रिले के लिए WebSocket URL (उदा., wss://your-relay.fly.dev) |
अपना सेट अप करने के लिए: अपना खुद का रिले सर्वर डिप्लॉय करें (देखें मल्टीप्लेयर सर्वर सेटअप गाइड) और इसे उसके पब्लिक URL पर सेट करें।
यदि आप इसे छोड़ देते हैं: मल्टीप्लेयर फिर भी काम करता है यदि आप रनटाइम पर ऐप की सेटिंग्स में रिले URL सेट करते हैं। यह सीक्रेट बस डिफ़ॉल्ट सेट करता है ताकि उपयोगकर्ताओं को इसे मैन्युअली कॉन्फ़िगर न करना पड़े।
सारांश
Section titled “सारांश”| सीक्रेट समूह | किसके लिए आवश्यक | क्या आप इसे छोड़ सकते हैं? |
|---|---|---|
| Azure (7 सीक्रेट्स) | साइन्ड Windows बिल्ड | हाँ — बिल्ड काम करते हैं, उपयोगकर्ताओं को SmartScreen चेतावनी मिलती है |
| Tauri (2 सीक्रेट्स) | ऑटो-अपडेटर | हाँ — बिल्ड काम करते हैं, ऑटो-अपडेट नहीं |
| VirusTotal (1 सीक्रेट) | मैलवेयर स्कैन रिपोर्ट | हाँ — बिल्ड काम करते हैं, स्कैन परिणाम नहीं |
| रिले URL (1 सीक्रेट) | डिफ़ॉल्ट मल्टीप्लेयर सर्वर | हाँ — उपयोगकर्ता ऐप सेटिंग्स में सेट कर सकते हैं |
इनमें से कोई भी सीक्रेट ऐप को लोकली बिल्ड और रन करने के लिए आवश्यक नहीं है। ये केवल CI/CD रिलीज़ बिल्ड के लिए महत्वपूर्ण हैं।