Гид по технологиям

Как установить Matrix Synapse на Debian VPS

9 min read Self-hosting Обновлено 04 Dec 2025
Установка Matrix Synapse на Debian VPS
Установка Matrix Synapse на Debian VPS

Matrix Protocol Featured

Оглавление

  • Что такое протокол Matrix?
  • Зачем использовать Matrix?
  • Хостинг собственного сервера Matrix
    1. Установка Synapse
    1. Настройка Synapse и Nginx
    1. Настройка SSL для Synapse
    1. Создание пользователя в Synapse
  • Критерии приёмки
  • Безопасность и рекомендации по эксплуатации
  • Альтернативные подходы
  • Отладка и часто задаваемые вопросы
  • Словарь терминов
  • Контрольный список для ролей
  • Короткая методика восстановления после инцидента

Что такое протокол Matrix?

Matrix — открытый набор сетевых протоколов для обмена сообщениями в реальном времени. Это похожий по идее открытый стандарт, как HTTP, но для федеративного обмена сообщениями. Ключевые элементы в одной строке:

  • Synapse — эталонная реализация сервера (написана на Python). Служит отправной точкой для деплоя и разработки.
  • Клиенты — приложения (веб, десктоп, мобильные), которые подключаются к серверу.
  • Федерация — сервера разговаривают друг с другом, поэтому пользователи разных серверов могут обмениваться сообщениями.

Matrix Server 29 Digitalocean Server

Зачем использовать Matrix?

Кратко:

  • Полный контроль над данными: вы владеете сервером и его базой.
  • Федерация: возможность общения с пользователями других серверов.
  • Безопасность: поддержка end-to-end шифрования (E2EE) в протоколе.
  • Гибкость: можно выбрать клиент, интеграции и саму реализацию сервера.

Когда это полезно:

  • Организациям, которым важен контроль над сообщениями и метаданными.
  • Сообществам, требующим федерации и взаимодействия между доменами.
  • Тем, кто хочет иметь автономный, отказоустойчивый сервис.

Хостинг собственного сервера Matrix

Требования перед установкой:

  • Доменное имя (FQDN) для вашего экземпляра — Synapse ожидает валидный домен.
  • Внешне доступный хост: VPS с публичным IP или хост в сети с проброшенным портом.
  • Root-доступ или sudo на сервере для установки пакетов.
  • Резервное копирование и мониторинг на будущее.

В этой инструкции мы рассматриваем Debian на VPS (пример — DigitalOcean). Приведённые команды рассчитаны на Debian/Ubuntu-подобную систему.

1. Установка Synapse

Подключитесь к VPS и установите зависимости:

sudo apt update
sudo apt install -y lsb-release wget apt-transport-https ca-certificates gnupg

По умолчанию в репозиториях Debian нет пакетов Synapse. Добавим официальный репозиторий Matrix и ключи разработчиков.

  1. Импортируйте GPG-ключ архива:
sudo wget -O /usr/share/keyrings/matrix-org-archive-keyring.gpg https://packages.matrix.org/debian/matrix-org-archive-keyring.gpg
  1. Добавьте репозиторий Synapse в APT sources:
echo "deb [signed-by=/usr/share/keyrings/matrix-org-archive-keyring.gpg] https://packages.matrix.org/debian/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/matrix-org.list
  1. Обновите кэш пакетов и установите Synapse (python3-версия):
sudo apt update
sudo apt install -y matrix-synapse-py3

Во время установки установщик попросит вас указать доменное имя сервера (server_name). Укажите FQDN, например yetanothermatrixserver.xyz.

Также установщик предложит отправку статистики разработчикам. Для приватного сервера выберите «No».

Matrix Server 12 Install Dependencies Matrix Server 13 Add Matrix Repo Keys Matrix Server 14 Add Matrix Repository

2. Настройка Synapse и Nginx

Synapse по умолчанию слушает внутренний HTTP-порт (8008). Для внешнего доступа обычно ставят Nginx как обратный прокси, чтобы выполнить SSL-termination и обеспечить ACME-challenges для certbot.

  1. Установите Nginx:
