Гид по технологиям

Установка Mastodon на Debian 10

• 6 min read • Инструкции • Обновлено 23 Nov 2025
Mastodon на Debian 10 — установка и настройка
Mastodon на Debian 10 — установка и настройка

Введение

Фронтенд Mastodon, скриншот страницы входа или интерфейса

Mastodon — это open-source платформа для социальной сети, похожая по концепции на Twitter. Её серверная часть написана на Ruby on Rails, фронтенд — на JavaScript. Mastodon поддерживает федерированные сети (ActivityPub), хранит данные в PostgreSQL и использует Redis для очередей и реального времени. В этой инструкции показана установка на Debian 10 (Buster).

К кому адресована инструкция: системным администраторам и опытным пользователям, которые хотят самостоятльно хостить свою инстанцию Mastodon.

Важно: сохраняйте приватные ключи и пароли, следуйте политикам безопасности вашей организации.

Что вам потребуется

  • Сервер с Debian 10 (root-доступ). 2+ vCPU и 4+ ГБ ОЗУ — минимальное практическое требование для небольшой инстанции.
  • Доменное имя, указывающее на IP сервера (в примерах используется test.linuxbuz.com).
  • Открытые порты 80 и 443 (для HTTP/HTTPS) и возможности установить пакеты из сети.

Быстрый контрольный список перед началом

  • Обновлённый Debian 10
  • root-пароль или sudo-права
  • Привилегии для установки пакетов и добавления репозиториев
  • Доступ для создания системного пользователя mastodon
  • Резервные копии данных на случай отката

Обновление системы

Сначала обновите пакеты на сервере:

apt-get update -y
apt-get upgrade -y

Затем установите зависимости, которые потребуются для сборки и работы Mastodon:

apt-get install software-properties-common dirmngr apt-transport-https ca-certificates curl gcc g++ make imagemagick ffmpeg libpq-dev libxml2-dev libxslt1-dev file git-core libprotobuf-dev protobuf-compiler pkg-config autoconf bison build-essential libssl-dev libyaml-dev libreadline-dev libidn11-dev libicu-dev libjemalloc-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm-dev -y

Установка Node.js и Yarn

Mastodon в данной версии требует Node.js 8.x и менеджер пакетов Yarn. Добавьте репозиторий NodeSource:

curl -sL https://deb.nodesource.com/setup_8.x | bash -
apt-get install nodejs -y

Добавьте GPG-ключ Yarn и репозиторий, затем установите Yarn:

curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
 echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list
apt-get update -y
apt-get install yarn -y

Примечание: Node.js 8.x устарел. При возможности используйте документированную версию Mastodon и совместимую версию Node.js для вашей релизной ветки.

Установка и настройка PostgreSQL

Mastodon использует PostgreSQL для хранения данных.

apt-get install postgresql postgresql-contrib -y

Переключитесь на пользователя postgres и создайте роль для Mastodon:

su - postgres
postgres@debian:~$ psql
postgres=# CREATE USER mastodon CREATEDB;
postgres=# exit

Оставьте пароль и права ролей в соответствии с политиками безопасности вашего окружения.

Установка Ruby и окружения rbenv

Создайте системного пользователя для запуска Mastodon:

adduser --disabled-login --gecos 'Mastodon Server' mastodon
su - mastodon

Установите rbenv и ruby-build:

git clone https://github.com/rbenv/rbenv.git ~/.rbenv
cd ~/.rbenv && src/configure && make -C src
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
exec bash
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build

Установите рекомендованную версию Ruby (в примере 2.6.1):

RUBY_CONFIGURE_OPTS=--with-jemalloc rbenv install 2.6.1
rbenv global 2.6.1

Обновите RubyGems и установите bundler:

gem update --system
gem install bundler --no-document

Проверьте установленную версию Ruby:

ruby --version

Скачивание кода Mastodon и установка зависимостей

Оставаясь под пользователем mastodon, клонируйте репозиторий и переключитесь на релизную ветку:

su - mastodon
git clone https://github.com/tootsuite/mastodon.git ~/live
cd ~/live
git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)

Установите Ruby- и Node-зависимости:

bundle install -j$(getconf _NPROCESSORS_ONLN) --deployment --without development test
yarn install --pure-lockfile

Запустите первоначальную настройку (интерактивный мастера):

