Skip to content

Repository files navigation

Matrix–Max–Bridge

Двунаправленный мост между чатом Max и комнатой Matrix с поддержкой текста и медиа. Работает как единый процесс Docker: бот Max (построен на maxapi). Сообщения пересылаются в формате Отображаемое имя: текст со стороны Max и **Отображаемое имя**: текст со стороны Matrix.

Warning

Этот проект взаимодействует с мессенджером Max. Max — российский сервис, развитие которого связано с российской инфраструктурой и регулируется законодательством РФ.

Если для вас важны вопросы конфиденциальности, юрисдикции или обработки данных, учитывайте это при принятии решения об использовании проекта.

Медиа (в обоих направлениях): фотографии, файлы, видео, аудио/голосовые сообщения, стикеры. Загрузка из Matrix выполняется через репозиторий контента, а вложения Max пересылаются с использованием механизма загрузки Max Bot API. Получение событий и вложений из Max выполняется через long polling Max Bot API.

Быстрый запуск

  1. Скопируйте .env.example в .env и заполните переменные (см. таблицу ниже).
  2. docker compose up -d
  3. Добавьте бота Max в чат (для этого потребуется создать организацию в Max).
  4. Выдайте приглашенному боту в чат Max права администратора (Нужно для чтения сообщений).
  5. Пригласите бота Matrix в комнату; после подключения он отправит приветственное сообщение.
  6. В Matrix отправьте /max link <код>. После этого сообщения начнут пересылаться в обоих направлениях.

Каталог ./data монтируется в контейнер для хранения файла SQLite.

Переменные окружения

Переменная Описание
MAX_BOT_TOKEN Токен бота Max
MATRIX_HS_URL URL homeserver (обязательно с https://)
MATRIX_USER_ID Полный MXID бота вида @bot:example.org (также отображается в инструкциях Max)
MATRIX_ACCESS_TOKEN Токен доступа бота
DATABASE_PATH Путь к файлу SQLite (по умолчанию в Docker: /data/bridge.db)
LINK_CODE_TTL_SECONDS Время жизни кода привязки в секундах (по умолчанию: 3600)
MATRIX_ALLOWED_SERVER Необязательно: разрешить привязку только к комнатам этого домена. Мягкое ограничение по server-name в room_id. Оставьте пустым, чтобы разрешить любые.
RATE_LIMIT_* Параметры защиты от злоупотреблений для попыток /max link и генерации кодов
MAX_DOWNLOAD_BYTES Максимальный размер одного медиа-файла в обоих направлениях (по умолчанию: 20 МиБ)
REQUIRE_MOD_TO_LINK Если true, для привязки /max link также требуются права модератора Matrix (по умолчанию: false)

Безопасность

См. SECURITY.md.

About

Мост для сообщений между чатами в Max и Matrix

Resources

Security policy

Stars

1 star

Watchers

0 watching

Forks

Used by

Contributors

Languages