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

Как установить Mastodon на Ubuntu и запустить собственный инстанс

8 min read Руководство Обновлено 28 Apr 2026
Как установить Mastodon на Ubuntu
Как установить Mastodon на Ubuntu

Важно: перед началом убедитесь, что у вас есть доступ к DNS у регистратора домена и возможность добавлять записи; без этого почтовая доставка и доступ к сайту не будут работать.

Краткое описание и цель

Mastodon — это децентрализованная социальная сеть с открытым исходным кодом. Она использует федеративную модель: инстансы могут общаться друг с другом, но администратор контролирует настройки своего сервера и правила модерации. Этот материал рассчитан на системных администраторов и опытных пользователей, которые хотят запустить собственный инстанс Mastodon под управлением Ubuntu Server.

  • Что такое «тооты» — короткие сообщения до 500 символов.
  • Почему self-hosting — контроль данных и правила модерации.
  • Что понадобится: VPS на Ubuntu, домен, Mailgun (или другой SMTP), SSH-доступ.

Содержание

  • Что нужно для установки
  • Шаг 1: SSH и Docker
  • Шаг 2: Клонирование Mastodon и запуск мастера установки
  • Шаг 3: Nginx как reverse proxy
  • Шаг 4: SSL с Let’s Encrypt и запуск контейнеров
  • Автоматизация задач (cron)
  • Обслуживание и администрирование
  • Безопасность и приватность
  • Резервные копии и откат
  • Когда это не подходит и альтернативы
  • Чек-листы для ролей
  • Критерии приёмки
  • Сводка

Установка Mastodon на Linux — общий вид сервера

Что нужно для установки Mastodon

Коротко: VPS с Ubuntu Server, домен, учетная запись Mailgun (или другой SMTP), SSH-доступ и базовые навыки работы в терминале.

Подробно:

  • Сервер: Ubuntu Server (LTS рекомендуется). Подойдёт VPS с 2+ vCPU и 4+ ГБ ОЗУ для небольшого инстанса; для большого трафика потребуется больше ресурсов.
  • Домен: свободное доменное имя, указывающее на IP сервера. Обновите A-запись у регистратора.
  • Почта: Mailgun используется для подтверждения регистраций; можно использовать любой SMTP-провайдер, но настройка и верификация домена обязательны.
  • SSH: доступ через терминал (Linux/macOS) или PuTTY (Windows).
  • Софт: Docker, Docker Compose, Nginx, Certbot (Let’s Encrypt).

Шаг 1: Установите SSH-подключение и Docker

Подключитесь по SSH и создайте пользователя для Mastodon. Это снижает риск работы от root.

adduser mastodon  
usermod -aG sudo mastodon  
su - mastodon

Обновите пакетную базу и установите нужные утилиты:

sudo apt-get update  
sudo apt-get install apt-transport-https software-properties-common

Установите Docker:

sudo apt install docker.io

Добавьте пользователя в группу docker, чтобы запускать контейнеры без sudo:

sudo usermod -aG docker $(whoami)  

Затем выйдите и войдите снова под mastodon:

exit  
su - mastodon  

Запустите и включите Docker при старте:

sudo systemctl start docker  
sudo systemctl enable docker  

Установите Docker Compose:

sudo apt install docker-compose

Совет: после установки проверьте версии команд: docker –version и docker-compose –version.

Шаг 2: Установка Mastodon на сервер

Перейдите в домашнюю папку mastodon и клонируйте репозиторий:

cd /home/mastodon

git clone https://github.com/tootsuite/mastodon.git  

Перейдите в каталог проекта и откройте docker-compose.yml для редактирования:

cd mastodon  
nano docker-compose.yml

Найдите секции, начинающиеся с “build” и закомментируйте их. Это необходимо для использования предсобранных образов вместо сборки образов локально.

Фрагмент файла docker-compose.yml для Mastodon

Сохраните и выйдите: Ctrl + O, затем Ctrl + X.

Запустите мастер настройки Mastodon, который создаст .env.production и другие ключевые файлы:

docker-compose run --rm web bundle exec rake mastodon:setup

Мастер задаст вопросы про домен, почтовые настройки и другие параметры. Используйте ваш домен и данные SMTP (например, Mailgun). Отдельно потребуется создать администратора — запомните или сохраните сгенерированный пароль.

Если вы используете Mailgun, найдите логин и пароль SMTP в панели Mailgun: app.mailgun.com/app/domains — скопируйте значения Default SMTP Login и Default Password в .env.production как SMTP_LOGIN и SMTP_PASSWORD.

Проверьте, что тестовое письмо отправляется и доставляется.

Мастер установки Mastodon в терминале

Содержимое .env.production следует проверить вручную: домен, SMTP, база данных (если не используете контейнеры для БД), тарифы и ограничения.

Шаг 3: Настройка Nginx как reverse proxy

Nginx будет принимать HTTPS-запросы и проксировать их в Docker-контейнеры.

Установите Nginx:

sudo apt-get install nginx

Удалите профиль по умолчанию и создайте новый:

