প্রকল্প সম্পর্কে

লিং ইগড্রাসিল (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 লাইসেন্সের অধীনে।