تخطَّ إلى المحتوى

الحزمة المحمولة

الإعداد

شغّل HolyArrs برنامجًا عاديًا على Linux أو Windows، من دون Docker. ويبقى Docker الطريقة الأساسية لتشغيله.

  • Python 3 وGit وDocker على جهاز البناء.
  • ذاكرة مؤقتة ممتلئة لوحدات Go (module cache) من بناء عادي للمشروع، واعتماديات الواجهة مثبّتة من app/frontend/package-lock.json.
  • تطبيق الويب المبني مودَع (committed). البناء يستعمل المصدر المودَع وحده؛ التعديلات غير المودَعة تُترك خارجه.
  1. من نسخة العمل (checkout)، ابنِ الأرشيفات:

    Terminal window
    python deploy/release/package.py --ref HEAD --version 1.0.0 --output /srv/holyarrs-archives/1.0.0 --web-node-modules app/frontend/node_modules --module-cache /home/you/go/pkg/mod

    استعمل مجلد مخرجات جديدًا خارج نسخة العمل. سترى أرشيفًا لكل هدف وملف SHA256SUMS.

  2. تحقق من الأرشيف بمقارنته مع SHA256SUMS.

  3. استخرجه في مجلد جديد. أبقِ البرنامج والإعدادات في مجلدين منفصلين.

  4. شغّله بمسار إعداداتك أنت:

    Terminal window
    ./holyarrs -config /srv/holyarrs/config -addr :6262

    على Windows PowerShell:

    Terminal window
    .\holyarrs.exe -config 'C:\HolyArrs\config' -addr ':6262'
  5. افتح http://your-server:6262. سترى معالج التشغيل الأول. أنشئ حساب المالك فورًا؛ فأول زائر يصير المالك.

شغّل HolyArrs بحساب خاص به، له إذن الكتابة على مجلد الإعدادات ووسائطك فقط.

  • إذا شُغّل بحساب root خارج حاوية، من دون PUID وPGID، يتوقف مع الرسالة “started as root outside a container” (شُغّل بحساب root خارج حاوية).
  • مع تعيين PUID وPGID، يسلّم مجلد الإعدادات إلى ذلك المستخدم وينتقل إليه.
  • على Windows، احمِ مجلد الإعدادات بإذن NTFS لذلك الحساب.

إعادة التشغيل والحدود

رابط إلى إعادة التشغيل والحدود

الأرشيف لا يثبّت أي خدمة. أعدّ إعادة التشغيل التلقائية والحدود الصارمة للذاكرة في مدير الخدمات الذي تستعمله (systemd أو NSSM أو Task Scheduler). إعادة التشغيل من التطبيق واستعادة نسخة احتياطية كلتاهما تنهيان البرنامج وتنتظران أن يُشغَّل من جديد.

التحديث والرجوع إلى الإصدار الأقدم

رابط إلى التحديث والرجوع إلى الإصدار الأقدم
  1. تحقق من الأرشيف الجديد قبل أن توقف التطبيق.
  2. أوقف HolyArrs وانسخ مجلد الإعدادات كاملًا، ومعه المفتاح الرئيسي. أو أنشئ نسخة احتياطية من داخل التطبيق واحفظ مفتاحها على حدة.
  3. استخرج البرنامج الجديد في مجلد آخر. احتفظ بالبرنامج القديم وبنسخة الإعدادات القديمة.
  4. شغّل البرنامج الجديد على إعداداتك. يُفترض أن تستطيع تسجيل الدخول، وأن يعرض /health الحالة running.

انظر النسخ الاحتياطية.

العَرَض السبب الحل
“started as root outside a container” شُغّل بحساب root شغّله بمستخدم خاص به، أو عيّن PUID وPGID.
التطبيق ينتهي بعد استعادة الاستعادة تجهّز البيانات وتنهي البرنامج بالرمز 75 شغّله من جديد لتطبيقها. اضبط مدير الخدمات ليعيد تشغيله.
اتصالات HTTPS تفشل على Linux لا توجد شهادات CA للنظام ثبّتها.
البناء يقول إن المخرجات موجودة مجلدات المخرجات الموجودة تُرفض اختر مجلدًا جديدًا.
خيارات البناء
الخيار ما الذي يفعله الافتراضي
--targets مجموعة جزئية من الأهداف للبناء، مفصولة بفواصل linux-amd64,linux-arm64,linux-armv7,windows-amd64
--low-resource كل حاوية بناء تحصل على 1 CPU و2 GiB و256 عملية؛ ويبني Go حزمة واحدة في كل مرة. أما ضغط الأرشيفات فيجري على الجهاز المضيف، خارج تلك الحدود. معطّل

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

ما الذي يحتويه الأرشيف

البرنامج، والترخيص، وإشعارات الأطراف الثالثة، والأدلة، وبيان بالمصدر (manifest)، وهوية الحزمة. وأرشيف مصدر منفصل يحتوي مصدر المشروع واعتماديات Go؛ أبقِه بجانب الملفات التنفيذية.

يثبت SHA256SUMS أن الملفات مطابقة. وليس توقيعًا. الـ commit نفسه والإصدار نفسه والمدخلات نفسها تعطي الأرشيفات نفسها، فيمكنك إعادة البناء للتحقق.

ملاحظات التشغيل
الموضوع التفصيل
مسار الإعدادات الافتراضي /config. مرّر -config دائمًا، وعلى قرص محلي.
هدف الذاكرة 384 MiB من دون GOMEMLIMIT. عيّنه إلى نحو 80 بالمئة من الذاكرة التي تمنحها. هدف، لا حد صارم.
وضع الذاكرة المنخفضة على Linux، يشتغل تلقائيًا عند نحو 2.5 GiB أو أقل؛ وينخفض الهدف إلى ربع الذاكرة، بين 192 و384 MiB. والقرار لـ HOLYARRS_LOW_MEMORY=1 أو 0.
Node لا حاجة إليه للتشغيل.
الروابط الثابتة أبقِ التنزيلات ومجلدات المكتبة على نظام ملفات واحد.

HolyArrs مجاني. إذا وفّر عليك وقتًا، امنحه نجمة على GitHub أو ادعمه ماليًا أو ادعُني إلى فنجان قهوة.