sudo rm /etc/nginx/sites-available/default  
sudo rm /etc/nginx/sites-enabled/default

sudo touch /etc/nginx/sites-available/mastodon
sudo ln -s /etc/nginx/sites-available/mastodon /etc/nginx/sites-enabled/mastodon

Откройте файл конфигурации:

sudo nano /etc/nginx/sites-available/mastodon

Скопируйте конфигурацию из официального примера Mastodon (ссылка в репозитории). В файле замените все вхождения example.com на ваш домен (без www).

Проверьте синтаксис Nginx и перезапустите службу после получения SSL:

sudo nginx -t

Если ошибок нет, перезапустите позже, когда SSL установлен.

Шаг 4: SSL с Let’s Encrypt и запуск Mastodon

SSL необходим для доверия и работы Web Push.

Установите Certbot:

sudo add-apt-repository ppa:certbot/certbot  
sudo apt-get update && sudo apt-get install certbot

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

sudo systemctl stop nginx.service

Запросите сертификат, подставив ваш домен вместо example.com:

sudo letsencrypt certonly --standalone -d example.com

Если сертификат получен успешно, вернитесь в директорию с Mastodon и остановите Docker-контейнеры перед сборкой и миграциями:

cd /home/mastodon/mastodon

docker-compose down

Соберите и разверните контейнеры, выполните компиляцию ассетов и миграции базы:

docker-compose build  
docker-compose run --rm web rails assets:precompile  
docker-compose run --rm web rails db:migrate  
docker-compose up -d

После успешного запуска снова запустите Nginx:

sudo systemctl restart nginx.service

Откройте в браузере ваш домен — вы должны увидеть страницу входа/регистрации Mastodon. Если есть проблемы, проверьте .env.production, логи Docker и статус служб.

Автоматизация рутинных задач (cron)

Создайте скрипт для периодической очистки медиакэша и обновления push-подписок:

cd /home/mastodon  
nano mastodon_cron

Добавьте в файл:

cd /home/mastodon/mastodon  
docker-compose run --rm web rake mastodon:media:clear  
docker-compose run --rm web rake mastodon:push:refresh  
docker-compose run --rm web rake mastodon:push:clear  
docker-compose run --rm web rake mastodon:feeds:clear

Сделайте файл исполняемым и отредактируйте crontab:

sudo chmod +x mastodon_cron && sudo crontab -e

Добавьте строчку в crontab для ежедневного выполнения:

0 0 * * * /home/mastodon/mastodon_cron > /home/mastodon/mastodon_log

Сохраните и выйдите.

Автоматическое продление SSL

Сертификаты Let’s Encrypt действуют 90 дней. Настройте задачу для регулярного обновления:

sudo crontab -e

Добавьте:

0 1 * * 1 /usr/bin/letsencrypt renew >> /home/mastodon/letsencrypt.log  
5 1 * * 1 /bin/systemctl reload nginx

Задача будет пытаться обновить сертификаты по понедельникам в 1:00 и перезагружать Nginx.

Администрирование Mastodon

После регистрации администратора повысите пользователя до роли admin:

cd /home/mastodon/mastodon

docker-compose run --rm web rails mastodon:make_admin USERNAME=yourusername

В интерфейсе Mastodon зайдите в Preferences → Administration для управления пользователями и настройками сайта: заголовок, описание, правила модерации и т.д.

Письмо подтверждения регистрации Mastodon

Резервное копирование и откат

Регулярно делайте резервные копии базы данных и медиа-файлов.

Простейший план бэкапа:

  • Дамп базы PostgreSQL: pg_dump -> tar.gz
  • Копия папки с медиа (storage) -> rsync на удалённый хранилище
  • Конфигурационные файлы (.env.production, nginx) — версионируйте в приватном репозитории или храните зашифрованными.

Пример команды для PG:

sudo docker-compose exec db pg_dump -U mastodon mastodon_production > /home/mastodon/db_backup.sql

Откат: остановить контейнеры, восстановить дамп, вернуть файлы медиа, затем поднять контейнеры.

Безопасность и защита приватности

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

  • Регулярные обновления системных пакетов и образов Docker.
  • Минимизация прав: запускайте процессы не как root.
  • Ограничьте доступ к администрированию через VPN или IP-фильтры, если нужно.
  • Настройте fail2ban для защиты SSH и публичных сервисов.
  • Включите Content Security Policy (CSP) в Nginx при необходимости.
  • Шифруйте бэкапы и храните их в безопасном месте.

Конфиденциальность и GDPR:

  • Уведомляйте пользователей о том, какие данные вы храните.
  • Реализуйте процедуру удаления аккаунта и данных по запросу.
  • Документируйте политику хранения логов и бэкапов.

Когда self-hosting не подходит: ограничения и альтернативы

Counterexamples/когда это не годится:

  • Если у вас нет времени поддерживать сервер и следить за безопасностью — self-hosting может быть рискован.
  • Для инстанса с высокой нагрузкой потребуется значительное аппаратное обеспечение и инженерное время.
  • Если пользователи ожидают полной анонимности и распределённого хранения, Mastodon сам по себе хранит данные на сервере, и это не безопаснее, чем другие сервисы, если администратор не настроил шифрование и политики удаления.

