सुपरवाइज़र का उपयोग करके, एक Systemd-मुक्त मास्टोडॉन इंस्टेंस स्थापित करना
नमस्ते, मैं अक्षम हूँ।
मैंने इस बार एक मास्टोडॉन इंस्टेंस स्थापित करने की कोशिश की।
https://eyes4you.org/
(Vultr के SMTP पोर्ट खोलने के लिए अभी तक समर्थन से कोई संपर्क नहीं हुआ है, इसलिए ईमेल नहीं आ रहे हैं, जिसका मतलब है कि अभी तक कोई भी पंजीकरण नहीं कर सकता है। पंजीकरण कुछ दिनों के भीतर संभव हो जाएगा। 20 अगस्त, 2023 को रात 9:30 बजे तक)
प्रारंभिक समस्या
मास्टोडॉन को Systemd के साथ एक पूर्व-आवश्यकता के रूप में डिज़ाइन किया गया है, इसलिए मास्टोडॉन चलाने के लिए डेमॉन फ़ाइलें केवल Systemd के लिए प्रदान की जाती हैं।
पर्यावरण: Devuan SysVinit
पूर्व-आवश्यकता: मास्टोडॉन सेटअप विज़ार्ड पूरा हो चुका है
ये तीन हैं: mastodon-web, mastodon-sidekiq, mastodon-streaming।
इसलिए, सुपरवाइज़र का उपयोग करके, डेमॉन फ़ाइलें सुपरवाइज़र द्वारा चलाई जा सकती हैं, जिससे यह एक सुविधाजनक सॉफ़्टवेयर बन जाता है। शायद इसे मूल रूप से एक प्रक्रिया निगरानी उपकरण के रूप में विकसित किया गया था, और Systemd के प्रसार के साथ, एक अलग प्रकार की उपलब्धता का जन्म हुआ।
सबसे पहले, आइए सुपरवाइज़र स्थापित करें।
sudo apt install supervisor
चूंकि /etc/supervisor में एक कॉन्फ़िग फ़ाइल बनाई जाती है, इसलिए हम इस बार mastodon.conf नाम की एक फ़ाइल बनाएंगे और निम्नलिखित सिंटैक्स लिखेंगे।
[group:mastodon]
programs=web,sidekiq,streaming
[program:web]
command=/usr/local/bin/bundle exec puma -C config/puma.rb
user=mastodon
directory=/home/sns/mastodon
stdout_logfile=/home/sns/mastodon/log/puma.log
stdout_logfile_maxbytes=1MB
stdout_logfile_backups=10
redirect_stderr=true
environment=RAILS_ENV=production,PORT=3000,LD_PRELOAD=libjemalloc.so
stopasgroup=true
[program:sidekiq]
command=/usr/local/bin/bundle exec sidekiq -c 25
user=mastodon
directory=/home/sns/mastodon
stdout_logfile=/home/sns/mastodon/log/sidekiq.log
stdout_logfile_maxbytes=1MB
stdout_logfile_backups=10
redirect_stderr=true
environment=RAILS_ENV=production,DB_POOL=25,MALLOC_ARENA_MAX=2,LD_PRELOAD=libjemalloc.so
stopasgroup=true
[program:streaming]
command=/usr/bin/node ./streaming
user=mastodon
directory=/home/sns/mastodon
stdout_logfile=/home/sns/mastodon/log/streaming.log
stdout_logfile_maxbytes=1MB
stdout_logfile_backups=10
redirect_stderr=true
environment=NODE_ENV=production,PORT=4000,STREAMING_CLUSTER_NUM=1
stopasgroup=true
जिन हिस्सों में बदलाव की आवश्यकता हो सकती है, उन्हें लाल रंग में चिह्नित किया गया है।
कृपया प्रत्येक डेमॉन को उपयुक्त निर्देशिका आदि में बदलें।
उसके बाद, `supervisorctl start all` से सब कुछ शुरू हो जाना चाहिए।
यदि आप मास्टोडॉन फ़ाइलों में कोई बदलाव करते हैं, तो `restart all` करना न भूलें।
फिर, कृपया Apache या Nginx को मास्टोडॉन निर्देशिका को संदर्भित करने के लिए कॉन्फ़िगर करें।
समाप्त।
संदर्भ
मास्टोडॉन इंस्टॉलेशन यहाँ समझना आसान है
https://zenn.dev/hashito/articles/caa579a9aa8b4f
https://vpslife.server-memo.net/mastodon_install/
यहां लिखा गया सुपरवाइज़र सिंटैक्स जैसा था वैसा काम नहीं कर रहा था, इसलिए मैंने इसे आधुनिक (2023...) संस्करण में बदलने की कोशिश की।
अंत में
मैं इन डेमॉन फ़ाइलों को SysVinit के लिए बदलने की कोशिश कर रहा था, लेकिन मैंने हार मान ली।
फिर, मैंने Systemd-मुक्त Artix की डेमॉन फ़ाइलों को देखा और "Supervisor" स्ट्रिंग मिली, जिससे मुझे यह समाधान मिला।
यह सोचते हुए कि सुपरवाइज़र किसी भी डेमॉन फ़ाइल को मूल रूप से बदल सकता है, यह कितना सुविधाजनक है...!
और इस मामले में, तीनों डेमॉन फ़ाइलों को केवल एक से प्रबंधित किया जा सकता है, जिससे कई प्रक्रियाओं को प्रबंधित करने वाले सॉफ़्टवेयर या सेवाओं को बनाते समय सुपरवाइज़र के साथ एक साथ शुरू और बंद करना अविश्वसनीय रूप से आसान और सुविधाजनक हो जाता है।
समाप्त!