Композиция: талисман NordBastion — белый медведь — в тактической скандинавской броне стоит перед полупрозрачным хранилищем с шифровыми ячейками, подсвеченными голубым, нити федерации сплетаются между силуэтами далёких крепостей через фьордную ночь, логотип Matrix слабо выгравирован на двери хранилища, северное сияние над головой
Сценарий · Домашний сервер Matrix · Обновлено в 2026 году

Ваш собственный домашний сервер Matrix.
Сквозное шифрование. Федерация. Скандинавия. Не подлежит запросу.

Synapse + Postgres + Element на Ravelin за $23,90/мес. Ваш домашний сервер передаёт и федерируется; он не может читать свой собственный E2E-трафик; скандинавская юрисдикция означает, что никто не может вежливо попросить его начать пытаться.

Коротко
  • 01

    Ravelin за $23,90/мес комфортно тянет хорошо федерированный Synapse на ~100 комнат — Postgres, Redis, воркеры Synapse, кэш состояния комнат, всё на одной машине.

  • 02

    Сквозное шифрование структурно — домашний сервер передаёт шифротекст, который не может расшифровать. Регистрация админа без KYC означает, что и оператор не несёт бумажного следа.

  • 03

    Скандинавская юрисдикция + отсутствие журналов по замыслу + безлимитный аплинк. Федерационный обмен для активного набора комнат — это реальный объём; здесь он не выставляется в счёт отдельно.

Зачем это делать

Зачем вообще самостоятельно размещать домашний сервер.

Присоединиться к matrix.org — правильный ответ для большинства людей. Запуск собственного домашнего сервера — правильный ответ, когда Ваш хэндл, Ваше членство в комнатах и метаданные Ваших сообщений не должны жить на чужой административной панели. Протокол федерирован, шифрование сквозное; недостающий кусок — «кто контролирует машину, к которой привязан мой аккаунт», и ответ существенно меняет модель угроз.

Модель федерации Matrix щедра: любой домашний сервер может говорить с любым другим, комнаты охватывают серверы, шифрование следует за пользователем, и нет требования центрального каталога для участия. Как только Ваш домашний сервер запущен и проверен через federation tester, Ваш аккаунт — первоклассный гражданин сети — такой же, как @user:matrix.org или @user:mozilla.org, только на Вашем домене.

Операционная история Synapse хорошо протоптана: upstream-шаблон Docker Compose, Postgres для состояния, Redis для пула воркеров, опциональные шардированные воркеры для высокообъёмной федерации. Ничего из этого не ново; всё задокументировано; режимы отказа известны.

Правильный вопрос — не «самостоятельный хостинг или matrix.org» в абстракции, а «хочу ли я, чтобы моя федерационная идентичность была закреплена за машиной, которую администрирую я». Если ответ — да, остальная часть этой страницы — рецепт.

Подбор размера

Правильный тариф NordBastion для задачи.

Для сообщественного домашнего сервера на ~100 комнат (смесь небольших DM и горстки хорошо населённых публичных комнат, федерированных вовне) правильный тариф — Ravelin ($23,90/мес, 8 vCPU, 16 ГБ, 480 ГБ NVMe). Python-путь данных Synapse прожорлив до RAM при федерационных всплесках — популярная комната, к которой присоединяется сервер с 50 тыс. пользователей, создаёт временный пик state-resolution, требующий запаса. 16 ГБ поглощают это комфортно.

Сверх ~1000 активных комнат, или когда федерационный трафик заставляет Synapse нуждаться в режиме шардированных воркеров, тариф Bulwark даёт Вам ядра для запуска выделенных federation_sender, synchrotron и event_persister-воркеров — это история горизонтального масштабирования Synapse в пределах одной машины. На этом этапе Вы также захотите подумать, не должен ли Postgres быть на своём отдельном VPS; мы можем обсудить схему с двумя машинами.

Для личного домашнего сервера — Ваш аккаунт, несколько DM, пара небольших приватных комнат — Garrison ($11,90/мес, 4 vCPU, 8 ГБ, 240 ГБ NVMe) более чем достаточно. Conduit на Sentinel технически возможен для конфигурации с одним пользователем, но Synapse на Garrison даёт Вам пространство для роста без миграции.

Чем ни один из них не является: предложением Managed-Matrix на тысячу арендаторов. NordBastion построен для оператора, запускающего свой домашний сервер для людей, которых он знает, — а не для продажи Matrix-аккаунтов незнакомцам.

Настройка

От свежего VPS до первой федерированной комнаты. Шесть шагов, около девяноста минут.