sudo apt install -y nginx

Matrix Server 18 Install Nginx

  1. Создайте (или отредактируйте) конфигурацию для вашего домена. Если вы хотите редактировать файл по умолчанию:
sudo touch /etc/nginx/sites-available/default
sudo nano /etc/nginx/sites-available/default

Пример минимальной конфигурации обратного прокси для Synapse:

server {
    server_name yetanothermatrixserver.xyz;
    listen 80;
    listen [::]:80;

    location / {
        proxy_pass http://localhost:8008;
    }

    location ~* ^(/_matrix|/_synapse/client) {
        proxy_pass http://localhost:8008;
        proxy_set_header X-Forwarded-For $remote_addr;
        client_max_body_size 50M;
    }

    location /.well-known/matrix/server {
        return 200 '{"m.homeserver": {"base_url": "https://yetanothermatrixserver.xyz"}}';
        default_type application/json;
        add_header Access-Control-Allow-Origin *;
    }
}

Объяснение ключевых мест:

  • server_name — ваш FQDN.
  • listen 80 / [::]:80 — прием IPv4 и IPv6.
  • proxy_pass — перенаправление трафика на localhost:8008, где работает Synapse.
  • /.well-known/matrix/server — запись, необходимая для некоторых федеративных сценариев и автоконфигурации.

Перезагрузите Nginx и проверьте синтаксис:

sudo nginx -t
sudo systemctl restart nginx

Matrix Server 19 Sample Nginx Config

3. Настройка SSL для Synapse

Synapse сам по себе не управляет сертификатами для HTTPS фронта — это делает Nginx, поэтому используйте Certbot для автоматического получения и продления Let’s Encrypt сертификатов.

  1. Установите certbot и плагин для nginx:
sudo apt install -y certbot python3-certbot-nginx
  1. Запустите certbot и получите сертификат для вашего домена:
sudo certbot --nginx -d yetanothermatrixserver.xyz

После успешного получения сертификата проверьте, что Nginx перезапустился и сайт доступен по HTTPS.

Если нужно вручную создать симлинк для включения конфигурации и перезапустить сервисы:

sudo ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/
sudo systemctl restart nginx

Matrix Server 20 Install Certbot Matrix Server 21 Install Success

4. Создание пользователя в Synapse

Для локального управления аккаунтами удобно включить предварительно общий секрет (registration_shared_secret). Это позволяет создавать и удалять учётные записи из командной строки.

  1. Сгенерируйте случайную строку 32 символа (пример):
cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w32 | head -n1

Matrix Server 22 Pre Shared Secret

  1. Откройте файл конфигурации homeserver.yaml, который обычно находится в /etc/matrix-synapse/:
sudo nano /etc/matrix-synapse/homeserver.yaml

Найдите строку registration_shared_secret: и поставьте туда сгенерированную строку (раскомментируйте, если нужно). Сохраните файл и перезапустите Synapse:

sudo systemctl restart matrix-synapse

Matrix Server 23 Homeserver Yaml Secret

  1. Создайте пользователя через утилиту регистрации:
register_new_matrix_user -c /etc/matrix-synapse/homeserver.yaml http://localhost:8008

Команда запросит имя пользователя, пароль и спросит, сделать ли пользователя админом (admin). Указывайте аккуратно — admin-права даются для управления сервером.

Matrix Server 24 First User Name Matrix Server 25 First User Password Matrix Server 26 First User Admin

Поздравляем — базовый Synapse работает. Вы можете подключиться клиентом Element (веб/десктоп/мобильный) или любым другим клиентом Matrix.

Matrix Server 27 Element Connected

Критерии приёмки

  • Сервер отвечает на HTTPS-запросы на вашем домене.
  • Synapse успешно запущен и слушает localhost:8008.
  • Создан хотя бы один пользователь, и можно войти в Matrix-клиент.
  • Certbot настроен и автоматическое обновление сертификата работает (dry-run не возвращает ошибок).

Пример проверки:

sudo systemctl status matrix-synapse
curl -k https://yetanothermatrixserver.xyz/_matrix/client/versions
sudo certbot renew --dry-run

