Перейти к содержанию

Mastodon

В этой статье


Информация

Mastodon - это бесплатная децентрализованная социальная платформа с открытым исходным кодом. В отличие от централизованных коммерческих платформ, Mastodon не контролируется какой-либо одной организацией.

Mastodon. Основные возможности

  • Mastodon позволяет подписываться и общаться с пользователями из любых подключенных серверов;
  • Для поиска интересного контента в Mastodon есть ленты публичных постов. Локальная лента отображает посты с вашего сервера, а объединенная — все известные вашему серверу публичные посты подписчиков пользователей с вашего сервера;
  • Взаимодействовать с постами можно прямо в ленте или в расширенном представлении поста: ответить, поделиться, добавить в избранное, закладки или воспользоваться дополнительным меню;
  • Mastodon отправляет уведомления о разных событиях взаимодействия с вашим профилем и постами. Их можно фильтровать по типам;
  • Чтобы подписаться на пользователя, достаточно нажать кнопку Подписаться в его профиле. Можно включить уведомления о новых постах подписок;
  • Поиск в Mastodon позволяет найти пользователей, хештеги и загрузить пост по ссылке. При установленном полнотекстовом поиске можно искать в собственных постах и избранном;
  • Личные сообщения в Mastodon — это посты с видимостью "только подписчики". Отображаются в отдельной колонке диалогов;
  • Можно создавать списки подписок и просматривать ленту постов только из этих списков.

Особенности сборки

ID Совместимые ОС VPS BM VGPU GPU Мин. ЦПУ (Ядер) Мин. ОЗУ (Гб) Мин. HDD/SDD (Гб) Доступно
  • Установленное ПО

    ПО Лицензия
    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, а также логин и пароль для подключения. Управление оборудованием клиенты нашей компании осуществляют в панели управления серверами и APIInvapi.

Данные для авторизации, которые можно найти или во вкладке Информация >> Тэги панели управления сервером или в присланном e-mail:

  • Ссылка для доступа к панели управления Mastodon с веб-интерфейсом: в теге webpanel;
  • Логин и Пароль: приходят в письме на вашу электронную почту при готовности сервера к работе после развертывания ПО.

Пример использования

  1. Подключитесь к серверу по SSH:

    ssh root@<server_ip>
    
  2. Выполните вход в контейнер с веб-приложением Mastodon. Найдите и подключитесь к контейнеру mastodon_web_1:

    docker exec -it mastodon_web_1 bash
    
  3. Для создания нового пользователя, используйте команду tootctl accounts create. В качестве параметров указывайте имя пользователя, email и флаг --confirmed для подтверждения аккаунта.

    RAILS_ENV=production bin/tootctl accounts create new_username --email [email protected] --confirmed
    

    Замените new_username на желаемое имя пользователя, а [email protected] на реальный email пользователя.

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

  4. Предоставление прав администратора

    После создания пользователя, нужно найти его в базе данных для дальнейшего изменения прав. Используйте команду в rails console.

    RAILS_ENV=production bin/rails console
    
    Внутри консоли выполните команду для поиска пользователя по email или имени:

    user = User.find_by(email: '[email protected]')  # или можно использовать find_by(username: 'new_username')
    
    После того как пользователь найден, необходимо обновить его роль, присвоив ему роль администратора. Для этого используйте следующую команду:

    user.update(role: UserRole.find_by(name: 'Admin'))
    
    Эта команда установит роль "Admin" для выбранного пользователя.

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

    user.reload
    user.role
    
    На экран будет выведена текущую роль пользователя ("Admin").

  5. Выход из консоли Rails:

    exit
    
  6. Изменение конфигурации Mastodon. Если требуется внести изменения в конфигурацию, например, изменить почтовый сервер, выполните:

    • Откройте файл конфигурации:
    nano /opt/mastodon/.env.production
    
    • После внесения изменений выполните команды для обновления статических файлов:
    RAILS_ENV=production bundle exec rails assets:clean
    RAILS_ENV=production bundle exec rails assets:clobber
    RAILS_ENV=production bundle exec rails assets:precompile
    
    • Выйдите из контейнера:
    exit
    
  7. Перезапуск контейнеров Mastodon

    Для применения новых настроек перезапустите контейнеры Mastodon от имени администратора:

    docker-compose -f /opt/mastodon/docker-compose.yml restart
    

Примечание

  1. Проверка Docker-контейнеров: Если вы не уверены, какие контейнеры работают, выполните:

    docker ps
    
    Убедитесь, что контейнеры Mastodon (mastodon_web_1, mastodon_db_1, и т. д.) запущены.

  2. Отслеживание ошибок: Если команды в контейнере вызывают ошибки, используйте параметр --trace для диагностики:

    RAILS_ENV=production bundle exec rails assets:precompile --trace
    
  3. Права доступа: Если вы получаете ошибки доступа к файлам (например, Errno::EACCES), убедитесь, что файлы в директории /opt/mastodon имеют правильные владельца и права:

    chown -R mastodon:mastodon /opt/mastodon
    chmod -R 755 /opt/mastodon
    
    - После выполнения этих команд Mastodon примет новые настройки.

Информация

Подробней о настройках конфигурации можно узнать в документации разработчиков.

Работа с почтовым сервером

Для работы Mastodon требуется SMTP-сервер для отправки уведомлений и подтверждений пользователям. В данной сборке Mastodon не используется отдельный контейнер с почтовым сервером (Mailserver). Вместо этого Mastodon настроен на работу с внешним SMTP-сервером, который может быть использован для отправки почты.

