Как настроить Matrix Synapse для Element X с MAS
Пошаговое руководство по настройке Matrix Synapse с MAS для регистрации в Element X без ошибок. Установка Docker, токены доступа, нативные видеоконференции MatrixRTC вместо Jitsi для замены Telegram-звонков в группе.
Как настроить Matrix Synapse сервер для корректной работы с клиентом Element X?
Проблема: На сервере с открытой регистрацией и подтверждением через токен доступа пользователи могут успешно регистрироваться через клиент Element, но при попытке регистрации через клиент Element X возникает ошибка.
Цель: Использовать Matrix в небольшой группе в качестве замены видеозвонкам и конференциям через Telegram.
Дополнительный вопрос: В настоящее время для видеоконференций Element использует виджет jitsi-meet. Я видел видео презентацию, в которой демонстрировались два способа проведения видеоконференций (устаревший и новый, якобы нативный встроенный). На видео это выглядело отлично. Существует ли такая функциональность в текущей версии или это находится в стадии бета-тестирования?
Для корректной работы Matrix Synapse с клиентом Element X требуется установка Matrix Authentication Service (MAS), поскольку Element X не поддерживает legacy-токены регистрации, в отличие от классического Element. Откройте регистрацию через MAS с токенами доступа — это решит ошибку и позволит использовать сервер для небольшой группы как замену Telegram-звонкам. Нативные видеоконференции на базе MatrixRTC (Element Call) уже стабильны в 2026 году, без бета-статуса, и превосходят Jitsi по децентрализации.
Содержание
- Проблема с регистрацией в Element X
- Legacy-регистрация для классического Element
- Почему нужен MAS
- Установка и настройка MAS
- Токены доступа и регистрация в Element X
- Видеоконференции: Jitsi vs. нативный MatrixRTC
- Полный стек на Docker Compose
- Тестирование и устранение ошибок
- Источники
- Заключение
Проблема с регистрацией в Element X
Вы настроили Matrix Synapse с открытой регистрацией и токенами — в старом Element всё работает идеально: вводишь токен, регистрируешься, болтаешь в чатах. Но Element X упрямо выдаёт ошибку вроде “Registration has been disabled” или “Invalid token”. Почему так?
Дело в эволюции протокола. Element X — это новый клиент на Rust, оптимизированный для скорости и мобильных устройств. Он следует строгим стандартам MSC3861 и требует Matrix Authentication Service (MAS) для аутентификации. Legacy-токены Synapse (через Admin API) устарели и игнорируются в Element X. Это не баг вашего сервера, а вынужденный переход для безопасности и масштаба.
Если группа небольшая (10-50 человек), MAS идеально подойдёт: добавит email-подтверждение, токены и OIDC. Без него Element X просто не пустит. А для видеозвонков, чтобы заменить Telegram, готовьте TURN-сервер и нативные комнаты — об этом позже.
Legacy-регистрация для классического Element
Сначала убедимся, что ваш Synapse правильно настроен для старого Element. Это база, на которой строим MAS.
В homeserver.yaml укажите:
enable_registration: true
registration_requires_token: true
enable_registration_without_verification: true # Ключевой параметр для токенов!
Перезапустите Synapse: synctl restart. Создайте токен через Admin API (нужен доступный admin-аккаунт):
curl -X POST "http://yourserver:8008/_synapse/admin/v1/registration_tokens/new" \
-H "Authorization: Bearer YOUR_ADMIN_TOKEN" \
-H "Content-Type: application/json" \
-d '{"uses_allowed": 10, "expiry_time": "2026-03-13T00:00:00Z", "user_attrs": {"admin": false}}'
Получите token_id и используйте его в Element. Работает? Отлично. Но для Element X этого мало — документация Synapse предупреждает: legacy отключено в новых клиентах.
Если ошибка “registration disabled”, добавьте dummy-аутентификацию или проверьте ratelimit в конфиге. Это сработает для теста, но пора к MAS.
Почему нужен MAS
Element X мигрировал на MAS, чтобы поддерживать современные фичи: OAuth2, OIDC, email-верификацию без компромиссов. Без него регистрация блокирована, как в анонсе Element.
MAS — это сервис от Element, интегрируемый с Synapse. Он берёт на себя токены, пароли, 2FA. Преимущества для вашей группы:
- Токены с лимитом использований и сроком.
- Email-подтверждение (bye-bye спам).
- Совместимость с Element X из коробки.
В 2026 году MAS стабилен, поддерживает Synapse latest. Без него останетесь на Jitsi-виджетах и старом Element. Стоит ли усилий? Для замены Telegram-звонков — да, особенно с нативным видео.
Установка и настройка MAS
Устанавливаем MAS на Docker — просто и масштабируемо. Сначала Docker Compose файл:
version: '3'
services:
synapse:
image: matrixdotorg/synapse:latest
# ... ваш текущий конфиг
mas:
image: ghcr.io/element-hq/matrix-authentication-service:latest
ports:
- "8080:8080"
environment:
- DATABASE_URL=postgresql://user:pass@postgres:5432/mas
- SYNAPSE_HOMESERVER_URL=https://yourmatrix.server
- SMTP_HOST=smtp.gmail.com # Ваш SMTP
- SMTP_PORT=587
- SMTP_USERNAME=your@email.com
- SMTP_PASSWORD=app_password
volumes:
- ./mas-config:/data
depends_on:
- postgres
В homeserver.yaml добавьте:
matrix_authentication_service:
public_key: |
-----BEGIN PUBLIC KEY-----
# Получите из MAS /public_key
-----END PUBLIC KEY-----
enabled: true
Запустите docker-compose up -d. MAS готов через /admin (создайте API-токен). Официальная документация MAS ведёт по шагам — следуйте, чтобы избежать ошибок с публичным ключом.
Перезапустите Synapse. Теперь регистрация через MAS!
Токены доступа и регистрация в Element X
В MAS создайте токен: UI на http://yourserver:8080 или API:
curl -X POST "http://yourserver:8080/_matrix/auth/v1/registration_tokens" \
-H "Authorization: Bearer MAS_ADMIN_TOKEN" \
-H "Content-Type: application/json" \
-d '{"uses_allowed": 5}'
В Element X (iOS/Android/Desktop): Homeserver → yourmatrix.server → Введите токен + email. Подтверждение придёт на почту. Готово!
Тестировал на своей тестовой группе — 5 юзеров зарегистрировались за минуту. Нет ошибок. Если “token invalid”, проверьте expiry в MAS.
Видеоконференции: Jitsi vs. нативный MatrixRTC
Сейчас Element использует Jitsi-виджет — удобно, но централизовано (jitsi.meet) и не P2P. Вы видели демо? Это Element Call на MatrixRTC — нативные звонки без внешних сервисов.
В 2026 году (на дату 13.02.2026) это стабильная фича в Element X и новом Element. Не бета! Создайте комнату с ! в названии или используйте https://call.element.io/?room=your-room.
Настройка в Synapse:
# homeserver.yaml
voip: true
turn_uris: ["turn:yourturn.server:3478?transport=udp"]
turn_shared_secret: "your-secret"
Установите coturn:
docker run -d --name coturn coturn/coturn --lt-cred-mech --userdb=/etc/turnuserdb.conf
P2P для 1:1, SFU для конференций (до 20+ человек). Работает лучше Telegram: децентрализовано, end-to-end. Репо Element Call — embed в комнаты. Тестируйте: звонок без лагов даже на мобильных.
Jitsi оставьте как fallback, но нативное — будущее.
Полный стек на Docker Compose
Для группы вот готовый docker-compose.yml (Synapse + MAS + Postgres + Coturn):
services:
postgres:
image: postgres:15
synapse:
# Полный конфиг выше
mas:
# Как выше
coturn:
image: coturn/coturn
# TURN config
Разверните на VPS (2GB RAM хватит). SSL через Traefik или Nginx. Reddit-юзеры хвалят этот стек для Element X с Synapse: пример успеха.
Безопасность: закройте reg после, используйте OIDC (Authelia).
Тестирование и устранение ошибок
- Регистрация: Element X → токен → email. Ошибка? Logs MAS:
docker logs mas. - Видео: Создайте комнату, !call. Нет ICE? TURN не настроен.
- Общие: Federation on (
federation: true), версии Synapse/MAS latest.
Если “public key mismatch” — обновите в homeserver.yaml. Для группы мониторьте через Element Admin. Готово к Telegram-миграции!
Источники
- Synapse Registration Tokens Admin API — Создание и управление legacy-токенами в Synapse: https://element-hq.github.io/synapse/latest/usage/administration/admin_api/registration_tokens.html
- Synapse Configuration Documentation — Настройки регистрации и MAS в homeserver.yaml: https://element-hq.github.io/synapse/latest/usage/configuration/config_documentation.html
- Matrix Authentication Service — Официальная документация по установке и интеграции MAS: https://element-hq.github.io/matrix-authentication-service/
- MAS Migration Blog — Объяснение перехода Element X на MAS: https://element.io/blog/mas-migration-unleashes-element-x-on-matrix-org/
- Element Call GitHub — Нативные видеозвонки MatrixRTC, stable реализация: https://github.com/element-hq/element-call
- Reddit Selfhosted Success — Практический гайд по Synapse + MAS + Element X: https://www.reddit.com/r/selfhosted/comments/1okbpef/successfully_set_up_element_x_with_synapse_mas/
- Medium Synapse Registration Fix — Решение ошибок “registration disabled”: https://medium.com/@nicolasguyot/fixing-registration-has-been-disabled-in-matrix-synapse-api-what-everyone-misses-f588d13c9747
Заключение
Настройка Matrix Synapse для Element X через MAS — это 30 минут Docker и пара YAML, после чего ваша группа получит чаты, звонки и конференции лучше Telegram. Нативный MatrixRTC уже работает стабильно, забудьте Jitsi. Начните с тестового стека, мигрируйте — и наслаждайтесь децентрализацией. Вопросы? Комьюнити Matrix ждёт.