Безопасность и рекомендации по эксплуатации

Важно поддерживать сервер в рабочем и безопасном состоянии. Рекомендации:

  • Регулярные обновления: apt update && apt upgrade.
  • Резервное копирование базы данных (Postgres при использовании в продакшне) и конфигов (/etc/matrix-synapse/).
  • Ограничение доступа к системным учетным записям через SSH (ключи, отключение root-login по паролю).
  • Мониторинг диска, памяти и логов (journalctl -u matrix-synapse).
  • Настройка fail2ban или iptables/nftables для защиты от брутфорса.
  • Использование HTTPS всегда и отключение незащищённых точек доступа.
  • При включении регистраций (enable_registration: true) включите CAPTCHA или подтверждение по email.

Безопасное хранение ключей и секретов:

  • registration_shared_secret храните с ограниченным доступом (chmod 600 на конфиг).
  • Не храните резервные копии с открытыми паролями в публичных репозиториях.

Альтернативные подходы

Если вам не подходит установка Synapse из системных пакетов — есть другие варианты:

  1. Docker / Docker Compose
  • Быстрое развёртывание и изоляция. Подходит для тестов и CI. Обратите внимание на persistent volumes для БД и конфигов.
  1. Kubernetess
  • Для крупных инсталляций с автоскейлингом и высокой доступностью. Требует продуманной архитектуры хранения состояния и базы.
  1. Лёгкие/альтернативные серверы Matrix
  • Dendrite (Go) — проект от Matrix, ориентирован на масштабируемость.
  • Conduit (Rust) — минималистичный, экономит ресурсы и быстрее стартует, но может не поддерживать все возможности Synapse.
  1. Managed-хостинг
  • Некоторые провайдеры предлагают готовые облачные Matrix-инстансы (опция для команд, которые не хотят управлять infra).

Когда выбирать Synapse из APT:

  • Простота поддержки и обновлений пакетов.
  • Хорошо подходит для одиночного сервера или небольших сообществ.

Ментальные модели и эвристики

  • «Федерация как почта»: думайте о каждом сервере как о почтовом провайдере — он хранит письма локально, но пересылает сообщения другим серверам.
  • «Nginx = фасад безопасности»: используйте Nginx для HTTPS, rate-limiting и ACME-контроля.
  • «Минимум привилегий»: админские аккаунты выдавайте по необходимости.

Роль‑ориентированные чеклисты

Администратор сервера (перед запуском):

  • Зарегистрирован домен и DNS A/AAAA указывает на VPS.
  • Доступ по SSH настроен (ключи).
  • Установлен Synapse и Nginx.
  • Получен LetsEncrypt сертификат.
  • Создан админ-аккаунт.

Оператор/DevOps (эксплуатация):

  • Автоматическое обновление certbot настроено.
  • Настроены резервные копии БД и конфигов.
  • Мониторинг сервиса и алерты в случае падения.

Разработчик/интегратор:

  • Документирован API-эндпоинт и webhook-ы.
  • Тестовая учётная запись для интеграций.

Короткая методика восстановления после инцидента

  1. Если Synapse упал:
  • Проверить статус: sudo systemctl status matrix-synapse
  • Просмотреть логи: sudo journalctl -u matrix-synapse -n 200
  • Проверить свободное место: df -h
  1. Если Nginx не принимает HTTPS:
  • Проверить конфигурацию: sudo nginx -t
  • Проверить сертификаты: sudo certbot certificates
  • Принудительный перезапуск: sudo systemctl restart nginx
  1. Если база данных повреждена:
  • Восстановление из последней резервной копии.
  • Перезапуск с сохранением WAL/логов (в зависимости от СУБД).

Тесты и критерии приёмки (короткая проверка)

Отладка: типичные проблемы и решения

Проблема: certbot не может получить challenge.

  • Решение: убедитесь, что DNS указывает на IP и порты 80/443 открыты.

Проблема: Nginx проксирует, но клиент жалуется на отсутствующие CORS или недоступность.

  • Решение: проверьте location /.well-known/matrix/server и заголовки, убедитесь, что proxy_set_header правильно установлен.