Скелетный набросок — upstream-документация element-hq по Synapse остаётся авторитетным источником по тюнингу homeserver.yaml и режиму воркеров.

  1. 01

    Docker + Compose

    Официальный движок Docker + плагин Compose v2. Element-HQ публикует поддерживаемый образ Synapse, который Вы можете закрепить по тегу.

    curl -fsSL get.docker.com \
      | sh
    apt install \
      docker-compose-plugin
  2. 02

    Сгенерируйте homeserver.yaml

    Одноразовый режим «generate» образа Synapse записывает стартовую конфигурацию, привязанную к Вашему server_name. На том же шаге отключите открытую регистрацию.

    docker run --rm \
      -v ./data:/data \
      -e SYNAPSE_SERVER_NAME=example.org \
      matrixdotorg/synapse:latest \
      generate
  3. 03

    Подключите Postgres + Redis

    Postgres — это продакшен-хранилище; SQLite только для тестирования. Redis требуется для пула воркеров, даже если Вы начинаете в однопроцессном режиме.

    # добавьте в docker-compose.ymlpostgres: postgres:15
    redis:    redis:7-alpine
    # затем в homeserver.yaml: driver базы данных psycopg2
  4. 04

    Опубликуйте well-known

    Два небольших JSON-файла по /.well-known/matrix/{client,server} на Вашем корневом домене. Отдаются как application/json с CORS Access-Control-Allow-Origin: *.

    # /.well-known/matrix/server
    {"m.server": "matrix.example.org:443"}
    # /.well-known/matrix/client
    {"m.homeserver":{"base_url":"https://matrix.example.org"}}
  5. 05

    Проверьте федерацию

    federationtester.matrix.org проверяет well-known, цепочку сертификатов, TLS-рукопожатие, рукопожатие версий и обмен ключами. Не приглашайте пользователей, пока всё не станет зелёным.

    # вставьте server_name в:# federationtester.matrix.org
    # все проверки должны быть зелёными
  6. 06

    Создайте админа через shared secret

    registration_shared_secret в homeserver.yaml + CLI register_new_matrix_user = админский аккаунт без необходимости когда-либо открывать публичную регистрацию.

    docker compose exec synapse \
      register_new_matrix_user \
      -a -c /data/homeserver.yaml \
      http://localhost:8008
Почему именно этот хостинг для этой задачи

Почему именно NordBastion для домашнего сервера Matrix.

Без KYC

Админы E2E-инфраструктуры не должны нести бумажный след.

Сквозное шифрование — это сильное утверждение. Оно подрывается в тот момент, когда хостинг релея знает по биллинговой KYC, какое именно юридическое лицо подняло этот домашний сервер. Регистрация без KYC с биллингом только в криптовалюте делает административные метаданные релея настолько же непрозрачными, как и метаданные полезной нагрузки релея: «предоплаченный баланс за этим email», и точка.

Скандинавская юрисдикция

Пояс и подтяжки.

Сквозное шифрование Matrix уже арифметически препятствует релею читать полезную нагрузку. Скандинавская юрисдикция добавляет второй слой: никакого мандата на хранение данных, заставляющего хостинг логировать метаданные соединений, никакого действующего законодательства о сканировании на стороне клиента и публикуемый warrant canary, описывающий, что произошло бы, если бы кто-то попытался изменить эту математику (мы не можем). Два слоя «нет» бьют один.

Безлимитные 1 Гбит/с

Федерация — это объём.

Федерированный домашний сервер в нескольких хорошо населённых публичных комнатах отправляет много мелких событий федерации — каждое присоединение, каждое изменение состояния, каждая квитанция о сообщении — это раздача на N серверов. Совокупный объём не огромен, но устойчив, и любой хостинг, тарифицирующий по ГБ-исходящего, нервирует оператора. Безлимитный аплинк убирает когнитивную нагрузку: федерируйтесь столько, сколько требует протокол; счёт остаётся тем же.

Вердикт

Запустите его на Ravelin. Отключите открытую регистрацию. Дайте федерации сделать остальное.

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

NordBastion имеет мнение по поводу частей, важных для этой конкретной задачи, — регистрация админа без KYC, скандинавская юрисдикция, безлимитный аплинк, — и намеренно обыкновенен во всём остальном. Docker — это Docker. Synapse — это Synapse. Element-HQ поставляет образ; мы поставляем машину.

Возьмите вечер, пройдите шесть шагов, проверьте через federation tester, создайте админа. Домашний сервер переживёт этот вечер на годы.

FAQ · Matrix на VPS

Вопросы, которые возникают первыми.

Восемь вопросов, с которыми админы Matrix реально сражаются перед docker compose up. Well-known-делегирование идёт под номером два не просто так.

Зачем сквозное шифрование, если сервер уже мой?

Потому что сервер — это одна машина, а сообщения живут вечно. Любой, у кого есть доступ к диску, — случайный снимок, криминалистический образ, со-админ, ставший изгоем, преемник, когда Вы в конце концов передадите машину, — видит открытый текст, если комната не зашифрована. Сквозное шифрование сохраняет полезность домашнего сервера (он передаёт, федерируется, предоставляет UI), делая полезную нагрузку сообщений арифметически нечитаемой ни для чего, кроме ключей устройств участников. Самостоятельный хостинг и E2E — это пояс + подтяжки: Вы контролируете релей И релей не может читать свой собственный трафик.

