Mastodon¶
В этой статье
Информация
Mastodon - это бесплатная децентрализованная социальная платформа с открытым исходным кодом. В отличие от централизованных коммерческих платформ, Mastodon не контролируется какой-либо одной организацией.
Mastodon. Основные возможности¶
- Mastodon позволяет подписываться и общаться с пользователями из любых подключенных серверов;
- Для поиска интересного контента в Mastodon есть ленты публичных постов. Локальная лента отображает посты с вашего сервера, а объединенная — все известные вашему серверу публичные посты подписчиков пользователей с вашего сервера;
- Взаимодействовать с постами можно прямо в ленте или в расширенном представлении поста: ответить, поделиться, добавить в избранное, закладки или воспользоваться дополнительным меню;
- Mastodon отправляет уведомления о разных событиях взаимодействия с вашим профилем и постами. Их можно фильтровать по типам;
- Чтобы подписаться на пользователя, достаточно нажать кнопку
Подписатьсяв его профиле. Можно включить уведомления о новых постах подписок; - Поиск в Mastodon позволяет найти пользователей, хештеги и загрузить пост по ссылке. При установленном полнотекстовом поиске можно искать в собственных постах и избранном;
- Личные сообщения в Mastodon — это посты с видимостью "только подписчики". Отображаются в отдельной колонке диалогов;
- Можно создавать списки подписок и просматривать ленту постов только из этих списков.
Особенности сборки¶
ID | Совместимые ОС | VPS | BM | VGPU | GPU | Мин. ЦПУ (Ядер) | Мин. ОЗУ (Гб) | Мин. HDD/SDD (Гб) | Доступно |
---|---|---|---|---|---|---|---|---|---|
59 | Ubuntu 22.04 | + | + | + | + | 2 | 2 | - | Да |
-
Установленное ПО
ПО Лицензия Mastodon AGPLv3 Nginx Custom Postgres Postgres SQL Certbot Apache 2 Redis BSD-3-Clause -
Возможна установка на ОС:
- последние версии Ubuntu.
- Минимальные системные требования для установки Mastodon:
- Процессор: 2 ядра.
- ОЗУ: 2 Гб.
- Дисковое пространство: 30 Гб HDD.
- Рекомендуемые системные требования:
- Процессор: 4 ядра, 64-бит.
- ОЗУ: 8 Гб.
- Дисковое пространство: 80 Гб SSD.
Веб-интерфейс будет доступен по ссылке: https://mastodon{Server_ID_from_Invapi}.hostkey.in
Примечание
Если не указано иное, по умолчанию мы устанавливаем последнюю релиз версию программного обеспечения с сайта разработчика или репозиториев операционной системы.
Начало работы после развертывания Mastodon¶
После оплаты заказа на указанную при регистрации электронную почту придет уведомление о готовности сервера к работе. В нем будет указан IP-адрес VPS, а также логин и пароль для подключения. Управление оборудованием клиенты нашей компании осуществляют в панели управления серверами и API — Invapi.
Данные для авторизации, которые можно найти или во вкладке Информация >> Тэги панели управления сервером или в присланном e-mail:
- Ссылка для доступа к панели управления Mastodon с веб-интерфейсом: в теге webpanel;
- Логин и Пароль для подключения к серверу: приходят в письме на вашу электронную почту при готовности сервера к работе после развертывания ПО;
- Логин и Пароль для авторизации в веб-интерфейсе Mastodon задаются вручную на этапе создания учётной записи через консоль администратора.
Пример использования¶
-
Подключитесь к серверу по SSH:
-
Выполните вход в контейнер с веб-приложением Mastodon. Найдите и подключитесь к контейнеру
mastodon_web_1
: -
Для создания нового пользователя, используйте команду
tootctl accounts create
. В качестве параметров указывайте имя пользователя, email и флаг--confirmed
для подтверждения аккаунта.RAILS_ENV=production bin/tootctl accounts create new_username --email [email protected] --confirmed
Замените
new_username
на желаемое имя пользователя, а[email protected]
на реальный email пользователя.После выполнения этой команды пользователь будет создан. Обязательно сохраните пароль, который будет выведен на экран:
Предоставление прав администратора и одобрение пользователя¶
После создания пользователя, нужно найти его в базе данных для изменения прав и статуса.
-
Запустите консоль Rails:
-
Найдите пользователя по email или имени:
user = User.find_by(email: '[email protected]') # или: User.find_by(username: 'new_username')
-
Обновите его статус:
Это действие уберёт надпись
Your application is pending review by our staff...
в административной панели. -
Назначьте ему административную роль:
-
Проверьте:
-
Выйдите из консоли:
Настройка почтового сервера¶
Если требуется настроить или изменить почтовый сервер, выполните:
-
Откройте файл конфигурации:
-
Настройте SMTP-параметры (например, для MailHog):
-
Перезапуск контейнеров Mastodon
Для применения новых настроек перезапустите контейнеры Mastodon:
-
Проверка работы почты
- Для MailHog: откройте веб-интерфейс
http://ваш_сервер:8025
- Проверьте логи:
- Протестируйте: зарегистрируйте нового пользователя и проверьте получение письма
- Для MailHog: откройте веб-интерфейс
Примечания
Проверка Docker-контейнеров: Если вы не уверены, какие контейнеры работают, выполните:
Убедитесь, что контейнеры Mastodon (mastodon_web_1
, mastodon_db_1
, и т. д.) запущены. Информация
Подробней о настройках конфигурации можно узнать в документации разработчиков.
Информация
Подробней работе с setup.sh можно узнать в документации разработчиков.
Изменение доменного имени сервера Mastodon¶
Информация
В данном руководстве используется домен skaz.online
в качестве примера. Изначально Mastodon настроен с доменом вида mastodon<ID_сервера>.hostkey.in
. Замените skaz.online
на ваш реальный домен во всех примерах конфигураций.
Ключевые файлы и директории¶
Файл/Директория | Что меняется |
---|---|
/opt/mastodon/.env.production | Переменные окружения, домены |
/data/nginx/user_conf.d/*.conf | Конфигурация nginx для нового домена |
/etc/letsencrypt/live/ | Сертификаты SSL (при использовании certbot) |
Docker Compose файлы | Домен в docker-compose.yml или переменных |
Конфигурация SMTP | Обновление адресов, связанных с доменом |
Для изменения доменного имени следует выполнить следующий алгоритм действий:
-
Зарегистрировать собственный домен, например,
mastodon.mydomain.com
. -
Настроить записи DNS для этого домена:
- Указать А-запись, которая будет указывать на IP-адрес сервера Mastodon;
- Настроить запись MX, указывающую на почтовый сервер.
Информация
-
Добавить PTR-запись в настройках IP-адреса в Invapi;
Информация
Подробнее о настройке PTR-записи в Invapi можно узнать здесь.
-
Обновление переменных окружения Mastodon
Отредактируйте файл
/opt/mastodon/.env.production
, заменив текущее значение (например,mastodon<ID_сервера>.hostkey.in
) на ваш новый домен: -
Настройка Nginx с поддержкой HTTPS
5.1 Создание конфигурации Nginx
Важно: Создайте новый файл конфигурации, заменив старый. Старые конфигурации могут содержать отличающиеся
proxy_pass
директивы, что приведет к неработоспособности.Создайте файл конфигурации
/data/nginx/user_conf.d/skaz.online.conf
со следующим содержимым:server { listen 80; server_name skaz.online; return 301 https://$host$request_uri; } server { listen 443 ssl; listen [::]:443 ssl; server_name skaz.online; # SSL сертификаты ssl_certificate /etc/letsencrypt/live/skaz.online/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/skaz.online/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/skaz.online/chain.pem; ssl_dhparam /etc/letsencrypt/dhparams/dhparam.pem; # Основное приложение Mastodon (порт 3000) location / { proxy_set_header X-Forwarded-Proto https; proxy_set_header X-Forwarded-Ssl on; proxy_set_header Host $host; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://127.0.0.1:3000; real_ip_header X-Forwarded-For; # Поддержка WebSockets proxy_http_version 1.1; proxy_set_header X-Scheme $scheme; proxy_buffering off; } # Streaming API Mastodon (порт 4000) location ^~ /api/v1/streaming { proxy_set_header X-Forwarded-Proto https; proxy_set_header X-Forwarded-Ssl on; proxy_set_header Host $host; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://127.0.0.1:4000; real_ip_header X-Forwarded-For; # Поддержка WebSockets proxy_http_version 1.1; proxy_set_header X-Scheme $scheme; proxy_buffering off; } }
5.2 Получение SSL-сертификата
Проверьте наличие сертификата:
Если сертификат отсутствует, получите его:
-
Очистка конфликтующих конфигураций
Важно! Обязательно удалите старые конфигурации nginx, так как наличие нескольких .conf файлов может привести к конфликтам:
Удалите старый конфиг (например, для
mastodon<ID_сервера>.hostkey.in
)Или переименуйте для сохранения резервной копии
mv /data/nginx/user_conf.d/mastodon<ID_сервера>.hostkey.in.conf /data/nginx/user_conf.d/mastodon<ID_сервера>.hostkey.in.conf.backup
Причины конфликтов:
- Дублирующие директивы
listen 443 ssl
вызывают ошибкуduplicate listen options
- Старые конфигурации могут содержать другие
proxy_pass
адреса или порты - Nginx может неправильно обрабатывать запросы при наличии нескольких server блоков
- Дублирующие директивы
-
Перезапуск служб
В каталоге с
docker-compose.yml
выполните: -
Проверка работоспособности
Тестирование из командной строки
Ожидаемый ответ:
HTTP/1.1 200 OK
Проверка в браузере
Откройте домен в браузере — должна загрузиться главная страница Mastodon.
Первоначальные настройки в панели администратора¶
Чтобы попасть в панель администратора, необходимо перейти по ссылке из тега webpanel, нажать на кнопку Войти и ввести учетные данные, заданные ранее.
Управление правилами сервера¶
Правила в Mastodon устанавливаются администраторами и модераторами каждого отдельного сервера в этой децентрализованной социальной сети. Для управления правилами следует перейти в раздел Администрирование >> Правила сервера.
Основные принципы указания правил:
- Правила должны быть разумными и следовать общепринятым нормам приличия. Избыточные или несправедливые ограничения оттолкнут пользователей;
- Четко прописать какие именно виды контента запрещены, например жестокость, насилие, незаконная деятельность и т.д. Уточнить допустимый уровень NSFW контента;
- Указать порядок предупреждений, блокировок или ограничений для нарушителей правил. Определить дисциплинарные меры и сроки;
- Правила должны быть легкодоступны для всех пользователей на сервере. Их нужно публично демонстрировать и доводить до сведения во время регистрации;
- Периодически пересматривать и обновлять правила по мере роста сервера. Вовлекать сообщество в процесс модерации и улучшения правил.
Примечание
Подробная информация по основным настройкам Mastodon содержится в документации разработчиков.
Заказ Mastodon с помощью API¶
Для установки данного ПО с использованием API следуйте этой инструкции.