इस प्रोजेक्ट के बारे में
लिंग Yggdrasil Minecraft के लिए बनाई गई एक Yggdrasil बाह्य प्रमाणीकरण प्रणाली है, जो authlib प्रणाली के साथ पूरी तरह संगत है, और खाता पंजीकरण, लॉगिन, चरित्र प्रबंधन और स्किन/केप होस्टिंग क्षमताएँ प्रदान करती है। इसमें अंतर्निहित वेब इंस्टॉलेशन विज़ार्ड, एनीमे-शैली नियंत्रण पैनल और बहु-स्तरीय सुरक्षा प्रणाली शामिल है, जिससे आप कुछ ही मिनटों में एक सुरक्षित और आकर्षक बाह्य लॉगिन सेवा स्थापित कर सकते हैं।
## त्वरित आरंभ
पर्यावरण आवश्यकताएँ: Java 25 (अनुशंसित; सैद्धांतिक रूप से Java 21+ समर्थित), कम से कम 512 MB उपलब्ध मेमोरी सुझाई जाती है।
तीन चरणों में आरंभ:
1. Java संस्करण की पुष्टि करें
2. LingYggdrasil-2.2.7.jar डाउनलोड करें, इसे एक अलग खाली निर्देशिका में रखें
3. प्रारंभ करें (यह निर्देशिका डेटा निर्देशिका बन जाएगी)
पहली बार प्रारंभ करने पर इंस्टॉलेशन विज़ार्ड स्वचालित रूप से प्रवेश करेगा (`http://<सर्वर पता>:35598`), संकेतों के अनुसार व्यवस्थापक खाता, डेटाबेस और ईमेल कॉन्फ़िगरेशन पूरा करें। इंस्टॉलेशन पूरा होने के बाद, प्रोग्राम एक साथ तीन सेवाएँ प्रदान करेगा:
| पोर्ट | उद्देश्य | पहुँच सीमा |
|------|------|----------|
| 35565 | उपयोगकर्ता पक्ष (पंजीकरण, लॉगिन, डैशबोर्ड, स्किन, मित्र आदि) | सार्वजनिक रूप से खुला |
| 35577 | Yggdrasil API (Minecraft लॉन्चर द्वारा कॉल के लिए) | सार्वजनिक रूप से खुला |
| 35599 | व्यवस्थापक बैकएंड | निजी रखा जाना चाहिए |
| 35598 | इंस्टॉलेशन विज़ार्ड | केवल पहली बार इंस्टॉलेशन के लिए खुला |
## कार्यात्मक विशेषताएँ
### आउट-ऑफ-द-बॉक्स उपयोग
- वेब इंस्टॉलेशन विज़ार्ड: पहली बार प्रारंभ करने पर व्यवस्थापक खाता, डेटाबेस और मेल सेवा सेट करने के लिए स्वचालित मार्गदर्शन
- बहु-डेटाबेस समर्थन: SQLite, MySQL, PostgreSQL
- एकल JAR तैनाती: एकल निष्पादन योग्य JAR के रूप में पैक किया गया
### प्लगइन प्रणाली
- बाहरी प्लगइन लोडिंग: प्रारंभ करने पर `plugins/` निर्देशिका को स्वचालित रूप से स्कैन करता है और प्लगइन jar लोड करता है
- `plugin.yml` विवरण: Paper-शैली, नाम, संस्करण, लेखक, निर्भरता, आइकन और अनुमति नोड घोषित करता है
- बैकएंड प्लगइन प्रबंधन: मैन्युअल प्रारंभ/रोक समर्थित
- प्लगइन द्वितीयक मेनू: प्लगइन अधिकतम एक बैकएंड द्वितीयक मेनू में पंजीकृत हो सकता है
- गतिशील अनुमति नोड: अंतर्निहित नोड और प्लगइन नोड स्रोत द्वारा गतिशील रूप से पंजीकृत होते हैं
- प्लगइन विकास API: निर्माण समकालिक रूप से `LingYggdrasil-plugin-api-2.2.7.jar` उत्पन्न करता है
### सुरक्षा प्रणाली
- Argon2 पासवर्ड एन्क्रिप्शन: 6 स्तर की तीव्रता समायोज्य
- ईमेल सत्यापन: डोमेन श्वेतसूची/कालीसूची नियंत्रण समर्थित
- समान IP पंजीकरण सीमा: बड़े पैमाने पर पंजीकरण रोकता है
- नाम कालीसूची: वाइल्डकार्ड समर्थित
- स्वतंत्र सत्र प्रणाली: उपयोगकर्ता पक्ष, व्यवस्थापक पक्ष और API अलग-अलग सत्र कुकीज़ का उपयोग करते हैं
- Root अखंडता सुरक्षा: `root_info` तालिका सत्यापित करता है
- लॉगिन और संचालन दर सीमा: महत्वपूर्ण संचालन पर आवृत्ति सीमाएँ हैं
### उपयोगकर्ता पक्ष
- चरित्र प्रबंधन: कई गेम चरित्र बनाएँ, प्रत्येक चरित्र के पास स्वतंत्र Yggdrasil Token और UUID है
- स्किन और केप: व्यक्तिगत स्किन और केप अपलोड और प्रबंधित करें, उपनाम नामकरण, सार्वजनिक/निजी नियंत्रण समर्थित
- सामग्री पुस्तकालय: सार्वजनिक सामग्री चौक, लोकप्रियता के अनुसार क्रमबद्ध, अनंत स्क्रॉल आलसी लोडिंग
- लाइक और पसंदीदा: सामग्री को लोकप्रिय बनाने में मदद करने के लिए लाइक करें
- साझा सामग्री: मित्र साझाकरण और मेरे पसंदीदा दो खंड
- मित्र प्रणाली: मित्र कोड जोड़ना, मित्र विवरण कार्ड, ब्लॉक प्रबंधन, चयन-आधारित सामग्री साझाकरण
- 3D स्किन पूर्वावलोकन: skinview3d एकीकृत, 360° घूर्णन पूर्वावलोकन समर्थित
- सुरक्षा सेटिंग्स: स्वयं पासवर्ड, ईमेल, उपनाम बदलें, Token देखें और पुनः उत्पन्न करें
- संचालन लॉग: अपने संचालन लॉग देखें, डाउनलोड करें और साफ़ करें
- थीम और भाषा: हल्के/गहरे थीम स्विचिंग, 10 भाषाएँ खाते के साथ स्थायी रूप से संग्रहीत
### व्यवस्थापक बैकएंड
- डैशबोर्ड सारांश: उपयोगकर्ता संख्या, चरित्र संख्या, स्किन/केप संख्या जैसे मुख्य डेटा, घटक ड्रैग-एंड-ड्रॉप सॉर्टिंग समर्थित
- उपयोगकर्ता प्रबंधन: उपयोगकर्ता देखें, खोजें, बनाएँ, संपादित करें, प्रतिबंधित करें
- चरित्र प्रबंधन: वैश्विक CRUD, नाम संशोधन, स्वामित्व स्थानांतरण और रूप स्विचिंग समर्थित
- स्किन और केप प्रबंधन: वैश्विक रूप से बनावट संसाधन प्रबंधित करें, अपलोड आकार, संख्या, भंडारण पथ और आवृत्ति सीमाएँ कॉन्फ़िगर करें
- सुरक्षा सेटिंग्स: 6-स्तरीय एन्क्रिप्शन स्तर दृश्य कार्ड
- सिस्टम प्रबंधन: साइट जानकारी, फ़ंक्शन स्विच, डोमेन, घोषणाएँ, फाइलिंग, संचालन लॉग आदि समूहीकृत कॉन्फ़िगरेशन
- अनुमति समूह: व्यवस्थापक अनुमति समूह और उपयोगकर्ता अनुमति समूह, मेनू दृश्यता और फ़ंक्शन उपलब्धता का सटीक नियंत्रण
- विश्व वृक्ष सेटिंग्स: हस्ताक्षर एल्गोरिदम, Token वैधता अवधि, आवृत्ति सीमाएँ, UUID संस्करण जैसे प्रोटोकॉल कॉन्फ़िगरेशन
### Yggdrasil प्रोटोकॉल
- पूर्ण प्रोटोकॉल कार्यान्वयन: मुख्यधारा Minecraft लॉन्चर के Yggdrasil प्रमाणीकरण एकीकरण के साथ संगत
- तीन हस्ताक्षर मोड: Ed448 (आधुनिक), RSA-SHA512, RSA-SHA1 (संगत)
- Token प्रणाली: प्रत्येक चरित्र के लिए स्वचालित रूप से 64-बिट उच्च-शक्ति Token उत्पन्न होता है
- बनावट होस्टिंग: सार्वजनिक रूप से `/textures/{type}/{hash}` एंडपॉइंट उजागर करता है
- सत्र प्रबंधन: पूर्ण लॉगिन, लॉगआउट और सत्र सत्यापन प्रक्रिया
- सुविधाजनक क्वेरी एक्सटेंशन: नाम से क्वेरी, बैच क्वेरी जैसे एक्सटेंशन एंडपॉइंट प्रदान करता है
### अंतर्राष्ट्रीयकरण
अंतर्निहित सरलीकृत चीनी, पारंपरिक चीनी, चीनी (हुआक्सिया), अंग्रेजी, रूसी, जर्मन, फ्रेंच, इतालवी, जापानी, कोरियाई सहित कुल 10 भाषाएँ। भाषा पैक JSON प्रारूप में हैं, बाहरी ओवरराइड और गहन विलय समर्थित है।
## क्लाइंट एकीकरण
HMCL जैसे कस्टम Yggdrasil समर्थन वाले लॉन्चर के उदाहरण के रूप में:
1. लॉन्चर की 'खाता' या 'लॉगिन विधि' सेटिंग्स में, 'कस्टम Yggdrasil / बाह्य लॉगिन' चुनें
2. प्रमाणीकरण सर्वर पता API रूट पता भरें (उदाहरण के लिए `https://example.com`, सीधे कनेक्शन के लिए `http://<IP>:35577` भरें)
3. उपयोगकर्ता नाम चरित्र नाम भरें, पासवर्ड उस चरित्र का Yggdrasil Token भरें
## तकनीकी स्टैक
| घटक | तकनीक |
|------|------|
| भाषा | Java 25 |
| वेब फ्रेमवर्क | Javalin |
| डेटाबेस कनेक्शन | HikariCP कनेक्शन पूल |
| डेटाबेस | SQLite / MySQL / PostgreSQL |
| एन्क्रिप्शन | Bouncy Castle (Argon2, Ed448, RSA) |
| ईमेल | Eclipse Angus Mail |
| लॉगिंग | Logback + SLF4J |
| सीरियलाइज़ेशन | Jackson |
| बिल्ड टूल | Maven |
## लाइसेंस समझौता
यह परियोजना GNU Affero General Public License v3.0 लाइसेंस के तहत है।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.