THEZYZSTUDIO's picture
Upload 2 files
019c960 verified
|
raw
history blame
5.56 kB

🎮 Minecraft Java Server — Hugging Face Spaces

سيرفر Minecraft Java Edition صغير يعمل داخل Docker على Hugging Face Spaces. مثالي للعب مع الأصدقاء دون الحاجة لاستضافة مدفوعة.


ما الذي يفعله هذا المشروع؟

  • يُشغّل Minecraft Java server داخل حاوية Docker.
  • يُنزّل JAR السيرفر تلقائيًا من Mojang عند أول تشغيل.
  • يحفظ عالمك ولوغاتك في /data (دائم بين إعادات التشغيل).
  • يقبل إعدادات مرنة عبر متغيرات البيئة دون تعديل الكود.

المتطلبات

المتطلب التفاصيل
حساب Hugging Face مجاني على huggingface.co
Space من نوع Docker اختر Docker عند إنشاء الـ Space
Hardware Space مجاني يكفي للتجربة — CPU basic
Minecraft Java Edition على أجهزة اللاعبين (نسخة مدفوعة)
منفذ مفتوح HF Spaces لا تدعم TCP مباشرة — راجع ملاحظة الشبكة

كيفية الرفع إلى Hugging Face

# 1. ثبّت git-lfs إن لم يكن مثبتًا
git lfs install

# 2. أنشئ Space جديد من نوع Docker على huggingface.co/new-space

# 3. استنسخ الـ Space الفارغ
git clone https://huggingface.co/spaces/YOUR_USERNAME/YOUR_SPACE_NAME
cd YOUR_SPACE_NAME

# 4. انسخ ملفات هذا المشروع إليه
cp -r /path/to/minecraft-hf-space/* .

# 5. ارفع
git add .
git commit -m "Initial Minecraft server setup"
git push

بعد الـ push، سيبني HF الـ Docker image تلقائيًا ويُشغّل السيرفر.


كيفية تشغيل السيرفر

بعد رفع الملفات:

  1. افتح الـ Space على Hugging Face.
  2. انتظر حتى يكتمل البناء (عادةً 2-3 دقائق).
  3. راقب اللوغات من تبويب Logs في الـ Space.
  4. عند ظهور Done! For help, type "help" — السيرفر شغّال.

الاتصال بالسيرفر ⚠️

تنبيه مهم: Hugging Face Spaces لا تكشف منافذ TCP خارجيًا تلقائيًا. لتمرير المنفذ، استخدم إحدى الطرق التالية:

الخيار التفاصيل
playit.gg خدمة مجانية لتمرير منفذ Minecraft — الأسهل
ngrok يتطلب حساب مجاني، يدعم TCP
Cloudflare Tunnel للمستخدمين المتقدمين

مثال باستخدام playit.gg داخل الـ container:

# أضف في start.sh قبل تشغيل Java:
curl -SsL https://playit.gg/downloads/playit-linux-amd64 -o /tmp/playit
chmod +x /tmp/playit
/tmp/playit &

كيف أحافظ على العالم محفوظًا؟

  • العالم يُحفظ في /data/world (أو أي اسم اخترته في MC_WORLD).
  • /data هو الـ volume الدائم في Spaces — البيانات لا تُحذف عند إعادة التشغيل.
  • لعمل نسخة احتياطية يدوية: اذهب إلى Files في الـ Space وحمّل مجلد data/world.

⚠️ إذا حذفت الـ Space نفسه، ستُفقد البيانات. احتفظ بنسخة خارجية دائمًا.


كيف أغيّر الإعدادات؟

كل الإعدادات الرئيسية تُتحكم بها عبر Environment Variables في إعدادات الـ Space:

المتغير الافتراضي الوصف
MC_VERSION 1.21.4 إصدار Minecraft
MC_MEMORY 1G الحد الأدنى للـ RAM
MC_MAX_MEMORY 2G الحد الأقصى للـ RAM
MC_WORLD world اسم مجلد العالم
SERVER_PORT 25565 منفذ السيرفر

طريقة التعديل:

  1. افتح Space ← SettingsVariables and secrets
  2. أضف المتغير بالاسم والقيمة المطلوبة.
  3. أعد تشغيل الـ Space.

تغيير إعدادات اللعبة (server.properties):

بعد أول تشغيل، عدّل /data/server.properties مباشرة عبر:

  • أداة الـ terminal في الـ Space (إن توفرت)
  • أو أضف سكريبت يعدّل الملف قبل التشغيل

هيكل الملفات

minecraft-hf-space/
├── Dockerfile                      # تعريف الحاوية
├── start.sh                        # سكريبت التشغيل
├── README.md                       # هذا الملف
└── config/
    └── server.properties.template  # قالب الإعدادات

بعد التشغيل الأول، ستجد في /data:

/data/
├── server.jar          # JAR السيرفر (مُخزَّن مؤقتًا)
├── eula.txt
├── server.properties
├── world/              # العالم المحفوظ
└── logs/

نصائح الأداء

  • RAM: على الـ Space المجاني (16GB RAM)، MC_MAX_MEMORY=3G جيد لـ 5 لاعبين.
  • view-distance: قيمة 6-8 تكفي وتوفر CPU.
  • Aikar's flags: مُضمّنة في start.sh لتحسين GC.

الترخيص

هذا المشروع لأغراض تعليمية وتجريبية. Minecraft ملك لـ Mojang/Microsoft — تأكد من امتلاك نسخة أصلية.