প্রকল্প সম্পর্কে
লিং ইগড্রাসিল (Ling 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}` এন্ডপয়েন্ট প্রকাশ
- সেশন ব্যবস্থাপনা: সম্পূর্ণ লগইন, লগআউট ও সেশন যাচাই প্রক্রিয়া
- সুবিধাজনক কুয়েরি এক্সটেনশন: নাম অনুসারে কুয়েরি, বাল্ক কুয়েরি ইত্যাদি এক্সটেনশন এন্ডপয়েন্ট প্রদান
### আন্তর্জাতিকীকরণ
অন্তর্নির্মিত সরলীকৃত চীনা, ঐতিহ্যবাহী চীনা, চীনা (হুয়াশিয়া), English, Русский, Deutsch, Français, Italiano, 日本語, 한국어 মোট 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.