প্রকল্প সম্পর্কে
# HyperCraft
**স্ব-হোস্টেড Minecraft সার্ভার প্যানেল —— একটি বাইনারি ফাইল, একটি মেশিন, যত খুশি সার্ভার।**
HyperCraft হলো Minecraft সার্ভারের জন্য বিশেষভাবে তৈরি একটি লাইটওয়েট ম্যানেজমেন্ট টুল। এটি জটিল সার্ভার অপারেশন কাজগুলোকে একটি ব্রাউজার-ভিত্তিক ইন্টারফেসে একত্রিত করে, যাতে ব্যবহারকারীরা গভীর Linux সিস্টেম জ্ঞান ছাড়াই সহজে একাধিক গেম সার্ভার ইনস্ট্যান্স পরিচালনা করতে পারেন।
## মূল বৈশিষ্ট্য
### অতি সরল ডিপ্লয়মেন্ট
- **একক বাইনারি ফাইল**: ব্যাকএন্ড ও ফ্রন্টএন্ড একসাথে প্যাক করা, টার্গেট মেশিনে Go, Node.js, Java বা কোনো রানটাইম পরিবেশ ইনস্টল করার প্রয়োজন নেই।
- **কোনো বাহ্যিক নির্ভরতা নেই**: ডেটাবেস (যেমন MySQL/PostgreSQL) লাগে না, Docker লাগে না, ডাউনলোড ও এক্সট্র্যাক্ট করার পরই চালু করা যায়।
- **ডেমন মোড**: প্যানেল ডেমন হিসেবে চলে, ব্রাউজার ট্যাব বন্ধ করলেও, নেটওয়ার্ক বিচ্ছিন্ন হলেও বা রাউটার রিবুট হলেও সার্ভার প্রসেস চলতে থাকে।
### শক্তিশালী মাল্টি-ইনস্ট্যান্স ম্যানেজমেন্ট
- **যত খুশি ইনস্ট্যান্স**: এক মেশিনে একসাথে একাধিক Minecraft সার্ভার (Java সংস্করণ বা Bedrock সংস্করণ) চালান।
- **সুন্দর নিয়ন্ত্রণ**: স্টার্ট, গ্রেসফুল স্টপ, রিস্টার্ট এবং ফোর্স কিল সমর্থিত। গ্রেসফুল স্টপ প্রথমে `stop` কমান্ড পাঠিয়ে ওয়ার্ল্ড সেভ হওয়ার জন্য অপেক্ষা করে, টাইমআউট হলে তারপর সিগন্যাল বাড়ায়।
- **ক্র্যাশ স্বয়ংক্রিয় রিস্টার্ট**: ঐচ্ছিক কনফিগারেশন, সার্ভার আকস্মিকভাবে ক্র্যাশ হলে স্বয়ংক্রিয়ভাবে পুনরুদ্ধার করে।
### নিমগ্ন টার্মিনাল অভিজ্ঞতা
- **আসল টার্মিনাল কনসোল**: সার্ভার সিউডো-টার্মিনালে চলে, Tab কমপ্লিশন, রঙিন আউটপুট এবং উইন্ডো প্রস্থ স্বয়ংক্রিয় সমন্বয় সমর্থিত। কমপ্লিশন কনটেন্ট চলমান সার্ভার কার্নেল দ্বারা পরিচালিত হয়।
- **পুনঃসংযোগ**: রিং বাফার দিয়ে ঐতিহাসিক আউটপুট রেকর্ড করা হয়। পুনঃসংযোগের পর কনসোল স্বয়ংক্রিয়ভাবে অনুপস্থিত ঐতিহাসিক লগ পূরণ করে, যাতে পুনরাবৃত্তি বা বাদ না পড়ে।
### স্বয়ংক্রিয় অপারেশন টুল
- **Java পরিবেশ ম্যানেজমেন্ট**: এক ক্লিকে Eclipse Temurin JRE/JDK ইনস্টল, একাধিক সংস্করণ একসাথে থাকতে পারে (যেমন একসাথে 1.12 পুরনো সার্ভার ও সর্বশেষ সংস্করণ চালানো)। প্যানেল স্বয়ংক্রিয়ভাবে প্রয়োজনীয় Java সংস্করণ শনাক্ত ও ইনস্টল করে।
- **সার্ভার কোর লাইব্রেরি**: Paper, Velocity ইত্যাদি কোর ডাউনলোড সোর্স অন্তর্ভুক্ত, একবার ডাউনলোড করে যত খুশি ইনস্ট্যান্সে কপি করা যায়।
- **প্লাগইন ম্যানেজমেন্ট**: Modrinth, Hangar, SpigotMC, GitHub Release ইত্যাদি প্ল্যাটফর্ম থেকে প্লাগইন আনার সমর্থন। গ্লোবাল লাইব্রেরি ও ইনস্ট্যান্স দুই স্তরের ম্যানেজমেন্ট, প্রতিটি সংস্করণ আলাদাভাবে সংরক্ষিত যাতে রোলব্যাক করা যায়।
- **বিল্ডিং লাইব্রেরি/মার্কেট**: `.schem` ফাইল ইনডেক্স ও পার্সিং সমর্থিত, সরাসরি আকার ও উপকরণ দেখা যায় এবং এক ক্লিকে নির্দিষ্ট ইনস্ট্যান্সে ইনস্টল করা যায়।
### নিরাপত্তা ও মনিটরিং
- **রিসোর্স মনিটরিং**: প্রতিটি ইনস্ট্যান্সের CPU/মেমরি কার্ভ রিয়েল-টাইমে দেখায়, সাথে পুরো মেশিনের মেমরি, ডিস্ক, CPU ও নেটওয়ার্ক ট্রাফিক। ডেটা সংগ্রহ ডেমন স্বাধীনভাবে করে, ওয়েবপেজের অবস্থায় প্রভাবিত হয় না।
- **নিরাপদ ডিফল্ট**: PBKDF2-SHA256 পাসওয়ার্ড হ্যাশ, লগইন রেট লিমিট, কনকারেন্ট কানেকশন লিমিট, HttpOnly + SameSite সেশন কুকি এবং ডিভাইস টোকেন যাচাই সমর্থিত।
- **ফাইল নিরাপত্তা**: সব ফাইল অপারেশনের পাথ `os.Root` দ্বারা আইসোলেটেড, কঠোরভাবে ইনস্ট্যান্স ডিরেক্টরির মধ্যে সীমাবদ্ধ, অনধিকার প্রবেশ প্রতিরোধ করে।
### অন্যান্য ব্যবহারিক ফিচার
- **কনফিগ ফাইল এডিটর**: `server.properties`-কে ফর্মে রূপান্তর করে, কমেন্ট ও কী-এর ক্রম সংরক্ষণ করে, চীনা স্বয়ংক্রিয়ভাবে এস্কেপ করে, শুধু পরিবর্তিত কী-ভ্যালু লেখে।
- **কনফিগ ইতিহাস**: প্রতিটি ইনস্ট্যান্সের জন্য আলাদা Git রিপোজিটরি দিয়ে কনফিগ পরিবর্তন রেকর্ড করে, Diff দেখা ও রিস্টোর সমর্থিত (দ্রষ্টব্য: ওয়ার্ল্ড ডেটা ব্যাকআপ অন্তর্ভুক্ত নয়)।
- **ডেটাবেস পরিবেশ**: এক ক্লিকে MySQL, PostgreSQL বা MongoDB চালু, ডেটাবেস সমর্থন প্রয়োজন এমন প্লাগইনের চাহিদা পূরণ করে।
- **স্থানীয় টার্মিনাল**: প্যানেল যে মেশিনে আছে তার আসল Shell (ডিফল্টে বন্ধ), সিস্টেম-লেভেল কমান্ড চালানোর সুবিধা।
- **প্যানেল স্ব-আপডেট**: ইন্টারফেসে ক্লিক করলেই বাইনারি ফাইল প্রতিস্থাপন ও ইন-প্লেস রিস্টার্ট, ব্যর্থ হলে স্বয়ংক্রিয় রোলব্যাক।
## দ্রুত শুরু
রিলিজ আর্টিফ্যাক্ট হলো একক-ফাইল বাইনারি, Linux amd64/arm64 ইত্যাদি আর্কিটেকচার সমর্থিত।
```bash
# 1. ডিরেক্টরি তৈরি ও ডাউনলোড
sudo mkdir -p /opt/hypercraft && cd /opt/hypercraft
sudo wget https://github.com/Lanscarlos/HyperCraft/releases/download/v0.4.0/hypercraft-0.4.0-linux-amd64.tar.gz
sudo tar -xzf hypercraft-0.4.0-linux-amd64.tar.gz --strip-components=1
# 2. systemd সার্ভিস ইনস্টল
sudo cp hypercraft.service /etc/systemd/system/
sudo systemctl enable --now hypercraft
# 3. প্রাথমিক অ্যাডমিন পাসওয়ার্ড দেখুন
sudo journalctl -u hypercraft -f
```
`http://আপনার_সার্ভার_IP:19190` খুলে লগইন করুন। প্রথম চালুতে র্যান্ডম অ্যাডমিন পাসওয়ার্ড তৈরি হয় ও লগে একবার প্রিন্ট হয়।
> **নিরাপত্তা সতর্কতা**: প্যানেল ডিফল্টে প্লেইন HTTP-তে লিসেন করে। পাবলিক ইন্টারনেটে প্রকাশ করতে হলে অবশ্যই রিভার্স প্রক্সি TLS কনফিগার করুন বা SSH টানেল ব্যবহার করুন।
## ইন্টারফেস সংক্ষেপ
- **ড্যাশবোর্ড**: কার্ড-স্টাইলে প্রতিটি সার্ভারের অবস্থা দেখায়, সরাসরি চালু/বন্ধ করা যায়, ডিস্ক সতর্কতা উপরে পিন করা।
- **নতুন ইনস্ট্যান্স উইজার্ড**: পাঁচ ধাপের প্রক্রিয়ায় কোর নির্বাচন, Java ইনস্টল, ইনস্ট্যান্স নামকরণ।
- **ফাইল ম্যানেজার**: ড্র্যাগ-ড্রপ আপলোড, রিজিউমেবল আপলোড, অনলাইন কনফিগ ফাইল এডিটিং সমর্থিত।
- **মোবাইল অ্যাডাপ্টেশন**: সংকীর্ণ স্ক্রিনে অগ্রাধিকার অবস্থা, চালু/বন্ধ ও কনসোল দেখায়, সাইডবার ড্রয়ার মোডে সংকুচিত হয়।
## টেকনিক্যাল বিবরণ
- **ভাষা**: Go (ব্যাকএন্ড) + Vanilla JS (ফ্রন্টএন্ড, কোনো UI ফ্রেমওয়ার্ক নির্ভরতা নেই)।
- **পারফরম্যান্স**: প্যানেলের স্থায়ী হিপ মেমরি প্রায় 2 MB।
- **বিল্ড**: সোর্স থেকে বিল্ড করতে Go 1.25+ এবং Node 20+ প্রয়োজন।
- **লাইসেন্স**: MIT License।
## পরিচিত সীমাবদ্ধতা ও ভবিষ্যৎ পরিকল্পনা
- **বর্তমানে অসম্পূর্ণ**: প্লেয়ার লিস্ট/হোয়াইটলিস্ট ম্যানেজমেন্ট (ম্যানুয়ালি JSON সম্পাদনা প্রয়োজন), স্বয়ংক্রিয় ব্যাকআপ, শিডিউলড টাস্ক, আরও কোর টাইপ (Fabric/Forge), Windows টার্মিনাল সমর্থন।
- **সিস্টেম সামঞ্জস্যতা**: Temurin শুধু glibc বিল্ড দেয়, musl সিস্টেমে (যেমন Alpine) চলতে নাও পারে, প্যানেল শনাক্ত করে সতর্কবার্তা দেবে।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.