RAILS_ENV=production bundle exec rake mastodon:setup

Пример ответов при настройке (используется домен test.linuxbuz.com):

Domain name: test.linuxbuz.com
Do you want to enable single user mode? No
Are you using Docker to run Mastodon? no
PostgreSQL host: /var/run/postgresql
PostgreSQL port: 5432
Name of PostgreSQL database: mastodon_production
Name of PostgreSQL user: mastodon
Password of PostgreSQL user:
Redis host: localhost
Redis port: 6379
Do you want to store uploaded files on the cloud? No
Do you want to send e-mails from localhost? yes
E-mail address to send e-mails "from": Mastodon <[email protected]>
Save configuration? Yes
Prepare the database now? Yes
Do you want to create an admin user straight away? Yes

После завершения выйдите из пользователя mastodon:

exit

Установка и настройка Nginx и Certbot

Добавьте репозиторий Certbot, установите Nginx и Certbot-плагин для Nginx:

add-apt-repository ppa:certbot/certbot
apt-get update -y
apt-get install nginx python-certbot-nginx -y

Скопируйте пример конфигурации из дистрибутива Mastodon и активируйте виртуальный хост:

cp /home/mastodon/live/dist/nginx.conf /etc/nginx/sites-available/mastodon.conf
ln -s /etc/nginx/sites-available/mastodon.conf /etc/nginx/sites-enabled/
sed -i 's/example.com/test.linuxbuz.com/g' /etc/nginx/sites-enabled/mastodon.conf
systemctl restart nginx

Получите бесплатный сертификат Let’s Encrypt и настройте Nginx автоматически:

certbot --nginx -d test.linuxbuz.com

В примере конфигурации Nginx используются прокси на порты 3000 (web) и 4000 (streaming). Фрагмент конфигурации и параметры кэширования остаются как в шаблоне Mastodon.

Конфигурация systemd сервисов

Скопируйте системные юниты и запустите сервисы:

cp /home/mastodon/live/dist/mastodon-web.service /etc/systemd/system/
cp /home/mastodon/live/dist/mastodon-sidekiq.service /etc/systemd/system/
cp /home/mastodon/live/dist/mastodon-streaming.service /etc/systemd/system/

systemctl daemon-reload
systemctl start mastodon-web
systemctl start mastodon-sidekiq
systemctl start mastodon-streaming
systemctl enable mastodon-web
systemctl enable mastodon-sidekiq
systemctl enable mastodon-streaming

Проверьте статусы сервисов:

systemctl status mastodon-web
systemctl status mastodon-sidekiq
systemctl status mastodon-streaming

Доступ к веб-интерфейсу

Откройте в браузере

https://test.linuxbuz.com

Страница входа Mastodon с полями для e-mail и пароля

Войдите, используя данные администратора, созданного в процессе настройки. Далее пройдите начальный туториал и завершите настройку:

Первый запуск: подсказки и начало работы

Подтверждение и переход к интерфейсу

Туториал Mastodon: шаги знакомства с интерфейсом

Панель управления Mastodon после завершения установки

Поздравляем — инстанция запущена и доступна по HTTPS.

Критерии приёмки

  • Веб-интерфейс доступен по HTTPS и корректно возвращает страницу входа.
  • Сервисы mastodon-web, mastodon-sidekiq и mastodon-streaming активны и не падают в течение 5 минут после старта.
  • Можно создать и аутентифицировать администратора, отправить и получить пост.
  • Обмен медиафайлами работает: загрузка и отображение изображений.

Режимы отказа и когда установка может не подойти

  • Нехватка ресурсов: на слабых VPS с 1 ГБ ОЗУ Mastodon может работать очень медленно или падать. Решение — увеличить RAM/CPU.
  • Сетевые ограничения: если хостинг запрещает исходящие подключения (Let’s Encrypt, внешние сервисы), автоматическая настройка сертификата и некоторые федерированные функции не будут работать.
  • Устаревшие зависимости: текущая инструкция ориентирована на версии, указанные в репозитории на момент релиза; при обновлении Mastodon могут измениться требования к Ruby/Node.

