Двунаправленный мост между чатом Max и комнатой Matrix с поддержкой текста и медиа.
Работает как единый процесс Docker: бот Max (построен на maxapi).
Сообщения пересылаются в формате Отображаемое имя: текст со стороны Max и **Отображаемое имя**: текст со стороны Matrix.
Warning
Этот проект взаимодействует с мессенджером Max. Max — российский сервис, развитие которого связано с российской инфраструктурой и регулируется законодательством РФ.
Если для вас важны вопросы конфиденциальности, юрисдикции или обработки данных, учитывайте это при принятии решения об использовании проекта.
Медиа (в обоих направлениях): фотографии, файлы, видео, аудио/голосовые сообщения, стикеры. Загрузка из Matrix выполняется через репозиторий контента, а вложения Max пересылаются с использованием механизма загрузки Max Bot API. Получение событий и вложений из Max выполняется через long polling Max Bot API.
- Скопируйте
.env.exampleв.envи заполните переменные (см. таблицу ниже). docker compose up -d- Добавьте бота Max в чат (для этого потребуется создать организацию в Max).
- Выдайте приглашенному боту в чат Max права администратора (Нужно для чтения сообщений).
- Пригласите бота Matrix в комнату; после подключения он отправит приветственное сообщение.
- В 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.