посты

Альтернатива Telegram в России: запуск собственного Matrix-сервера через Docker Compose

Альтернатива Telegram в России: запуск собственного Matrix-сервера через Docker Compose

Предыстория:

На фоне ограничений, блокировок и нестабильной работы популярных мессенджеров в России всё больше пользователей начинают искать альтернативы Telegram, WhatsApp, Discord и другим централизованным платформам. Особенно востребованы решения, которые не зависят от одной компании, позволяют самостоятельно контролировать инфраструктуру и которые значительно сложнее ограничить или полностью заблокировать целиком.

Одним из таких решений является Matrix -- открытый федеративный протокол для обмена сообщениями в реальном времени. В отличие от классических мессенджеров, где вся система целиком принадлежит одному оператору, сеть Matrix состоит из множества независимых серверов, которые взаимодействуют между собой по единым правилам.

Каждый такой сервер называется homeserver. На нём могут регистрироваться пользователи, храниться данные, обслуживаться комнаты, сообщения и звонки. При этом пользователи разных серверов могут свободно общаться друг с другом в рамках общей сети. Именно такая архитектура делает Matrix заметно более устойчивым к точечным блокировкам, отказам отдельных узлов и зависимости от одного поставщика сервиса.

Поэтому, если вам нужна альтернатива Telegram в России, безопасный мессенджер, альтернатива MAX или просто собственная независимая система связи для семьи, команды или сообщества, Matrix -- один из самых интересных и практичных вариантов.

Этот гайд рассчитан на тех, кто в целом знаком с Linux, DNS и Docker, но хочет пройти путь с нуля и не пропустить важные детали при самостоятельном запуске сервера.

Что получится в итоге:

После выполнения этого гайда у вас будет:

  • собственный Matrix-сервер на домашнем железе;
  • рабочая федерация;
  • поддержка звонков через Element X / Element Call;
  • регистрация пользователей через Synapse Admin;
  • независимая база для личного, семейного или командного общения.

Что нужно подготовить заранее:

1. Статический публичный IP

Проверьте в личном кабинете провайдера, доступна ли услуга статического публичного IP-адреса. У многих провайдеров она подключается отдельно.

2. Домен

Купите домен у любого провайдера доменов. Для пользователей из России это может быть, например, reg.ru, но в целом подойдёт любой удобный вариант. Сам домен обычно стоит недорого, однако с продлением и дополнительными услугами общая сумма за год может быть выше базовой цены.

3. Стабильное подключение сервера к интернету

Лучше всего использовать проводное подключение к роутеру по RJ-45. Также заранее узнайте локальный IP-адрес сервера в домашней сети, например:

192.168.0.172

4. Сервер и доступ по SSH

Для запуска Matrix подойдёт практически любой компьютер, включая старый ноутбук или компактный домашний сервер.

Рекомендации:

  • лучше использовать Ubuntu Server или другой Debian-based дистрибутив;
  • Windows в качестве хоста для такого сценария не рекомендуется;
  • доступ к серверу должен быть настроен по SSH.

Пример подключения:

ssh user@server_ip

5. Docker и Docker Compose

На сервере должны быть установлены Docker и Docker Compose. Для такого сценария это один из самых простых и удобных способов развернуть стек Matrix-сервисов.

Примечание: в этом гайде предполагается, что у вас уже есть рабочий Nginx Proxy Manager.


Шаг 1. Настройка DNS в Cloudflare:

1.1 NS-записи

У провайдера вашего домена пропишите NS-серверы Cloudflare, которые были выданы для вашей зоны.

Параметры обычно выглядят так:

  • Type: NS
  • Name: @ или корень зоны
  • Content: NS-серверы от Cloudflare
  • Proxy: DNS only
  • TTL: Auto

1.2 Запись для Matrix

Создайте CNAME-запись:

  • Type: CNAME
  • Name: matrix
  • Target: example.com -- ваш основной домен
  • Proxy status: DNS only
  • TTL: Auto

Эта запись нужна для основного Matrix-хоста:

matrix.example.com

Именно к нему будут подключаться клиенты.

cname-record

1.3 Запись для звонков (RTC)

Создайте A-запись:

  • Type: A
  • Name: matrixrtc
  • IPv4: <ваш_публичный_IP>
  • Proxy status: DNS only
  • TTL: Auto

Эта запись понадобится для сервиса звонков.

a-record

Для пользователей из России режим DNS only особенно важен: при проксировании через Cloudflare часть пользователей может сталкиваться с проблемами доступа к серверу без VPN.


Шаг 2. Настройка Nginx Proxy Manager:

В этой конфигурации понадобятся два proxy host:

  • matrix.example.com
  • matrixrtc.example.com

2.1 Proxy Host для matrix.example.com

Во вкладке Details укажите:

  • Domain Names: matrix.example.com
  • Scheme: http
  • Forward Hostname / IP: локальный IP вашего сервера, например 192.168.0.172
  • Forward Port: 8008
  • Access List: Publicly Accessible
  • Cache Assets: ON
  • Block Common Exploits: ON
  • Websockets Support: ON

nginx-matrix-detales

Во вкладке Custom Locations добавьте две записи.

Location 1: /.well-known/matrix/server

Параметры:

  • Scheme: http
  • Forward Hostname / IP: 127.0.0.1
  • Forward Port: 65535

В поле Custom Nginx Configuration вставьте:

default_type application/json;
add_header Access-Control-Allow-Origin *;

return 200 '{"m.server":"matrix.example.com:443"}';

nginx-matrix-location-1

Location 2: /.well-known/matrix/client

Параметры:

  • Scheme: http
  • Forward Hostname / IP: 127.0.0.1
  • Forward Port: 65535

В поле Custom Nginx Configuration вставьте:

default_type application/json;
add_header Access-Control-Allow-Origin *;

return 200 '{
  "m.homeserver": { "base_url": "https://matrix.example.com" },
  "org.matrix.msc4143.rtc_foci": [
    {
      "type": "livekit",
      "livekit_service_url": "https://matrixrtc.example.com/livekit/jwt"
    }
  ]
}';

nginx-matrix-location-2

Эти эндпоинты нужны для следующего:

  • /.well-known/matrix/server сообщает федерации, куда обращаться для связи с вашим сервером;
  • /.well-known/matrix/client сообщает клиентам Matrix, какой сервер использовать и где расположен сервис звонков.

Во вкладке SSL включите:

  • сертификат: wildcard или обычный сертификат для вашего домена, например *.example.com
  • Force SSL: ON
  • HTTP/2 Support: ON
  • HSTS Enabled: ON
  • HSTS Subdomains: OFF

nginx-matrix-ssl


2.2 Proxy Host для matrixrtc.example.com

Во вкладке Details укажите:

  • Domain Names: matrixrtc.example.com
  • Scheme: http
  • Forward Hostname / IP: локальный IP сервера, например 192.168.0.172
  • Forward Port: 7880
  • Access List: Publicly Accessible
  • Websockets Support: ON
  • Cache Assets: OFF
  • Block Common Exploits: OFF

nginx-matrixrtc-details

Для matrixrtc Custom Locations не требуются.

Во вкладке SSL включите:

  • сертификат: *.example.com
  • Force SSL: ON
  • HTTP/2 Support: ON
  • HSTS Enabled: OFF

nginx-matrixrtc-ssl


Шаг 3. Проброс портов на роутере:

На вашем роутере необходимо открыть и пробросить порты на локальный IP сервера.

В рассматриваемом примере нужны:

  • 7881/TCP192.168.0.172:7881 -- LiveKit
  • 50100-50200/UDP192.168.0.172:50100-50200 -- медиатрафик LiveKit
  • 5349/TCP192.168.0.172:5349 -- TURN over TLS
  • 3478/UDP192.168.0.172:3478 -- TURN

Важно понимать, что интерфейс у каждого роутера свой, однако сам принцип настройки везде одинаков: внешний порт должен перенаправляться на внутренний адрес и порт вашего сервера.

router-port-forvarding


Шаг 4. Запуск Matrix-стека:

В первую очередь вам стоит скачать docker compose конфиг (GitHub repo):

git clone [email protected]:inne-dev/matrix-server.git

Далее переходим в папку с проектом:

cd matrix-server

Для быстрого старта используйте шаблон окружения:

cp .env.example .env

После этого отредактируйте файл .env и обязательно укажите:

  • MATRIX_DOMAIN
  • надёжные секреты для:

    • POSTGRES_PASSWORD
    • SYNAPSE_*_SECRET
    • TURN_PASSWORD
    • LIVEKIT_SECRET

Затем сгенерируйте runtime-конфиги:

./scripts/render-configs.sh

После генерации конфигурации поднимите сервисы:

docker compose up -d

Для проверки состояния контейнеров используйте:

docker compose ps
docker compose logs --tail=100 synapse

Шаг 5. Создание первого пользователя:

После запуска стека создайте первого пользователя с помощью встроенной утилиты Synapse из запущенного контейнера:

docker exec -it synapse register_new_matrix_user \
  -c /data/homeserver.yaml \
  http://localhost:8008

Далее мастер создания пользователя в интерактивном режиме спросит:

  • имя пользователя;
  • пароль;
  • нужно ли выдать права администратора.

Шаг 6. Подключение клиентов:

В качестве клиентов можно использовать:

  • на смартфоне -- Element X
  • на компьютере -- Element Desktop

При входе укажите кастомный homeserver, например:

https://matrix.example.com

После этого вы сможете войти в свой аккаунт, подключиться к серверу и начать использовать собственную Matrix-инфраструктуру.


Кому подойдёт этот гайд:

Этот материал будет полезен, если вы ищете:

  • альтернативу Telegram в России;
  • безопасный мессенджер для личного использования;
  • альтернативу MAX;
  • open source мессенджер для команды или сообщества;
  • способ поднять свой мессенджер на домашнем сервере;
  • решение, которое не зависит от одной компании и/или патформы.

Итоги:

В результате вы получаете собственный независимый контур связи. Такой сервер можно использовать для личного общения, общения внутри семьи, небольших команд, закрытых сообществ или технических проектов, где важны контроль над инфраструктурой, автономность и предсказуемость работы.

Главное преимущество Matrix заключается в том, что это не централизованный мессенджер, полностью завязанный на одного оператора. Это открытая федеративная сеть, в которой вы можете развернуть собственный homeserver, самостоятельно управлять пользователями, подключать клиентов и при необходимости расширять систему дополнительными сервисами.

Если вам нужна альтернатива Telegram, безопасная альтернатива MAX, собственный мессенджер на домашнем сервере или просто более независимый способ поддерживать связь, Matrix выглядит одним из самых сильных доступных вариантов. Да, у такого подхода есть порог входа: нужно разобраться с DNS, сертификатами, обратным прокси, пробросом портов и базовой настройкой контейнеров. Но взамен вы получаете гибкость, независимость и контроль, которых нет у большинства потребительских платформ.


FAQ:

Matrix -- это альтернатива Telegram?

Да. Matrix можно рассматривать как полноценную альтернативу Telegram, особенно если для вас важны открытый протокол, возможность поднять собственный сервер и меньшая зависимость от одной компании.

Можно ли использовать Matrix в России?

Да. При наличии собственного homeserver, корректной настройки DNS, reverse proxy и федерации Matrix может использоваться как личный или командный мессенджер.

1

Комментарии

Оставить комментарий

Комментариев пока нет.