Для настройки почтового сервера необходимо отредактировать параметры SMTP в файле конфигурации .env.production. Для этого выполните следующие шаги:

  1. Перейдите в директорию с конфигурационными файлами Mastodon:

    cd /opt/mastodon
    
  2. Отредактируйте файл .env.production, добавив настройки для вашего SMTP-сервера:

    nano .env.production
    
  3. Внесите параметры для SMTP-сервера (например, для Mailgun или любого другого почтового провайдера):

    SMTP_SERVER=#адрес вашего SMTP-сервера (например, smtp.gmail.com для Google, smtp.yandex.ru для Яндекс).
    SMTP_PORT=#порт SMTP-сервера (обычно 587 для TLS или 465 для SSL)
    SMTP_LOGIN=#[email protected] - порт SMTP-сервера (обычно 587 для TLS или 465 для SSL)
    SMTP_PASSWORD=#smtp-пароль
    SMTP_FROM_ADDRESS=#адрес отправителя, который будет отображаться в письмах (например, notifications@ваш_домен)
    SMTP_DOMAIN=#example.com
    
    После изменения сохраните файл.

  4. Примените изменения, перезапустив контейнеры Mastodon:

    docker-compose restart
    

Информация

Подробней работе с setup.sh можно узнать в документации разработчиков.

Изменение доменного имени сервера Mastodon

Для изменения доменного имени следует выполнить следующий алгоритм действий:

  1. Зарегистрировать собственный домен, например, mastodon.mydomain.com.

  2. Настроить записи DNS для этого домена:

    • Указать А-запись, которая будет указывать на IP-адрес сервера Mastodon;
    • Настроить запись MX, указывающую на почтовый сервер.

    Информация

    Управление DNS

  3. Перейти в директорию с docker-compose:

    cd /opt/mastodon
    
  4. Настройка Nginx:

    nano /data/nginx/user_conf.d/mastodon.conf
    
    Следует изменить server_name на новый домен.

  5. Обновление сертификатов Let's Encrypt:

    docker-compose run --rm nginx-certbot certbot certonly --standalone -d <новый_домен.com>
    
  6. В настройках администратора Mastodon изменить домен на новый и сохранить изменения;

  7. Создать новый почтовый аккаунт notifications@имя_нового_домена, где имя_нового_домена - это домен почтового сервера;

  8. Выполнить настройку почтовых уведомлений;

  9. Добавить PTR-запись в настройках IP-адреса в Invapi;

    Информация

    Подробнее о настройке PTR-записи в Invapi можно узнать здесь.

  10. Отредактировать .env.production:

    nano /opt/mastodon/.env.production
    
    • Изменить LOCAL_DOMAIN на новый домен
    • Обновить SMTP-настройки
  11. Перекомпиляция ассетов:

    docker exec -it mastodon_web_1 bash
    RAILS_ENV=production bundle exec rails assets:clean
    RAILS_ENV=production bundle exec rails assets:precompile
    exit
    
  12. Перезапустить все службы Mastodon:

    docker-compose restart
    
  13. Перезапустить Mastodon:

    docker-compose restart 
    

Изменение доменного имени у почтового сервера

Для изменения доменного имени у почтового сервера следует выполнить следующий алгоритм действий:

  1. Остановка всех Docker-контейнеров:

    cd /opt/mastodon
    docker-compose down
    
  2. Редактирование конфигурационных файлов:

    a. Открыть .env.production:

    nano .env.production
    
    • Изменить LOCAL_DOMAIN на новый домен
    • Обновить SMTP-настройки

    b. Если необходимо, изменить hostname в docker-compose.yml:

    bash nano docker-compose.yml

    • Найти и заменить строку hostname: mastodon*.hostkey.in;
    • Указать новый домен, например: hostname: mydomain.com.
  3. Настройка DNS:

    • Создать/обновить А-записи для нового домена
    • Настроить MX-записи для почтового сервера
    • Добавить PTR-записи для обратного разрешения
  4. Обновление SSL-сертификатов:

    bash docker-compose run --rm nginx-certbot certbot certonly --standalone -d новый.домен.com

  5. Перезапуск служб:

    docker-compose up -d
    

После выполнения этих действий доменное имя почтового сервера будет изменено на указанный домен.

Первоначальные настройки в панели администратора

Чтобы попасть в панель администратора, необходимо перейти по ссылке из тега webpanel, нажать на кнопку Войти и ввести учетные данные, заданные ранее.

Управление правилами сервера

Правила в Mastodon устанавливаются администраторами и модераторами каждого отдельного сервера в этой децентрализованной социальной сети. Для управления правилами следует перейти в раздел Администрирование >> Правила сервера.

Основные принципы указания правил:

  • Правила должны быть разумными и следовать общепринятым нормам приличия. Избыточные или несправедливые ограничения оттолкнут пользователей;
  • Четко прописать какие именно виды контента запрещены, например жестокость, насилие, незаконная деятельность и т.д. Уточнить допустимый уровень NSFW контента;
  • Указать порядок предупреждений, блокировок или ограничений для нарушителей правил. Определить дисциплинарные меры и сроки;
  • Правила должны быть легкодоступны для всех пользователей на сервере. Их нужно публично демонстрировать и доводить до сведения во время регистрации;
  • Периодически пересматривать и обновлять правила по мере роста сервера. Вовлекать сообщество в процесс модерации и улучшения правил.

Примечание

Подробная информация по основным настройкам Mastodon содержится в документации разработчиков.

Заказ Mastodon с помощью API

Для установки данного ПО с использованием API следуйте этой инструкции.