دليل استضافة ميرزا الحرم

حزمة استضافة ميرزا الحرم — الإصدار235

هذه الحزمة تضيف طريقًا إلى الشبكة نفسها، ولا تنشئ شبكة أو عدّادًا منفصلًا.
المبلغ المسجّل هو نيّة المساندة؛ لا يدفع المشارك مالًا إلى التطبيق أو المضيف.
يحفظ المضيف الأدلة والرسائل الأصلية، ولا يملك صلاحية إنشاء عضوية أو تغيير مبلغ
أو توقيع خبر باسم المدير. الخبر العربي والفارسي منفصلان في العرض والصلاحيات.

1. ترتيب الملفات
ZIP الكود public-rescue-host-kit.zip لا يحتوي أي APK أو سر مدير.
استخدم الحزمة القابلة للنقل واستخرجها في مجلّد جديد، ثم استخرج ZIP الكود
واحدًا من shared-host.zip أو vps-host.zip في المجلّد نفسه:
portable235/
  public-rescue-host-kit.zip
  public-rescue-package.json
  public-files/app-release.apk
  public-files/public-android-release.json
  public-files/app-release-ar.apk              (اختياري مع الملف التالي)
  public-files/public-android-release-ar.json  (اختياري مع ملف APK العربي)
  shared-host/ أو vps-host/
الزوج الفارسي إلزامي ولا يُستبدل بالزوج العربي. يتحقّق المثبّت من توقيع Root
وهش APK والمرجع وبيانات حزمة الكود المضمّنة فيه. لا يكفي وجود APK وحده.
يمكن تحديد المجلّد الثابت عبر CHARITY_PUBLIC_ASSETS_DIR بمسار مطلق.
لا تُدخل كلمات مرور أو قواعد بيانات شخصية في public-files أو ZIP العام.

2. خادم VPS
يلزم Linux x86_64 مع systemd وsudo، ونطاق يشير إلى الخادم عبر DNS A،
ومنافذ TCP80 و443 و17177 متاحة. Node وCaddy موجودان في الحزمة.
داخل vps-host نفّذ:
sudo bash install-vps.sh
أدخل نطاقك، ثم العنوان الكامل لمضيف متوافق معروف، مثل:
https://host-a.example/index.php
إذا كنت المضيف الوحيد، يمكن ترك عنوان النظير فارغًا؛ اختبار الاتصال بين
المضيفين يبقى غير مكتمل. المثبّت لا يمسح خدمة قائمة أو قاعدة بيانات موجودة.
افتح https://YOUR-DOMAIN/developers.html وأجرِ الاختبارات المرقّمة.

3. استضافة PHP
يلزم PHP8.2 أو أحدث،64-bit، OpenSSL وPDO SQLite وcURL وZlib،
وHTTPS صحيح، وإمكانية الكتابة خارج DOCUMENT_ROOT. cURL ضروري للتحقّق
الآمن من المضيف مع TLS؛ لا يوجد بديل غير آمن عند غيابه.
ارفع الترتيب كاملًا إلى مجلّد جديد؛ لا تنقل قاعدة البيانات إلى المجلّد العام.
ضع replication-peers.json بجانب قاعدة البيانات الخاصة وبالعناوين الصحيحة:
{"selfUrl":"https://host-b.example/index.php","peers":["https://host-b.example/index.php","https://host-a.example/index.php"]}
شغّل كل دقيقة من مؤقّت الاستضافة، مع المسارات الحقيقية:
php /ABSOLUTE/shared-host/relay-cron.php /ABSOLUTE/DOCUMENT_ROOT
تعني سلامة health أن الخدمة جاهزة؛ ولا تعني أن كل الهواتف متزامنة.
الاختبار5 يعرض آخر دورة تبادل فعلية للأدلة؛ وقد يكون غير مكتمل أو قديمًا.

4. التنزيل والقنوات
صفحة العربية: index.php?lang=ar#start=citizen
صفحة مساهمة المطوّرين: index.php?lang=ar#start=developer
تنزيل العربية: index.php?action=download&file=app-release-ar.apk
معرّف حزمة العربية org.charitychain.app.ar؛ ملف تعريفها منفصل وموقّع بنفس Root.
المسارات الفارسية الأصلية محفوظة. يعمل الاختصار app-ar.apk في Apache عند
توفر mod_rewrite؛ رابط index.php المباشر لا يعتمد عليه.
قناة صورة النداء العربية public-artwork-ar لا تستبدل الصورة الفارسية.
ملفا public-artwork.sqlite وpublic-artwork-ar.sqlite خاصّان، يحتفظ كل منهما
بالزوج الحالي والسابق. لا تحذفهما أو تستبدلهما أثناء الترقية أو الاسترجاع.
نشر الخبر العربي يحتاج جلسة المدير المشفّرة الأصلية؛ المضيف لا يمنح هذه الصلاحية.

5. تعريف الهواتف والتحقّق
أدخل عنوان HTTPS الكامل في بطاقة إحياء الشبكة أو تعريف المضيف على أول هاتف.
يمكن للهاتف نقل العنوان الموثوق إلى الهواتف القريبة بالبلوتوث. لا يستطيع هاتف
معزول معرفة عنوان لم يصله؛ والبلوتوث المغلق لا يستقبل إرسالًا غاب عنه.
عند إضافة مضيف، اختبر التبادل الحقيقي وحداثة المزامنة، لا صفحة health وحدها.
تتشارك النسختان الأدلة والمجموع والإجمالي المالي والمضيفين. كل تثبيت يملك
هويته الخاصة؛ تثبيت النسختين على هاتف واحد لا ينقل الهوية القديمة تلقائيًا.
احتفظ بالأدلة الأصلية وتهيئة Root والعدادات وقواعد البيانات الخاصة عند أي ترقية.
لا تتضمّن هذه الحزمة ضمان اتصال مطلق أو ادّعاء اختبار تعافٍ مادي لم يُجرَ.