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, а также логин и пароль для подключения. Управление оборудованием клиенты нашей компании осуществляют в панели управления серверами и API — Invapi.
Данные для авторизации, которые можно найти или во вкладке Информация >> Тэги панели управления сервером или в присланном e-mail:
- Ссылка для доступа к панели управления Mastodon с веб-интерфейсом: в теге webpanel;
- Логин и Пароль: приходят в письме на вашу электронную почту при готовности сервера к работе после развертывания ПО.
Пример использования¶
-
Подключитесь к серверу по 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 пользователя.После выполнения этой команды пользователь будет создан. Обязательно сохраните пароль, который будет выведен на экран:
-
Предоставление прав администратора
После создания пользователя, нужно найти его в базе данных для дальнейшего изменения прав. Используйте команду в
Внутри консоли выполните команду для поиска пользователя по email или имени:rails console
.После того как пользователь найден, необходимо обновить его роль, присвоив ему роль администратора. Для этого используйте следующую команду: Эта команда установит роль "Admin" для выбранного пользователя.user = User.find_by(email: '[email protected]') # или можно использовать find_by(username: 'new_username')
Чтобы убедиться, что роль была успешно изменена, выполните команду:
На экран будет выведена текущую роль пользователя ("Admin"). -
Выход из консоли Rails:
-
Изменение конфигурации Mastodon. Если требуется внести изменения в конфигурацию, например, изменить почтовый сервер, выполните:
- Откройте файл конфигурации:
- После внесения изменений выполните команды для обновления статических файлов:
RAILS_ENV=production bundle exec rails assets:clean RAILS_ENV=production bundle exec rails assets:clobber RAILS_ENV=production bundle exec rails assets:precompile
- Выйдите из контейнера:
-
Перезапуск контейнеров Mastodon
Для применения новых настроек перезапустите контейнеры Mastodon от имени администратора:
Примечание
-
Проверка Docker-контейнеров: Если вы не уверены, какие контейнеры работают, выполните:
Убедитесь, что контейнеры Mastodon (mastodon_web_1
,mastodon_db_1
, и т. д.) запущены. -
Отслеживание ошибок: Если команды в контейнере вызывают ошибки, используйте параметр
--trace
для диагностики: -
Права доступа: Если вы получаете ошибки доступа к файлам (например,
- После выполнения этих команд Mastodon примет новые настройки.Errno::EACCES
), убедитесь, что файлы в директории/opt/mastodon
имеют правильные владельца и права:
Информация
Подробней о настройках конфигурации можно узнать в документации разработчиков.
Работа с почтовым сервером¶
Для работы Mastodon требуется SMTP-сервер для отправки уведомлений и подтверждений пользователям. В данной сборке Mastodon не используется отдельный контейнер с почтовым сервером (Mailserver). Вместо этого Mastodon настроен на работу с внешним SMTP-сервером, который может быть использован для отправки почты.
Для настройки почтового сервера необходимо отредактировать параметры SMTP в файле конфигурации .env.production
. Для этого выполните следующие шаги:
-
Перейдите в директорию с конфигурационными файлами Mastodon:
-
Отредактируйте файл
.env.production
, добавив настройки для вашего SMTP-сервера: -
Внесите параметры для 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
-
Примените изменения, перезапустив контейнеры Mastodon:
Информация
Подробней работе с setup.sh можно узнать в документации разработчиков.
Изменение доменного имени сервера Mastodon¶
Для изменения доменного имени следует выполнить следующий алгоритм действий:
-
Зарегистрировать собственный домен, например,
mastodon.mydomain.com
. -
Настроить записи DNS для этого домена:
- Указать А-запись, которая будет указывать на IP-адрес сервера Mastodon;
- Настроить запись MX, указывающую на почтовый сервер.
Информация
-
Перейти в директорию с docker-compose:
-
Настройка Nginx:
Следует изменитьserver_name
на новый домен. -
Обновление сертификатов Let's Encrypt:
-
В настройках администратора Mastodon изменить домен на новый и сохранить изменения;
-
Создать новый почтовый аккаунт
notifications@имя_нового_домена
, гдеимя_нового_домена
- это домен почтового сервера; -
Выполнить настройку почтовых уведомлений;
-
Добавить PTR-запись в настройках IP-адреса в Invapi;
Информация
Подробнее о настройке PTR-записи в Invapi можно узнать здесь.
-
Отредактировать
.env.production
:- Изменить
LOCAL_DOMAIN
на новый домен - Обновить SMTP-настройки
- Изменить
-
Перекомпиляция ассетов:
-
Перезапустить все службы Mastodon:
-
Перезапустить Mastodon:
Изменение доменного имени у почтового сервера¶
Для изменения доменного имени у почтового сервера следует выполнить следующий алгоритм действий:
-
Остановка всех Docker-контейнеров:
-
Редактирование конфигурационных файлов:
a. Открыть
.env.production
:- Изменить
LOCAL_DOMAIN
на новый домен - Обновить SMTP-настройки
b. Если необходимо, изменить
hostname
вdocker-compose.yml
:bash nano docker-compose.yml
- Найти и заменить строку
hostname: mastodon*.hostkey.in
; - Указать новый домен, например:
hostname: mydomain.com
.
- Изменить
-
Настройка DNS:
- Создать/обновить А-записи для нового домена
- Настроить MX-записи для почтового сервера
- Добавить PTR-записи для обратного разрешения
-
Обновление SSL-сертификатов:
bash docker-compose run --rm nginx-certbot certbot certonly --standalone -d новый.домен.com
-
Перезапуск служб:
После выполнения этих действий доменное имя почтового сервера будет изменено на указанный домен.
Первоначальные настройки в панели администратора¶
Чтобы попасть в панель администратора, необходимо перейти по ссылке из тега webpanel, нажать на кнопку Войти и ввести учетные данные, заданные ранее.
Управление правилами сервера¶
Правила в Mastodon устанавливаются администраторами и модераторами каждого отдельного сервера в этой децентрализованной социальной сети. Для управления правилами следует перейти в раздел Администрирование >> Правила сервера.
Основные принципы указания правил:
- Правила должны быть разумными и следовать общепринятым нормам приличия. Избыточные или несправедливые ограничения оттолкнут пользователей;
- Четко прописать какие именно виды контента запрещены, например жестокость, насилие, незаконная деятельность и т.д. Уточнить допустимый уровень NSFW контента;
- Указать порядок предупреждений, блокировок или ограничений для нарушителей правил. Определить дисциплинарные меры и сроки;
- Правила должны быть легкодоступны для всех пользователей на сервере. Их нужно публично демонстрировать и доводить до сведения во время регистрации;
- Периодически пересматривать и обновлять правила по мере роста сервера. Вовлекать сообщество в процесс модерации и улучшения правил.
Примечание
Подробная информация по основным настройкам Mastodon содержится в документации разработчиков.
Заказ Mastodon с помощью API¶
Для установки данного ПО с использованием API следуйте этой инструкции.