Проблема: federation не работает с другими серверами.

  • Решение: проверьте DNS записи других серверов и убедитесь, что у вас корректный PTR/A-записи и порты открыты.

Политика приватности и GDPR-заметки

  • Если вы запускаете сервер для пользователей в ЕС, убедитесь, что у вас есть политика обработки персональных данных: хранение логов, сроки хранения, доступ пользователей к своим данным.
  • При включении внешней регистрации контролируйте подтверждение по email или CAPTCHA, чтобы предотвратить спам-ботов.
  • Зашифрованные (E2EE) комнаты защищают содержимое сообщений, но метаданные (кто с кем связывается, временные метки) остаются на сервере — планируйте retention и аудит.

Миграция и совместимость

  • При переносе Synapse на другой хост экспортируйте базу данных и конфигурацию (/etc/matrix-synapse/, homeserver.db или dump Postgres).
  • Совместимость клиентов: большинство клиентов поддерживают Synapse, но фичи E2EE и плагины могут вести себя по-разному.

Словарь терминов (1‑строчные определения)

  • Synapse — основная серверная реализация Matrix на Python.
  • Federation — обмен событиями между серверами Matrix.
  • Homeserver — сервер, хранящий аккаунты и комнаты вашего домена.
  • Client API — HTTP API, которым пользуются клиенты для доступа к серверу.

Часто задаваемые вопросы

Можно ли запускать Synapse в поддомене?

Да. Убедитесь, что DNS поддомена указывает на ваш сервер и укажите поддомен в server_name в конфигурации Nginx.

Входит ли в Synapse web‑клиент?

Нет. Synapse не содержит веб‑клиент по умолчанию. Для доступа используйте Element, Ditto или другие клиенты.

Как включить внешнюю регистрацию пользователей?

В homeserver.yaml установите enable_registration: true. Для защиты от ботов включите CAPTCHA или подтверждение по email.

Шаблоны и примеры

Nginx-конфигурация, которую можно скопировать (с заменой yourdomain на ваш домен):

server {
    server_name yourdomain.example;
    listen 80;
    listen [::]:80;

    location / {
        proxy_pass http://127.0.0.1:8008;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    location /.well-known/matrix/server {
        return 200 '{"m.homeserver": {"base_url": "https://yourdomain.example"}}';
        default_type application/json;
    }
}

Команды для проверки состояния:

sudo systemctl status matrix-synapse
sudo journalctl -u matrix-synapse -f
curl -k https://yourdomain.example/_matrix/client/versions

Заключение

Вы установили и настроили базовый Synapse-сервер на Debian VPS: добавили репозиторий, установили Synapse, настроили Nginx как обратный прокси, получили SSL через Let’s Encrypt и создали первого пользователя. Дальше советую настроить автоматическое резервное копирование базы, мониторинг, и продумать политику регистрации пользователей и хранения данных.

Image credit: Message speech bubble symbol by 123RF


Короткая аннотация для социальных сетей (100–200 слов):

Запустите собственный Matrix-сервер на Debian VPS: полное пошаговое руководство от добавления репозитория и установки Synapse до настройки Nginx и получения бесплатного SSL от Let’s Encrypt. В статье есть готовые конфигурации, команды для создания пользователей и разделы по безопасности, миграции и отладке. Подходит для личного использования и небольших команд — вы получаете контроль над данными и возможность федерации с другими серверами Matrix.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Добавление приложений на Apple Watch
Руководство

Добавление приложений на Apple Watch

Приостановить обновления Windows 10 на 35 дней
How-to

Приостановить обновления Windows 10 на 35 дней

HLOOKUP в Google Таблицах: горизонтальный поиск
Google Таблицы

HLOOKUP в Google Таблицах: горизонтальный поиск

Ошибка обновления Windows 11 0x800f0831 — как исправить
Windows

Ошибка обновления Windows 11 0x800f0831 — как исправить

Как войти и пользоваться веб‑версией Revolut
Финансы

Как войти и пользоваться веб‑версией Revolut

Устранение проблем Google Home
Smart Home

Устранение проблем Google Home