Что такое well-known-делегирование и почему все на нём спотыкаются?

Matrix позволяет Вашему домену для пользователей (example.org) отличаться от домена для сервера (matrix.example.org), отдавая два небольших JSON-файла по адресам https://example.org/.well-known/matrix/client и /.well-known/matrix/server. Клиентский говорит Element, какой URL домашнего сервера использовать; серверный говорит федерирующимся пирам, где достучаться до Synapse для s2s API. Люди спотыкаются на трёх вещах: отдают файлы с неверным Content-Type, CORS не разрешает другим инстансам их получать, или серверный файл указывает на порт, который файрвол на самом деле не открывает. Проверьте через federationtester.matrix.org перед публикацией комнаты.

Synapse, Dendrite или Conduit — имеет ли это значение для хостинга?

Synapse (Python, эталонная реализация) — это то, что запускают 95 % публичных домашних серверов; это наиболее протестированный федерационный пир и единственный, поддерживающий каждую функцию, определённую спецификацией. Conduit (Rust, один бинарник, RocksDB) и Dendrite (Go, микросервисы) легче — Conduit знаменит тем, что запускается на Raspberry Pi. Для публичного федерированного домашнего сервера с пользователями ответ — Synapse; для любительского сервера на одного пользователя Вы можете экспериментировать с Conduit на Sentinel. Этот материал предполагает Synapse.

Как мне избежать спама от публичных регистраций?

Установите enable_registration: false в homeserver.yaml и положитесь на registration_shared_secret для создания аккаунтов через админ-API тем людям, которым Вы действительно этого хотите. Альтернативно — enable_registration_without_verification: false в сочетании с жёстко прошитым приглашением через shared-secret. Федерация Matrix достаточно большая, чтобы любой домашний сервер с открытой регистрацией стал фермой спам-аккаунтов за дни; канонический ответ — «регистрация курируется админом, федерация открыта».

Element, Cinny, SchildiChat или другие — есть ли домашнему серверу до этого дело?

Нет — Matrix C-S API является контрактом протокола, и каждый соответствующий клиент говорит с каждым соответствующим сервером. Element — это вариант по умолчанию и наиболее протестированный; Cinny — это более лёгкий веб-клиент, который некоторые самостоятельные хостеры предпочитают встраивать; SchildiChat — это форк Element с UI в стиле Telegram; FluffyChat нацелен на mobile-first. Домашний сервер не видит и не заботится, на каком клиенте пользователь. Выберите то, что предпочитает Ваше сообщество, поменяйте позже — никакой миграции не нужно.

Как работает резервное копирование сквозных ключей?

У каждого пользователя Matrix есть набор ключей устройств (на устройство, эфемерные) и кросс-подписывающий ключ (на аккаунт, долгоживущий). Мастер-ключ кросс-подписания — это то, что позволяет пользователю добавить новое устройство без повторной верификации всего; потеряйте его — и пользователь окажется заблокированным от исторических E2E-сообщений, пока не перевыпустит ключи. Функция Element «Secure Backup» шифрует кросс-подписывающий ключ парольной фразой или ключом восстановления и хранит его на стороне сервера как непрозрачный шифротекст — домашний сервер держит блок данных, но не может его прочитать. Задокументируйте шаг с ключом восстановления для Ваших пользователей при регистрации; это единственная часть UX, предотвращающая избегаемые блокировки.

Могу ли я мигрировать комнату с другого домашнего сервера на свой?

Не напрямую — комнаты являются федерированными объектами, а не серверными записями, поэтому «переместить» комнату означает её обновить (Matrix-нативный примитив, создающий комнату-преемника и заменяющий старую заглушкой с перенаправлением) и пригласить тот же набор участников. ID комнаты меняется, алиас может последовать. Прямая миграция аккаунтов пользователей между домашними серверами — давний пункт в списке желаний Matrix (переносимость аккаунтов в дорожной карте спецификации); сегодня Вы создаёте новый аккаунт на своём сервере и просите людей добавить Вас заново.

Какова история обработки злоупотреблений для федерированного домашнего сервера?

У Matrix есть примитивы модерации на уровне комнаты (kick, ban, redact, админы комнаты) и примитивы модерации на уровне сервера (denylist через Synapse module API, бот MJOLNIR для управляемых denylist, режим allowlist на уровне сервера для федерации только по приглашению). Для сообщественного домашнего сервера стандартный ответ — подписка на denylist в стиле MJOLNIR: Вы делегируете идентификацию спама/злоупотреблений поддерживаемым denylist-сообществам и применяете политику локально. Ваш суверенитет: Вы выбираете, какие denylist соблюдать.