عن المشروع
# 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 ميغابايت.
- **البناء**: يتطلب 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.