No description
  • Python 92.8%
  • Dockerfile 7.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-10-02 13:30:30 +02:00
.wiki/ru Fediverse Group 2026-10-02 05:33:08 +02:00
language/ru Обновить language/ru/Dockerfile 2026-10-02 10:48:52 +02:00
help.md help.md 2026-10-01 18:18:52 +02:00
LICENSE Initial commit 2026-10-01 16:31:22 +02:00
README.md Обновить README.md 2026-10-01 18:41:39 +02:00

Fediverse Group

Легковесный и простой в развертывании бот-сообщество (группа) для Mastodon и других платформ Fediverse, полностью адаптированный под Docker. Проект разработан с фокусом на открытость, простоту поддержки и минимальное потребление ресурсов сервера.

🌟 Принцип работы группы

Бот реализует классическую механику Fediverse-сообществ по принципу взаимного членства:

  1. Подписка = Вступление. Пользователь подписывается на аккаунт бота. Бот мгновенно ловит это уведомление и автоматически подписывается в ответ, подтверждая членство участника в группе.
  2. Упоминание = Рассылка. Участник пишет пост и упоминает в нем аккаунт бота. Бот проверяет статус подписки автора через API. Если автор является участником группы, бот делает Boost (репост) этого сообщения. Благодаря механике Mastodon, этот репост падает в домашние ленты абсолютно всех подписчиков бота.
  3. Защита от спама. Если бота упоминает сторонний пользователь (не подписанный на него), бот отклоняет публикацию, не засоряя ленту сообщества, и автоматически отправляет автору вежливое напоминание в ЛС (Direct Message) с инструкцией, как стать участником.

🛠 Технологический стек

  • Python 3.11 (Облегченный образ slim)
  • Mastodon.py (Библиотека для взаимодействия с API)
  • Docker & Docker Compose (Контейнеризация и быстрое развертывание)

🚀 Быстрый старт и развертывание

1. Подготовка аккаунта в Mastodon

  1. Зарегистрируйте отдельный аккаунт для вашей группы на инстансе.
  2. Перейдите в Настройки -> Разработка -> Новое приложение.
  3. Укажите имя приложения (например, Fedi Group Bot).
  4. В блоке прав (Scopes) выберите следующие точечные разрешения:
    • read:follows (для проверки членства участников).
    • read:notifications (для отслеживания меншенов в реальном времени).
    • read:statuses (для чтения контента постов).
    • write:follows (для автоматической взаимной подписки).
    • write:notifications (для очистки логов уведомлений).
    • write:statuses (для выполнения репостов и отправки ЛС).
  5. Сохраните приложение и скопируйте Токен доступа (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

Наш бот на Mastodon