Supervisor ব্যবহার করে একটি Systemd-মুক্ত মাস্টোডন ইনস্ট্যান্স চালু করা

5 min

language: ja bn en es hi pt ru zh-cn zh-tw

হ্যালো, আমি অযোগ্য।

এইবার আমি একটি মাস্টোডন ইনস্ট্যান্স চালু করার চেষ্টা করেছি।

https://eyes4you.org/
(Vultr-এর SMTP পোর্ট খোলার বিষয়ে সাপোর্ট থেকে এখনও কোনো যোগাযোগ আসেনি এবং ইমেল আসছে না, তাই কার্যত এখনও কেউ নিবন্ধন করতে পারবে না। কয়েক দিনের মধ্যে নিবন্ধন করা সম্ভব হবে। ২০২৩/০৮/২০ রাত ৯টা ৩০ মিনিট পর্যন্ত)

প্রাথমিক সমস্যা

মাস্টোডন Systemd-কে পূর্বশর্ত ধরে ডিজাইন করা হয়েছে, তাই মাস্টোডন চালানোর জন্য ডেমন ফাইলগুলি শুধুমাত্র Systemd-এর জন্য প্রস্তুত করা হয়েছে।

পরিবেশ: Devuan SysVinit
পূর্বশর্ত: মাস্টোডন সেটআপ উইজার্ড সম্পন্ন করা হয়েছে

এগুলি হল mastodon-web, mastodon-sidekiq, এবং mastodon-streaming।

সুতরাং, Supervisor ব্যবহার করে ডেমন ফাইলগুলি Supervisor-এর মাধ্যমে চালানো যায়, যা এটিকে একটি সুবিধাজনক সফটওয়্যার করে তোলে। সম্ভবত এটি মূলত একটি প্রক্রিয়া পর্যবেক্ষণ সরঞ্জাম হিসাবে তৈরি হয়েছিল, এবং Systemd-এর প্রসারের সাথে সাথে একটি ভিন্ন ধরনের প্রাপ্যতা তৈরি হয়েছে।

http://supervisord.org/

প্রথমে Supervisor ইনস্টল করা যাক।

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/

এখানে লেখা Supervisor সিনট্যাক্সটি যেমন ছিল তেমন কাজ করেনি, তাই আমি এটিকে আরও আধুনিক (২০২৩ সালের...) সংস্করণে পরিবর্তন করার চেষ্টা করেছি।

Alternative Server Components

পরিশেষে

আমি এই ডেমন ফাইলগুলিকে SysVinit-এর জন্য পরিবর্তন করার চেষ্টা করছিলাম, কিন্তু হাল ছেড়ে দিয়েছিলাম।
তারপর, আমি Systemd-Free Artix-এর ডেমন ফাইলগুলি দেখতে গিয়ে "Supervisor" শব্দটি খুঁজে পাই, যা আমাকে এই সমাধানে নিয়ে আসে।

Supervisor থাকলে যেকোনো ডেমন ফাইলকে মূলত প্রতিস্থাপন করা যায়, এটা ভেবে দেখুন, কত সুবিধাজনক...।
তাছাড়া, এই ক্ষেত্রে যেমন, তিনটি ডেমন ফাইল শুধুমাত্র একটি দিয়ে সম্পূর্ণ করা যায়, তাই যখন অনেক প্রক্রিয়া পরিচালনা করার জন্য সফটওয়্যার বা পরিষেবা তৈরি করা হয়, তখন Supervisor দিয়ে একসাথে শুরু এবং বন্ধ করা খুব সহজ এবং সুবিধাজনক।

শেষ!

Related Posts