Запуск инстанса Mastodon без Systemd с использованием Supervisor

5 min

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

Здравствуйте, я некомпетентен.

На этот раз я попробовал запустить инстанс Mastodon.

https://eyes4you.org/
(Поскольку я еще не получил ответа от поддержки Vultr по поводу открытия SMTP-порта, электронные письма не доходят, поэтому фактически никто еще не может зарегистрироваться. Регистрация станет возможной в течение нескольких дней. По состоянию на 20 августа 2023 г., 21:30)

Первоначальная проблема

Mastodon разработан с учетом Systemd, поэтому файлы демонов для запуска Mastodon доступны только для Systemd.

Среда: Devuan SysVinit
Предварительное условие: завершение мастера установки Mastodon.

Это три: mastodon-web, mastodon-sidekiq, mastodon-streaming.

Таким образом, это удобное программное обеспечение, которое позволяет файлам демонов работать с 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`, если вы внесли изменения в файлы Mastodon.

Затем настройте Apache или Nginx для ссылки на каталог Mastodon.

Конец.

Ссылки

Здесь легко понять установку Mastodon
https://zenn.dev/hashito/articles/caa579a9aa8b4f
https://vpslife.server-memo.net/mastodon_install/

Поскольку синтаксис Supervisor, написанный здесь, не работал, я попытался изменить его на более современный (2023 год...).

Альтернативные компоненты сервера

В заключение

Я пытался изменить этот файл демона для SysVinit, но сдался.
Затем я заглянул в файлы демонов Artix (Systemd Free) и увидел строку 'Supervisor', что привело меня к этому решению.

Учитывая, что Supervisor может заменить практически любой файл демона, насколько это удобно...!
Более того, как в этом случае, три файла демонов могут быть полностью завершены одним, что делает его невероятно удобным для запуска и остановки множества процессов с помощью Supervisor при создании программ или служб, управляющих большим количеством процессов.

Конец!

Related Posts