इसे छोड़कर कंटेंट पर जाएं

पोर्टेबल बिल्ड

सेटअप

HolyArrs को Linux या Windows पर Docker के बिना, एक सादे प्रोग्राम की तरह चलाएं। इसे चलाने का मुख्य तरीका Docker ही रहता है।

शुरू करने से पहले

शुरू करने से पहले का लिंक
  • बिल्ड मशीन पर Python 3, Git और Docker।
  • प्रोजेक्ट के सामान्य बिल्ड से भरा हुआ Go मॉड्यूल कैश, और app/frontend/package-lock.json से इंस्टॉल की गई फ़्रंटएंड डिपेंडेंसी।
  • बना हुआ वेब ऐप कमिट किया हुआ हो। बिल्ड सिर्फ़ कमिट किया हुआ सोर्स कोड इस्तेमाल करता है; बिना कमिट किए बदलाव छूट जाते हैं।
  1. चेकआउट से आर्काइव बनाएं:

    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 के साथ बंद हो जाता है उसे लागू करने के लिए दोबारा शुरू करें। अपने सर्विस मैनेजर को उसे रीस्टार्ट करने पर सेट करें।
Linux पर HTTPS कॉल फ़ेल होती हैं सिस्टम के CA सर्टिफ़िकेट नहीं हैं उन्हें इंस्टॉल करें।
बिल्ड कहता है कि आउटपुट पहले से मौजूद है मौजूदा आउटपुट फ़ोल्डर मना कर दिए जाते हैं नया फ़ोल्डर चुनें।

एक्सपर्ट के लिए

एक्सपर्ट के लिए का लिंक
बिल्ड के विकल्प
विकल्प यह क्या करता है डिफ़ॉल्ट
--targets कॉमा से अलग किए गए वे टारगेट जो बनाने हैं linux-amd64,linux-arm64,linux-armv7,windows-amd64
--low-resource हर बिल्डर कंटेनर को 1 CPU, 2 GiB और 256 प्रोसेस मिलते हैं; Go एक बार में एक पैकेज बनाता है। पैकिंग फिर भी होस्ट पर चलती है, इन सीमाओं के बाहर। बंद

बिल्ड प्रोजेक्ट की पिन की हुई Go बिल्डर इमेज में चलता है और नेटवर्किंग बंद रहती है, इसलिए यह कुछ डाउनलोड नहीं करता। मॉड्यूल कैश सिर्फ़ पढ़ने के लिए माउंट होता है। कोई भी टारगेट फ़ेल हो, तो कोई आउटपुट फ़ोल्डर नहीं बचता। कमिट वर्ज़न नंबर में जोड़ा जाता है और प्रोग्राम के अंदर डाला जाता है; ऐप और उसके बैकअप इसे बताते हैं।

आर्काइव में क्या होता है

प्रोग्राम, लाइसेंस, थर्ड-पार्टी नोटिस, गाइड, सोर्स मैनिफ़ेस्ट और पैकेज की पहचान। एक अलग सोर्स आर्काइव में प्रोजेक्ट का सोर्स कोड और Go डिपेंडेंसी होती हैं; उसे बाइनरी के पास रखें।

SHA256SUMS साबित करता है कि फ़ाइलें मेल खाती हैं। यह सिग्नेचर नहीं है। वही कमिट, वर्ज़न और इनपुट वही आर्काइव देते हैं, इसलिए जाँचने के लिए आप दोबारा बिल्ड कर सकते हैं।

चलाते समय की बातें
विषय जानकारी
कॉन्फ़िग पाथ डिफ़ॉल्ट /config। -config हमेशा दें, और वह लोकल डिस्क पर हो।
मेमोरी का लक्ष्य GOMEMLIMIT के बिना 384 MiB। इसे उस मेमोरी के लगभग 80 प्रतिशत पर सेट करें जो आप देते हैं। यह लक्ष्य है, पक्की सीमा नहीं।
लो-मेमोरी मोड Linux पर लगभग 2.5 GiB या उससे कम पर अपने आप चालू; लक्ष्य घटकर मेमोरी का एक चौथाई हो जाता है, 192 और 384 MiB के बीच। HOLYARRS_LOW_MEMORY=1 या 0 इसे तय करता है।
Node चलाने के लिए ज़रूरी नहीं।
हार्डलिंक डाउनलोड और लाइब्रेरी फ़ोल्डर एक ही फ़ाइल सिस्टम पर रखें।

HolyArrs मुफ़्त है। अगर इससे आपका समय बचा, तो GitHub पर स्टार दें, स्पॉन्सर करें या मुझे एक कॉफ़ी पिलाएं।