No description
- Python 92.8%
- Dockerfile 7.2%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
|
||
| .wiki/ru | ||
| .gitignore | ||
| bot.py | ||
| Dockerfile | ||
| help.md | ||
| LICENSE | ||
| README.md | ||
Fediverse Group
Легковесный и простой в развертывании бот-сообщество (группа) для Mastodon и других платформ Fediverse, полностью адаптированный под Docker. Проект разработан с фокусом на открытость, простоту поддержки и минимальное потребление ресурсов сервера.
🌟 Принцип работы группы
Бот реализует классическую механику Fediverse-сообществ по принципу взаимного членства:
- Подписка = Вступление. Пользователь подписывается на аккаунт бота. Бот мгновенно ловит это уведомление и автоматически подписывается в ответ, подтверждая членство участника в группе.
- Упоминание = Рассылка. Участник пишет пост и упоминает в нем аккаунт бота. Бот проверяет статус подписки автора через API. Если автор является участником группы, бот делает Boost (репост) этого сообщения. Благодаря механике Mastodon, этот репост падает в домашние ленты абсолютно всех подписчиков бота.
- Защита от спама. Если бота упоминает сторонний пользователь (не подписанный на него), бот отклоняет публикацию, не засоряя ленту сообщества, и автоматически отправляет автору вежливое напоминание в ЛС (Direct Message) с инструкцией, как стать участником.
🛠 Технологический стек
- Python 3.11 (Облегченный образ
slim) - Mastodon.py (Библиотека для взаимодействия с API)
- Docker & Docker Compose (Контейнеризация и быстрое развертывание)
🚀 Быстрый старт и развертывание
1. Подготовка аккаунта в Mastodon
- Зарегистрируйте отдельный аккаунт для вашей группы на инстансе.
- Перейдите в Настройки -> Разработка -> Новое приложение.
- Укажите имя приложения (например,
Fedi Group Bot). - В блоке прав (Scopes) выберите следующие точечные разрешения:
read:follows(для проверки членства участников).read:notifications(для отслеживания меншенов в реальном времени).read:statuses(для чтения контента постов).write:follows(для автоматической взаимной подписки).write:notifications(для очистки логов уведомлений).write:statuses(для выполнения репостов и отправки ЛС).
- Сохраните приложение и скопируйте Токен доступа (Access Token).
2. Настройка compose.yml
Создайте рабочую директорию и подготовьте файл конфигурации:
services:
fedi-group:
image: code.vsme.cc/golos/fedi-group:stable
container_name: fedi_group
restart: always
environment:
- MASTODON_BASE_URL=ваш_сервер
- MASTODON_TOKEN=ваш_токен_доступа_здесь
3. Запуск контейнера
Выполните команду для запуска бота в фоновом режиме:
docker compose up -d
Для просмотра логов работы и отслеживания событий используйте команду:
docker compose logs -f