Покрокове керівництво по встановленню Mastodon на сервер Ubuntu 24.04
10:52, 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. Тепер, коли ваш екземпляр працює, ви готові запрошувати користувачів до нового, децентралізованого соціального досвіду. Не забувайте стежити за роботою сервера, оновлювати його та регулярно створювати резервні копії бази даних для безперебійної та безпечної роботи.