Пошаговое руководство по установке Mastodon на сервер Ubuntu 24.04
10:57, 28.07.2026
Откройте для себя уникальные возможности Mastodon
Mastodon набирает популярность как децентрализованная социальная сеть с возможностью самостоятельного хостинга, предоставляющая пользователям и администраторам возможность создавать открытые онлайн-сообщества, ориентированные на защиту конфиденциальности.
В этом руководстве мы подробно расскажем о процессе установки Mastodon на сервере Ubuntu 24.04 — от настройки базы данных до конфигурации Nginx и обеспечения безопасности сервера с помощью HTTPS.
Особенности Mastodon
- Полный контроль над вашими данными.
- Децентрализация, поскольку Mastodon не контролируется какой-либо одной организацией.
- Автономность инстансов Mastodon.
- Адаптивный и интуитивно понятный веб-дизайн.
- Бесплатный и с открытым исходным кодом.
- Поддержка официальных мобильных приложений Mastodon для iOS и Android.
Что понадобится перед началом (необходимые условия)
Прежде чем начать, убедитесь, что у вас есть следующее:
- Сервер Ubuntu 24.04 с доступом root и объёмом оперативной памяти не менее 2 ГБ.
- Доменное имя с настройками DNS, указывающими на IP-адрес вашего сервера.
- Служба SMTP.
- SSL-сертификаты (в этом руководстве мы будем использовать Let’s Encrypt).
- Базовые навыки работы с терминальными командами.
Шаг 1: Настройте базу данных PostgreSQL как профессионал
Войдите на сервер через SSH.
Добавьте репозиторий upstream:
echo "deb [signed-by=/etc/apt/keyrings/postgresql.asc] http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list
Перенесите открытый ключ PostgreSQL:
sudo mkdir -p /etc/apt/keyrings/
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo tee /etc/apt/keyrings/postgresql.asc
Обновите индекс репозитория и установите PostgreSQL:
sudo apt update
sudo apt upgrade
sudo apt install -y postgresql postgresql-contrib
Создайте базу данных и пользователя Mastodon:
sudo -u postgres psql CREATE USER mastodon WITH CREATEDB PASSWORD 'securepassword'; CREATE DATABASE mastodon_production OWNER mastodon; \q
Обязательно замените 'securepassword' на надёжный пароль.
Шаг 2: Установка Ruby в Ubuntu 24.04
Поскольку репозиторий Ubuntu 24.04 содержит пакет ruby, а Mastodon требует Ruby версии 3.0–3.2, можно выполнить следующую команду:
sudo apt install ruby ruby-dev
Проверьте номер версии Ruby с помощью следующей команды:
ruby -v
Результат должен выглядеть следующим образом:
ruby 3.2.3 (2024-01-18 revision 52bb2ac0a6) [x86_64-linux-gnu]
Шаг 3: Скачайте Mastodon и подготовьте его к настройке
Создайте пользователя mastodon:
sudo adduser mastodon --system --group --disabled-login
Установите инструмент git:
sudo apt install git
Склонируйте репозиторий кода Mastodon с GitHub с помощью следующей команды:
git clone https://github.com/tootsuite/mastodon.git
Создайте каталог /var/www/ (пропустите этот шаг, если он уже существует):
sudo mkdir -p /var/www/
Переместите каталог mastodon в /var/www/:
sudo mv mastodon/ /var/www/
Установите mastodon в качестве владельца:
sudo chown mastodon:mastodon /var/www/mastodon/ -R
Загрузите последнюю стабильную версию Mastodon:
cd /var/www/mastodon/
sudo -u mastodon git checkout v4.2.8
Установите bundler: менеджер зависимостей для Ruby:
sudo gem install bundler
Установите Node.js v18:
curl -sL https://deb.nodesource.com/setup_18.x | sudo bash -
sudo apt install nodejs
Установите Yarn (менеджер пакетов Node.js):
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
sudo apt update
sudo apt -y install yarn
Установите пакеты для компиляции исходного кода:
sudo apt install redis-server optipng pngquant jhead jpegoptim gifsicle nodejs imagemagick ffmpeg libpq-dev libxml2-dev libxslt1-dev file g++ libprotobuf-dev protobuf-compiler pkg-config gcc autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm-dev libidn11-dev libicu-dev libjemalloc-dev
Установите пакеты зависимостей для Mastodon:
sudo -u mastodon bundle config deployment 'true'
sudo -u mastodon bundle config without 'development test'
sudo -u mastodon bundle install -j$(getconf _NPROCESSORS_ONLN)
sudo -u mastodon yarn install
Запустите мастер настройки:
sudo -u mastodon RAILS_ENV=production bundle exec rake mastodon:setup
Сначала вам будет задан ряд вопросов.
- Доменное имя: Выберите доменное имя для вашего экземпляра Mastodon.
- Включить однопользовательский режим: Включите однопользовательский режим, если хотите, чтобы посетители могли регистрироваться на вашем экземпляре Mastodon.
- Используете ли вы Docker для запуска Mastodon: Нет.
- Хост PostgreSQL: 127.0.0.1
- Порт PostgreSQL: 5432
- База данных PostgreSQL: mastodon
- Пользователь PostgreSQL: mastodon
- Пароль пользователя PostgreSQL: Пароль для пользователя mastodon был создан на шаге 1.
- Хост Redis: 127.0.0.1
- Порт Redis: 6379
- Пароль Redis: Нажмите Enter.
- Хотите ли вы хранить загруженные файлы в облаке? Если вы хотите хранить файлы на собственном сервере, выберите «Нет».
- Хотите ли вы отправлять электронные письма с localhost? Если это ваш почтовый сервер или вы настроили SMTP-ретранслятор, вы можете выбрать «Да», в противном случае введите свои учетные данные для входа на SMTP-сервер.
- Адрес электронной почты, с которого будут отправляться письма: нажмите Enter, чтобы использовать адрес отправителя по умолчанию.
- Отправить тестовое письмо с этой конфигурацией прямо сейчас. Выберите «Да», чтобы отправить тестовое письмо.
- Отправить тестовое письмо на: введите адрес для тестового письма.
- Сохранить настройки? Выберите «Да».
Далее нажмите «Да», чтобы настроить базу данных. Теперь, когда настройки сохранены, необходимо загрузить схему базы данных. Затем выберите «Да», чтобы скомпилировать CSS/JS-ресурсы. Наконец, скомпилируйте CSS/JS-ресурсы.
Теперь вы можете создать пользователя-администратора.
Шаг 4: Запустите Mastodon и запустите свой инстанс.
Скопируйте шаблоны служб systemd в каталог /etc/systemd/system/:
sudo cp /var/www/mastodon/dist/mastodon.service /etc/systemd/system/
Перейдите в каталог /var/www/mastodon/:
sudo sed -i 's/home\/mastodon\/live/var\/www\/mastodon/g' /etc/systemd/system/mastodon-.service
Замените /home/mastodon/.rbenv/shims/bundle на /usr/local/bin/bundle:
sudo sed -i 's/home\/mastodon\/.rbenv\/shims/usr\/local\/bin/g' /etc/systemd/system/mastodon-.service
Перезагрузите systemd, чтобы изменения вступили в силу:
sudo systemctl daemon-reload
Запустите службы systemd:
sudo systemctl enable --now mastodon-web mastodon-sidekiq mastodon-streaming
Проверьте статус:
sudo systemctl status mastodon-web mastodon-sidekiq mastodon-streaming
Выполните следующую команду, чтобы проверить, доступен ли Mastodon на порту 3000:
sudo ss -lnpt | grep 3000
Если порт 3000 уже занят другим процессом, вам нужно отредактировать файл /etc/systemd/system/mastodon-web.service:
sudo nano /etc/systemd/system/mastodon-web.service
Измените номер порта на 3001, перезагрузите systemd и перезапустите Mastodon:
sudo systemctl daemon-reload
sudo systemctl restart mastodon-web
Шаг 5: Настройка обратного прокси Nginx для Mastodon
Установите веб-сервер Nginx из репозитория Ubuntu 24.04:
sudo apt install nginx
Скопируйте шаблон файла конфигурации Nginx:
sudo cp /var/www/mastodon/dist/nginx.conf /etc/nginx/conf.d/mastodon.conf
Отредактируйте новый файл:
sudo nano /etc/nginx/conf.d/mastodon.conf
Найдите строку server_name example.com в блоках сервера для порта 80 и порта 443. Измените имя сервера и добавьте запись DNS типа A для доменного имени:
server_name social.example.com;
Найдите следующую строку в блоках сервера для порта 80 и порта 443:
root /home/mastodon/live/public;
Измените её на:
root /var/www/mastodon/public;
Найдите следующие две строки:
# ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
Измените их на следующее:
ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem; ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;
Сохраните и закройте файл. Создайте каталог кэша:
sudo mkdir -p /var/nginx/cache/
Проверьте конфигурацию Nginx:
sudo nginx -t
Перезапустите Nginx, чтобы изменения вступили в силу:
sudo systemctl reload nginx
Шаг 6: Защитите свой сайт Mastodon с помощью HTTPS
Используйте Let’s Encrypt для защиты вашего сайта с помощью HTTPS.
Установите Certbot:
sudo apt install certbot python3-certbot-nginx
Получите SSL-сертификат:
sudo certbot --nginx -d example.com
Настройте автоматическое продление:
sudo certbot renew --dry-run
Резервное копирование и восстановление базы данных Mastodon
Регулярное резервное копирование обеспечивает безопасность данных. Вот простой способ создания резервной копии.
Сделайте резервную копию базы данных:
sudo -u postgres pg_dump mastodon_production > mastodon_backup.sql
Восстановление из резервной копии:
sudo -u postgres psql mastodon_production < mastodon_backup.sql
Устраняйте ошибки выполнения Mastodon как профессионал
Основываясь на нашем опыте устранения ошибок Mastodon, попробуйте следующее для их решения:
- Проверьте журналы с помощью journalctl -u mastodon или tail -f log/production.log.
- Перезапустите службы: при необходимости перезапустите Nginx или службы Mastodon.
- Обновите зависимости: поддерживайте Ruby, PostgreSQL и Mastodon в актуальном состоянии.
Обновление PostgreSQL для Mastodon
Если вам нужно обновить PostgreSQL, обязательно создайте резервную копию базы данных, прежде чем продолжить:
pg_dump -U mastodon mastodon_production > mastodon_backup.sql
Затем следуйте инструкциям по обновлению PostgreSQL, после чего повторно импортируйте данные.
Заключение
Поздравляем! Вы успешно установили и настроили Mastodon на своём сервере Ubuntu 24.04. Теперь, когда ваш экземпляр запущен, вы готовы приветствовать пользователей в новом децентрализованном социальном пространстве. Не забывайте следить за работой сервера, обновлять его и регулярно создавать резервные копии базы данных для бесперебойной и безопасной работы.