Альтернативные подходы

  • Использовать Docker-контейнеры или docker-compose — упрощает деплой и обновления на многих хостингах.
  • PaaS/Managed Mastodon — если не хотите управлять сервером, есть провайдеры, предлагающие инстанции «под ключ».
  • Лёгкие альтернативы для федерированных соцсетей: Pleroma, Misskey — потребляют меньше ресурсов и имеют другие требования.

Рекомендации по безопасности и резервному копированию

  • Делайте регулярные бэкапы PostgreSQL и директории public/system (где хранятся медиа). Минимальный план бэкапов: ежедневный дамп базы + репликация на удалённый сервер.
  • Храните файлы сертификатов и секреты (файл .env.production) в безопасном хранилище, ограничьте доступ по файловым правам.
  • Настройте автоматическое обновление системы и периодически применяйте исправления безопасности.

Пример простого бэкап-скрипта (crontab) — делать dump базы и тянуть директорию uploads:

# пример: в root crontab
0 3 * * * pg_dump -U mastodon mastodon_production > /var/backups/mastodon_$(date +\%F).sql
0 3 * * * tar -czf /var/backups/mastodon_uploads_$(date +\%F).tar.gz /home/mastodon/live/public/system

Процесс обновления Mastodon — мини-методология

  1. Создайте полную резервную копию базы и файлов.
  2. Переведите инстанцию в режим обслуживания (single-user или остановите systemd-сервисы).
  3. Обновите код из репозитория: git fetch && git checkout <релиз>
  4. Обновите зависимости: bundle install и yarn install.
  5. Запустите миграции: RAILS_ENV=production bundle exec rails db:migrate
  6. Соберите ассеты: RAILS_ENV=production bundle exec rails assets:precompile
  7. Перезапустите сервисы и проверьте логи.

Роль-ориентированные контрольные списки

  • Системный администратор:

    • Настроить брандмауэр и обновления.
    • Настроить Certbot и автоматическое продление сертификата.
    • Следить за загрузкой CPU/RAM и диска.
  • Администратор Mastodon (инстанции):

    • Управлять регистрациями, местной политикой модерации.
    • Создавать аккаунты модераторов, отслеживать очереди sidekiq.
  • DevOps/разработчик:

    • Настроить CI для сборки релизов и тестирования миграций.
    • Автоматизировать процедуры бэкапа и восстановления.

Критические команды для отладки

  • Логи системных юнитов:
journalctl -u mastodon-web -f
journalctl -u mastodon-sidekiq -f
journalctl -u mastodon-streaming -f
  • Проверка статуса сервиса
systemctl status mastodon-web
  • Проверка очередей Sidekiq (в каталоге live):
RAILS_ENV=production bundle exec sidekiqctl status tmp/pids/sidekiq.pid

Однострочный глоссарий

  • ActivityPub — протокол федерации для взаимодействия между инстанциями.
  • Sidekiq — фоновая очередь для задач (Redis).
  • rbenv — управление версиями Ruby.

Короткий шаблон объявления (100–200 слов)

Запустили собственную инстанцию Mastodon на Debian 10. Теперь у нас есть приватная, федеративная платформа для обмена сообщениями и медиа, управляемая нами. Сервер настроен с HTTPS через Let’s Encrypt, база данных — PostgreSQL, фоновые задачи — Sidekiq/Redis. Для участия — зарегистрируйтесь или получите приглашение от администратора. Мы будем следить за безопасностью, регулярно делать бэкапы и обновления. Готовы помочь с вопросами о миграции и настройках.

Когда обращаться за помощью

  • Если после старта сервисы падают — проверяйте логи systemd и Sidekiq.
  • При проблемах с SSL — смотрите вывод certbot.
  • Если федерированные подписки не приходят — проверьте исходящие соединения и DNS-записи (SPF, DKIM для почты).

Итог

Вы установили и настроили Mastodon на Debian 10: подготовили систему, установили Node.js/Yarn, PostgreSQL, Ruby через rbenv, настроили Nginx и Certbot, зарегистрировали администратора и запустили systemd-сервисы. Дополнительно — получили рекомендации по бэкапам, обновлениям и ролям для поддержки инстанции.

Ключевые шаги проверки: веб-интерфейс по HTTPS, активные systemd-сервисы, рабочая база данных, обработка фоновых задач. Если нужны примеры конфигураций, автоматизация обновлений или помощь с миграцией на Docker — спросите, и я помогу с конкретным сценарием.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро