Покрокове керівництво по встановленню Mastodon на сервер Ubuntu 24.04

watch 3m, 12s
views 2

10:52, 28.07.2026

Зміст статті
arrow

  • Дізнайтеся про головні особливості Mastodon
  • Особливості Mastodon
  • Що потрібно підготувати перед початком роботи (необхідні умови)
  • Крок 1: Налаштуйте базу даних PostgreSQL як професіонал
  • Крок 2: Встановіть Ruby на Ubuntu 24.04
  • Крок 3: Завантажте Mastodon і підготуйте його до налаштування
  • Крок 4: Увімкніть Mastodon і запустіть свою інстанцію.
  • Крок 5: Налаштування зворотного проксі-сервера Nginx для Mastodon
  • Крок 6: Захистіть свій сайт Mastodon за допомогою HTTPS
  • Створення резервної копії та відновлення бази даних Mastodon
  • Вирішуйте помилки виконання Mastodon як професіонал
  • Оновлення PostgreSQL для Mastodon
  • Підсумок

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

Поділитися

Чи була ця стаття корисною для вас?

Популярні пропозиції VPS

-24.4%

CPU
CPU
2 Xeon Cores
RAM
RAM
1 GB
Space
Space
20 GB SSD
Bandwidth
Bandwidth
300 GB
KVM-SSD 1024 HK Linux

13

При оплаті за рік

-10%

CPU
CPU
8 Epyc Cores
RAM
RAM
32 GB
Space
Space
200 GB NVMe
Bandwidth
Bandwidth
Unlimited
Keitaro KVM 32768
OS
CentOS
Software
Software
Keitaro

77.54

При оплаті за рік

-10%

CPU
CPU
4 Xeon Cores
RAM
RAM
2 GB
Space
Space
60 GB HDD
Bandwidth
Bandwidth
Unlimited
KVM-HDD 2048 Linux

7.7

При оплаті за рік

-10%

CPU
CPU
2 Xeon Cores
RAM
RAM
512 MB
Space
Space
10 GB SSD
Bandwidth
Bandwidth
Unlimited
KVM-SSD 512 Linux

5.2

При оплаті за рік

-10%

CPU
CPU
6 Xeon Cores
RAM
RAM
8 GB
Space
Space
200 GB HDD
Bandwidth
Bandwidth
300 Gb
KVM-HDD HK 8192 Linux

21.03

При оплаті за рік

-10.2%

CPU
CPU
6 Xeon Cores
RAM
RAM
16 GB
Space
Space
150 GB SSD
Bandwidth
Bandwidth
100 Mbps
DDoS Protected SSD-KVM 16384 Linux

123

При оплаті за 6 місяців

-20.8%

CPU
CPU
6 Xeon Cores
RAM
RAM
16 GB
Space
Space
150 GB SSD
Bandwidth
Bandwidth
10 TB
wKVM-SSD 16384 Metered Windows

100

При оплаті за рік

-10%

CPU
CPU
6 Xeon Cores
RAM
RAM
8 GB
Space
Space
100 GB SSD
Bandwidth
Bandwidth
Unlimited
wKVM-SSD 8192 Windows

28.44

При оплаті за рік

-4.6%

CPU
CPU
3 Xeon Cores
RAM
RAM
1 GB
Space
Space
40 GB HDD
Bandwidth
Bandwidth
300 Gb
wKVM-HDD HK 1024 Windows

10.55

При оплаті за рік

-8.4%

CPU
CPU
4 Xeon Cores
RAM
RAM
2 GB
Space
Space
75 GB SSD
Bandwidth
Bandwidth
Unlimited
10Ge-wKVM-SSD 2048 Windows

37.4

При оплаті за рік

Інші статті на цю тему

cookie

Чи приймаєте ви файли cookie та політику конфіденційності?

Ми використовуємо файли cookie, щоб забезпечити вам найкращий досвід роботи на нашому сайті. Якщо ви продовжуєте користуватися сайтом, не змінюючи налаштувань, вважайте, що ви згодні на отримання всіх файлів cookie на сайті HostZealot.