Альтернативы:

  • Использовать управляемый (managed) Mastodon-хостинг — провайдеры предлагают деплой и поддержку за плату.
  • Pleroma — более лёгкая альтернатива с меньшими требованиями по ресурсам.
  • Misskey — другая федеративная платформа с отличиями в UX и функциях.

Модель принятия решений: стоит ли запускать инстанс

  • Если нужно контролировать модерацию, правила и данные — self-hosting оправдан.
  • Если приоритет — простота и минимум поддержки, рассмотрите managed hosting.
  • Если важна экономия ресурсов — Pleroma потребляет меньше.
flowchart TD
  A[Есть домен и VPS?] -->|нет| B[Купить VPS и домен]
  A -->|да| C[Есть время на поддержку?]
  C -->|да| D[Установка Mastodon по этому руководству]
  C -->|нет| E[Рассмотреть managed Mastodon]
  D --> F{Есть опыт с Docker?}
  F -->|да| G[Следовать шагам]
  F -->|нет| H[Изучить Docker или выбрать managed]

Чек-листы по ролям

Чек-лист для администратора (DevOps):

  • Создать пользователя mastodon и настроить sudo.
  • Установить Docker, Docker Compose и Nginx.
  • Клонировать репозиторий Mastodon.
  • Настроить .env.production и SMTP.
  • Получить SSL и настроить автоматическое продление.
  • Настроить cron-скрипты и резервные копии.
  • Настроить мониторинг и логи.

Чек-лист для модератора:

  • Изучить правила инстанса и политику блокировок.
  • Ознакомиться с панелью Administration в Mastodon.
  • Настроить шаблоны предупреждений.
  • Настроить процесс апелляции для пользователей.

Чек-лист для пользователя:

  • Создать аккаунт и подтвердить почту.
  • Настроить профиль и уведомления.
  • Изучить локальные правила инстанса.

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

Инстанс считается успешно развернутым, когда выполнены все пункты:

  • Домен указывает на сервер (A-запись верна).
  • Сертификат SSL выдан и активен.
  • Страница Mastodon открывается в браузере по HTTPS.
  • Администратор может войти и управлять пользователями.
  • Тестовая регистрация и подтверждение email проходят корректно.
  • Cron-скрипты выполняются (проверить mastodon_log).

Полезные шаблоны и команды (шпаргалка)

Быстрая проверка статуса Docker:

docker ps -a

Просмотр логов контейнера web:

docker-compose logs -f web

Создать дамп БД:

sudo docker-compose exec db pg_dump -U mastodon mastodon_production > /home/mastodon/db_backup.sql

Дать админу права:

docker-compose run --rm web rails mastodon:make_admin USERNAME=yourusername

Риски и меры смягчения

  • Риск: потеря доступа к почте → мера: провайдер резервной почты или сохранение SMTP-кредитов.
  • Риск: компрометация сервера → мера: регулярные обновления, ограничение SSH по IP, fail2ban.
  • Риск: заполнение диска медиа-файлами → мера: лимиты загрузки, регулярная очистка медиакэша, внешнее хранилище.

Локальные особенности и советы для русскоязычной аудитории

  • Проверьте настройки локали сервера, если планируете хранить данные и логи с русскими метками.
  • Если почтовый провайдер блокирует отправку из определённых регионов, рассмотрите международные SMTP-провайдеры или relay.
  • Учитывайте законы о хранении данных в вашей стране при публикации политического контента.

Краткая методология развёртывания (минималистично)

  1. Подготовить VPS и домен.
  2. Установить Docker и Docker Compose.
  3. Клонировать Mastodon и настроить .env.production.
  4. Настроить Nginx и временно остановить его.
  5. Получить SSL через Certbot standalone.
  6. Собрать контейнеры, выполнить миграции, поднять сервисы.
  7. Настроить cron и бэкапы.

Когда что делать: краткое дерево решений

  • Ошибка отправки почты: проверить SMTP в .env.production → проверить DNS (SPF, DKIM) → проверить логи Mailgun.
  • Проблемы с SSL: проверить, что порт 80/443 не занят → остановить Nginx → повторно запустить letsencrypt.
  • Низкая производительность: проверить использование CPU/RAM → масштабировать VPS или использовать CDN для статики.

Сводка

  • Вы можете развернуть Mastodon на Ubuntu с помощью Docker и Nginx.
  • Ключевые шаги: подготовка сервера, конфигурация .env.production, настройка Nginx, получение SSL, запуск контейнеров и автоматизация.
  • Не забывайте про безопасность, резервные копии и политику модерации.

Страница подтверждения аккаунта Mastodon в браузере

Если хотите, могу подготовить сокращённый чек-лист в формате файла README.md для быстрого запуска, или помочь адаптировать конфигурацию Nginx под ваш домен и особенности хостинга.

Поделиться: 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 быстро