Linux
Linux पर Arkvory चलाने के दो तरीके हैं:
- पैकेज
Arkvory-amd64.debयाArkvory-x86_64.rpm। अनुशंसित। यह systemd सेवाएँ और एक समर्पित PostgreSQL क्लस्टर इंस्टॉल करता है जिसे Arkvory प्रबंधित करता है। आपका पैकेज प्रबंधक PostgreSQL प्रोग्राम प्रदान करता है। - स्क्रिप्ट
install.sh। यह वही सेवाएँ इंस्टॉल करती है, पर मौजूदा PostgreSQL सर्वर इस्तेमाल करती है। यह arm64 भी समर्थित करती है। मौजूदा PostgreSQL इस्तेमाल करें देखें।
Docker के लिए, Docker Compose देखें। कंसोल के पहले परिचय के लिए, त्वरित शुरुआत देखें।
आवश्यकताएँ
| मद | आवश्यकता |
|---|---|
| प्रोसेसर | पैकेजों के लिए x64। arm64 पैकेज नहीं हैं: arm64 पर install.sh इस्तेमाल करें |
| इनिट सिस्टम | systemd। OpenRC, runit और अन्य इनिट सिस्टम समर्थित नहीं हैं |
| C लाइब्रेरी | glibc 2.28 या बाद का। Alpine Linux (musl) समर्थित नहीं है |
| परीक्षित वितरण | .deb के लिए Ubuntu 24.04, .rpm के लिए Fedora 44। नीचे दी गई निर्भरताएँ पूरी करने वाले अन्य systemd वितरणों की जाँच नहीं की गई |
.deb की निर्भरताएँ | postgresql 16 या बाद का, systemd, python3, ca-certificates, libc6 2.28 या बाद का, libstdc++6, libgcc-s1, libatomic1 |
.rpm की निर्भरताएँ | postgresql-server 16 या बाद का, systemd, python3, ca-certificates, glibc 2.28 या बाद का, libstdc++, libatomic |
| PostgreSQL प्रोग्राम | संस्करण 16 से 19। इंस्टॉलेशन चरण /usr/lib/postgresql/*/bin, /usr/pgsql-*/bin, /usr/bin और /usr/lib/pgsql/bin खोजता है और जो सबसे ऊँचा संस्करण मिलता है उसे लेता है। यदि आपका वितरण केवल पुराना संस्करण देता है, तो पहले नया PostgreSQL रिपॉज़िटरी जोड़ें |
| खाता | root, या ऐसा उपयोगकर्ता जो sudo चला सके |
| खाली पोर्ट | 127.0.0.1 पर 8080, और 54329 या 45329-45348 में से एक |
| फ़ाइल स्टोरेज | हार्ड लिंक समर्थित करने वाला स्थानीय फ़ाइल सिस्टम। नेटवर्क शेयर इस्तेमाल न करें |
पैकेज में Node.js 24 है। इसे इंस्टॉल करने के लिए आपके पैकेज प्रबंधक की निर्भरताओं के अलावा किसी इंटरनेट पहुँच की ज़रूरत नहीं।
पैकेज कभी मौजूदा PostgreSQL क्लस्टर या सेवा नहीं बदलता। Arkvory PostgreSQL प्रोग्रामों से अपना क्लस्टर शुरू करता है।
पैकेज इंस्टॉल करें
- GitHub Releases से अपने वितरण का पैकेज डाउनलोड करें, साथ ही उसी रिलीज़ का
native-linux.json। - पैकेज के SHA-256 की तुलना
native-linux.jsonमें दिए मान से करें। पैकेज प्रकाशक कुंजी से हस्ताक्षरित नहीं हैं, इसलिए यह जाँच आपने जो डाउनलोड किया उसका एकमात्र प्रमाण है। - पैकेज इंस्टॉल करें। फ़ाइल नाम के आगे
./रखें: यह पैकेज प्रबंधक को बताता है कि फ़ाइल स्थानीय है। Debian और Ubuntu पर:
sudo apt install ./Arkvory-amd64.debFedora और RPM-संगत सिस्टम पर:
sudo dnf install ./Arkvory-x86_64.rpmपैकेज प्रबंधक निर्भरताएँ इंस्टॉल करता है, फिर Arkvory स्वयं कॉन्फ़िगर होता है। यह:
- Node.js को
/opt/proanima-arkvory/runtime/nodeपर कॉपी करता है, - दोनों सेवा खाते, विन्यास, कुंजियाँ और पुनर्प्राप्ति कुंजी बनाता है,
- PostgreSQL क्लस्टर बनाता और शुरू करता है और डेटाबेस माइग्रेशन चलाता है,
- सेवाएँ और अपडेट टाइमर पंजीकृत और शुरू करता है,
- API के लगातार तीन बार अपनी रेडीनेस जाँच का उत्तर देने तक प्रतीक्षा करता है।
अंत में यह कंसोल का पता और पुनर्प्राप्ति कुंजी का पथ छापता है। यदि कोई चरण विफल हो, तो इंस्टॉलेशन त्रुटि के साथ रुक जाता है। समस्या निवारण देखें।
इंस्टॉलेशन के बाद स्वचालित अपडेट बंद हैं। उन्हें चालू करने के लिए, अपडेट देखें।
पैकेज क्या बनाता है
फ़ाइलें और डायरेक्टरियाँ
| पथ | सामग्री |
|---|---|
/usr/lib/proanima-arkvory/ | पैकेज पेलोड: Node.js, रिलीज़ फ़ाइलें और इंस्टॉलर। पैकेज के स्वामित्व में |
/usr/bin/arkvory | प्रबंधन कमांड। arkvory कमांड देखें |
/usr/share/applications/arkvory.desktop | मेनू प्रविष्टि जो डेस्कटॉप पर कंसोल खोलती है। बिना डेस्कटॉप वाला सर्वर इसे इस्तेमाल नहीं करता |
/opt/proanima-arkvory/ | इंस्टॉलेशन रूट: विन्यास, डेटा, डेटाबेस, हर संस्करण का प्रोग्राम कोड। इसका लेआउट इंस्टॉलेशन चुनें में वर्णित है |
/etc/systemd/system/arkvory-*.service, arkvory-update.timer | सेवा यूनिट्स और अपडेट टाइमर |
रूट root:arkvory के साथ मोड 0711 है। इसके भीतर, config/ 0750 root:arkvory है, data/ और logs/ arkvory के हैं, और database/ मोड 0700 के साथ arkvory-db का है। पुनर्प्राप्ति कुंजी और डेटाबेस पासवर्ड फ़ाइलें केवल root पढ़ सकता है।
खाते
| खाता | चलाता है | नोट्स |
|---|---|---|
arkvory | API, वर्कर, बैकअप एजेंट | सिस्टम खाता, कोई लॉगिन शेल नहीं, होम /opt/proanima-arkvory/data |
arkvory-db | डेटाबेस | सिस्टम खाता, कोई लॉगिन शेल नहीं। API खाता डेटाबेस फ़ाइलें नहीं पढ़ सकता |
सेवाएँ
| यूनिट | इस रूप में चलता है | रीस्टार्ट नीति |
|---|---|---|
arkvory-database | arkvory-db | on-failure, 10 सेकंड बाद |
arkvory-api | arkvory | always, 10 सेकंड बाद |
arkvory-worker | arkvory | always, 10 सेकंड बाद |
arkvory-backup | arkvory | always, 10 सेकंड बाद |
arkvory-update.timer | root के रूप में arkvory-update.service शुरू करता है | हर मिनट। जॉब अपडेट अनुरोध और रिलीज़ जाँचता है |
सभी यूनिट्स बूट पर शुरू होती हैं (multi-user.target)। वे रुकने के लिए 120 सेकंड देती हैं। वे NoNewPrivileges, निजी /tmp, अपनी डायरेक्टरियों के बाहर रीड-ओनली फ़ाइल सिस्टम और /home तक कोई पहुँच के बिना चलती हैं। API और वर्कर रूट के केवल data/, logs/ और updates/inbox/ में लिख सकते हैं। बैकअप एजेंट स्टोरेज पढ़ता है और केवल बैकअप स्टोरेज में लिखता है। चूँकि /home यूनिट्स से छिपा है, प्रमाणपत्र, बैकअप स्टोरेज या डेटा डायरेक्टरी कभी होम डायरेक्टरी के अंतर्गत न रखें।
आपके अनुरोध के बिना रुकी सेवा 10 सेकंड बाद फिर शुरू हो जाती है। जिस प्रोसेस का मुख्य थ्रेड 60 सेकंड तक हैंग रहता है, वह स्वयं समाप्त होकर फिर शुरू हो जाता है। केवल विफल रेडीनेस जाँच सेवा को रीस्टार्ट नहीं करती। स्वतः पुनर्प्राप्ति देखें।
पोर्ट
| पोर्ट | उपयोग | एक्सपोज़र |
|---|---|---|
| 8080/TCP | API और कंसोल | केवल 127.0.0.1, जब तक आप HTTPS कॉन्फ़िगर न करें |
| 54329/TCP | प्रबंधित PostgreSQL क्लस्टर | केवल 127.0.0.1। इंस्टॉलेशन के समय 54329 लिया हुआ हो तो 45329-45348 में से पहला खाली पोर्ट; यह database/settings.json में रखा जाता है |
पहला शुरू और शुरुआती चरण
जाँचें कि सेवाएँ चल रही हैं:
bashsystemctl status arkvory-database arkvory-api arkvory-worker arkvory-backupपुनर्प्राप्ति कुंजी पढ़ें। केवल
rootइसे पढ़ सकता है।bashsudo cat /opt/proanima-arkvory/config/bootstrap-token.txthttp://127.0.0.1:8080/console/#onboardingखोलें। किसी दूरस्थ सर्वर पर, पहले पोर्ट अग्रेषित करें और अपने कंप्यूटर पर पता खोलें:bashssh -L 8080:127.0.0.1:8080 admin@arkvory.exampleकंसोल में शुरुआत खोलें और पहला स्वामी बनाएँ का विस्तार करें। कुंजी को पुनर्प्राप्ति कुंजी में चिपकाएँ, स्वामी का नाम और कम से कम 12 अक्षरों का पासवर्ड दर्ज करें, और स्वामी बनाएँ चुनें। नाम में 3 से 64 अक्षर हैं: लैटिन अक्षर, अंक, बिंदु, डैश या अंडरस्कोर।
नए नाम और पासवर्ड से साइन इन करें।
स्वामी पहला व्यवस्थापक है। पुनर्प्राप्ति कुंजी सर्वर पर रहती है: फ़ाइल को न हटाएँ, और इसे क्लाइंट या CI सिस्टम पर न कॉपी करें। इंस्टॉलेशन टूल इसे पढ़ते हैं। दैनिक काम के लिए, खाते और सेवा कुंजियाँ बनाएँ। खाते और पहुँच और सुरक्षा देखें।
दूसरे कंप्यूटरों से क्लाइंट जुड़ने से पहले, HTTPS कॉन्फ़िगर करें। फिर बैकअप स्टोरेज जोड़ें और पहला बैकअप चलाएँ: बैकअप देखें।
अपने कंप्यूटर से किसी सर्वर पर इंस्टॉल करने के लिए, आप इसके बजाय Arkvory Remote Setup इस्तेमाल कर सकते हैं। इंस्टॉलेशन चुनें देखें।
arkvory कमांड
पैकेज /usr/bin/arkvory इंस्टॉल करता है। arkvory help सभी कमांड की सूची दिखाता है और उसे कोई विशेष अधिकार नहीं चाहिए। हर अन्य कमांड को root और इंस्टॉलेशन रूट चाहिए:
sudo arkvory status --root /opt/proanima-arkvorystatus इंस्टॉलेशन मोड, इंस्टॉल किया गया संस्करण, स्वचालित अपडेट सेटिंग और संस्करण पिन छापता है।
| कमांड | उपयोग |
|---|---|
status | इंस्टॉल किया गया संस्करण और अपडेट नीति दिखाएँ |
update | अभी कोई नया स्थिर रिलीज़ इंस्टॉल करें। अपडेट देखें |
configure | HTTPS, बैकअप स्टोरेज, मिरर, अपडेट नीति और हब। विन्यास देखें |
recover | बाधित अपडेट पूरा करें। अपडेट देखें |
finish-install | बाधित इंस्टॉलेशन जारी रखें |
updates-connect | पुराने रिलीज़ से अपडेट किए गए इंस्टॉलेशन के कंसोल और अपडेट टाइमर को जोड़ें |
लॉग
सेवाएँ system जर्नल में लिखती हैं। API और वर्कर प्रति पंक्ति एक JSON रिकॉर्ड लिखते हैं।
sudo journalctl -u arkvory-api -u arkvory-worker -u arkvory-backup -u arkvory-database
sudo journalctl -u arkvory-api -f
sudo journalctl -u arkvory-update --since todayarkvory-update अपडेट टाइमर का आउटपुट रखता है। जर्नल का आकार और प्रतिधारण आपके ऑपरेटिंग सिस्टम की सेटिंग्स हैं। रिकॉर्ड फ़ील्ड और मीट्रिक के लिए, मॉनिटरिंग देखें। डिप्लॉय कमांड <ISO-8601 time> INFO|WARN|ERROR <text> के रूप में पंक्तियाँ छापते हैं। उनसे सीक्रेट हटा दिए जाते हैं।
अपग्रेड
पुराने के ऊपर नया पैकेज इंस्टॉल करें, या कंसोल से या arkvory update से अपडेट करें। चल रही सेवाएँ तब तक परोसती रहती हैं जब तक अपडेट नए कोड पर न स्विच करे। नीतियों, डेटाबेस स्कीमा बदलाव से पहले बैकअप और रिकवरी चरणों के लिए अपडेट देखें।
Arkvory के लिए कोई apt या dnf रिपॉज़िटरी नहीं है। हर नया पैकेज रिलीज़ पृष्ठ से डाउनलोड करें।
हटाएँ
पैकेज हटाएँ और डेटा रखें
Debian और Ubuntu पर:
sudo apt remove proanima-arkvoryFedora और RPM-संगत सिस्टम पर:
sudo dnf remove proanima-arkvoryहटाना सेवाओं और अपडेट टाइमर को रोकता और अक्षम करता है। यह /usr/lib/proanima-arkvory, /usr/bin/arkvory और मेनू प्रविष्टि हटाता है। यह जानबूझकर रखता है:
/opt/proanima-arkvory: डेटाबेस, सभी फ़ाइलें, विन्यास और पुनर्प्राप्ति कुंजी,/etc/systemd/systemमें यूनिट फ़ाइलें, खातेarkvoryऔरarkvory-db,- बैकअप स्टोरेज और उसका systemd ड्रॉप-इन। यह बैकअप स्टोरेज को कभी नहीं छूता।
apt purge apt remove से अधिक कुछ नहीं हटाता। यदि आप पैकेज फिर से इंस्टॉल करें, तो यह रखे गए डेटा के साथ जारी रहता है और सेवाएँ शुरू करता है।
सब कुछ हटाएँ
यह सभी सहेजी गई फ़ाइलें और कैटलॉग हटा देता है। पहले बैकअप बनाएँ और बैकअप स्टोरेज रखें।
sudo systemctl disable --now arkvory-update.timer arkvory-backup arkvory-worker arkvory-api arkvory-database
sudo rm -rf /opt/proanima-arkvory
sudo rm -f /etc/systemd/system/arkvory-*.service /etc/systemd/system/arkvory-update.timer
sudo rm -rf /etc/systemd/system/arkvory-backup.service.d
sudo systemctl daemon-reload
sudo userdel arkvory
sudo userdel arkvory-dbपहले पैकेज हटाएँ, जैसा ऊपर वर्णित है। स्क्रिप्ट इंस्टॉलेशन के बाद कोई पैकेज नहीं होता: पहला कमांड सेवाएँ रोकता है, और जो कमांड arkvory-database तथा arkvory-db का नाम लेते हैं वे बताते हैं कि ये मौजूद नहीं हैं।
मौजूदा PostgreSQL इस्तेमाल करें
पैकेज हमेशा अपना क्लस्टर बनाता है। आपके संगठन द्वारा चलाए जाने वाले PostgreSQL सर्वर का उपयोग करने के लिए, install.sh से इंस्टॉल करें। यह वही तीन सेवाएँ और अपडेट टाइमर बनाता है, पर कोई arkvory-database यूनिट और कोई /usr/bin/arkvory कमांड नहीं।
16 से 19 तक का PostgreSQL संस्करण इस्तेमाल करें। एक Arkvory इंस्टॉलेशन के लिए एक डेटाबेस इस्तेमाल करें। कभी दो इंस्टॉलेशनों को एक ही डेटाबेस से न जोड़ें।
अपने डेटाबेस व्यवस्थापक से एक खाली डेटाबेस और उसका स्वामी एक भूमिका माँगें। Arkvory इस भूमिका से अपने माइग्रेशन चलाता है।
रिलीज़ से
install.shडाउनलोड करें और पढ़ें। इसेbash,curl,python3,tarऔरxz, systemd तथाrootचाहिए।इसे चलाएँ। स्क्रिप्ट कनेक्शन URL माँगती है; इनपुट छिपा रहता है।
bashsudo bash ./install.sh --automaticURL को इसके बजाय फ़ाइल में देने के लिए, ऐसी फ़ाइल बनाएँ जिसे केवल
rootपढ़ सके:json{ "ARKVORY_DATABASE_URL": "postgresql://arkvory:<password>@db.example:5432/arkvory" }bashsudo bash ./install.sh --config /root/arkvory.jsonइंस्टॉलेशन पूरा होने पर स्क्रैच डायरेक्टरी
/opt/proanima-arkvory/bootstrap.*हटाएँ। यदि आपने URL प्रॉम्प्ट पर टाइप किया था, तो डायरेक्टरी उसेnative.jsonमें रखती है।स्वामी को पहला शुरू और शुरुआती चरण में वर्णित अनुसार बनाएँ।
स्क्रिप्ट nodejs.org से Node.js 24.21.0 डाउनलोड करती है, उसका SHA-256 जाँचती है और नवीनतम स्थिर रिलीज़ इंस्टॉल करती है। स्वचालित अपडेट बंद रखने के लिए --automatic छोड़ दें। एनवायरनमेंट वेरिएबल डिफ़ॉल्ट बदलते हैं:
| वेरिएबल | अर्थ | डिफ़ॉल्ट |
|---|---|---|
ARKVORY_INSTALL_ROOT | इंस्टॉलेशन रूट। /home के बाहर एक समर्पित, खाली डायरेक्टरी इस्तेमाल करें | /opt/proanima-arkvory |
ARKVORY_RELEASE_VERSION | नवीनतम के बजाय यह स्थिर संस्करण इंस्टॉल करें | नवीनतम स्थिर |
ARKVORY_ARTIFACT_DIR | GitHub के बजाय खोले गए Arkvory-Linux.tar.gz से इंस्टॉल करें | सेट नहीं |
उन्हें sudo env के माध्यम से पास करें, उदाहरण के लिए sudo env ARKVORY_INSTALL_ROOT=/srv/arkvory bash ./install.sh।
arkvory कमांड के बिना, प्रबंधन प्रोग्राम को उस Node.js से कॉल करें जो स्क्रिप्ट ने इंस्टॉल किया। arm64 पर linux-arm64 इस्तेमाल करें:
root=/opt/proanima-arkvory
sudo "$root/runtime/node-v24.21.0-linux-x64/bin/node" "$root/manage.mjs" status --root "$root"आप PostgreSQL सर्वर का बैकअप और रखरखाव स्वयं करते हैं। Arkvory बैकअप एजेंट कनेक्शन URL के माध्यम से डेटाबेस सामग्री को बैकअप स्टोरेज में कॉपी करता है। बैकअप देखें।
समस्या निवारण
| समस्या | क्या करें |
|---|---|
PostgreSQL 16–19 server binaries are required | PostgreSQL प्रोग्राम गायब हैं या बहुत पुराने हैं। संस्करण 16 से 19 का PostgreSQL सर्वर इंस्टॉल करें और पैकेज फिर से इंस्टॉल करें |
Use a dedicated empty installation directory | /opt/proanima-arkvory में पहले इंस्टॉलेशन की फ़ाइलें हैं जो installation.json सहेजने से पहले रुक गया। इंस्टॉलर कभी विन्यास अधिलेखित नहीं करता। जर्नल और पैकेज प्रबंधक आउटपुट पढ़ें और कारण ठीक करें। अभी तक डेटा न रखने वाली डायरेक्टरी को हटाया जा सकता है ताकि आप फिर इंस्टॉल कर सकें। डेटा रखने वाले इंस्टॉलेशन की config/ या database/ न हटाएँ |
Installation is locked | कोई ऑपरेशन चल रहा है या क्रैश हो गया। अपडेट टाइमर रोकें, रूट में journal.json पढ़ें और स्थिति जानने से पहले operation.lock न हटाएँ। अपडेट देखें |
database/bootstrap-started exists, but database/initialized does not | डेटाबेस निर्माण बाधित हुआ। क्लस्टर न हटाएँ और हाथ से SQL दोहराएँ नहीं। कारण ठीक करें और sudo arkvory finish-install --root /opt/proanima-arkvory चलाएँ |
| सेवा शुरू नहीं होती | journalctl -u arkvory-api -n 100. शुरू होने की विफलता सेटिंग का नाम बताने वाला, उसका मान कभी नहीं, एक JSON रिकॉर्ड reason के साथ छापती है |
| पोर्ट 8080 लिया हुआ | कोई दूसरा प्रोग्राम इसे इस्तेमाल कर रहा है। पोर्ट खाली करें, या config/runtime.json में ARKVORY_PORT सेट करें। विन्यास देखें। डेटाबेस पोर्ट वही है जो इंस्टॉलेशन के समय चुना गया (54329 या 45329-45348); यह अपने आप नहीं बदलता |
यदि इंस्टॉलेशन installation.json लिखने के बाद रुका, तो आप पैकेज का विन्यास चरण भी दोहरा सकते हैं: Debian और Ubuntu पर sudo dpkg --configure -a, या RPM सिस्टम पर वही पैकेज फिर से इंस्टॉल करें।
और संकेत समस्या निवारण में हैं।