synapse-server-auto Matrix

Download the latest version of the modification

synapse-server-auto Matrix

Полная инструкция по развертыванию Synapse Server Auto

(с) AlexVDem Этот проект предназначен для автоматического развертывания полнофункционального домашнего сервера Matrix (Synapse) с поддержкой видеозвонков (LiveKit), веб-интерфейсом (Element) и автоматической настройкой прокси-сервера (Nginx).

1. Назначение и возможности

Скрипт setup.sh выполняет автоматическую конфигурацию всех компонентов системы:

  • Synapse: Основной сервер Matrix.
  • PostgreSQL: База данных для хранения сообщений и данных пользователей.
  • Redis: Кэширование для повышения производительности Synapse.
  • LiveKit & Auth Service: Обеспечение работы групповых аудио- и видеозвонков (Element Call).
  • Element Web: Веб-клиент для доступа к Matrix через браузер.
  • Nginx: Обратный прокси для маршрутизации трафика и работы по HTTPS.

ВНИМАНИЕ: Скрипт генерирует уникальные безопасные пароли и секретные ключи при каждом запуске, встраивая их в конфигурационные файлы. Имейте ввиду, что повторный запуск скрипта на уже сконфигурированном и/или на работаюшем сервере (в его каталоге) сгенерирует новые ключи доступа компонентов сервера и заново занесет их в конфигурационные файлы, что может привести к полной утере данных пользователей. Поэтому, при повторном запуске убедитесь что данные сохранены или скрипт запускается в другом каталоге.

2. Предварительные требования

Перед запуском скрипта убедитесь, что:

  1. ОС: Linux (рекомендуется Ubuntu/Debian).
  2. Утилиты: Установлены docker, docker compose, python3, sudo.
  3. Домен: У вас есть доменное имя (например, matrix.example.com), направленное на IP вашего сервера (A-запись).
  4. SSL-сертификаты: На сервере должны быть установлены сертификаты Let's Encrypt. Скрипт ожидает их наличие по пути: /etc/letsencrypt/live/ВАШ_ДОМЕН/fullchain.pem /etc/letsencrypt/live/ВАШ_ДОМЕН/privkey.pem (Если их нет, установите через certbot certonly --standalone -d ВАШ_ДОМЕН).
  5. Перед запуском убедитесь, что на вашем Linux сервере не работает какой то другой Web - сервер (или приложения), которые используют порты, необходимые для установки этого сервера (особенно 80, 443). Если есть, отключите их.

Настройка портов и Firewall

Для корректной работы всех сервисов (включая видеозвонки) необходимо открыть следующие порты:

  • TCP 80, 443: Основной веб-трафик (Nginx), HTTPS и API Matrix. Обязательно.
  • UDP 50100-50200: Диапазон портов для передачи медиа-трафика видеозвонков (WebRTC). Обязательно для работы звонков.
  • TCP 7880-7882, 8070-8080: Служебные порты LiveKit (API, RTC TCP).

Если используется Firewall на сервере (например, UFW):

Docker обычно управляет правилами iptables напрямую, что может обходить стандартные настройки UFW. Однако рекомендуется явно разрешить трафик:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 50100:50200/udp
sudo ufw allow 7880:7882/tcp
sudo ufw allow 8070:8080/tcp
sudo ufw reload

Если используется внешний Firewall (Cloud Provider / Router):

Убедитесь, что в настройках безопасности (Security Groups / Port Forwarding) проброшены все вышеуказанные порты (особенно UDP диапазон для видео).

3. Подготовка к запуску

  1. Перейдите в каталог synapse-server-auto/.
  2. Переименуйте example.env в .env и отредактируйте файл .env:
    • DOMAIN_NAME: Ваш домен (например, matrix.example.com).
    • FEDERATION_DOMAIN_WHITELIST: Список доверенных серверов Matrix через запятую (например 'matrix.org, matrix.example.com').
    • MAX_UPLOAD_SIZE: Максимальный размер вложений (например, 10M).

4. Запуск и настройка

  1. Сделайте скрипт исполняемым: chmod +x setup.sh
  2. Запустите скрипт: ./setup.sh
    • Примечание 1: Если вы запускаете его повторно, скрипт выдаст предупреждение о перезаписи данных. Подтвердите действие, введя y.
    • Примечание 2: Если setup.sh запускается без sudo, то он может выдать инфо, что сертификаты не найдены. Если вы полностью уверены, что сертификаты находятся по указанному пути, то можете продолжить работу скрипта.

Запустите сервер:

docker compose up -d
  1. Проверьте статус контейнеров: docker compose ps

5. Управление пользователями

  1. Для регистрации первого пользователя (администратора) выполните команду на сервере: bash docker exec -it synapse register_new_matrix_user -c /data/homeserver.yaml http://localhost:8008
    • примечание: при запуске docker контейнера, название сервиса может отличаться от того, что указано в команде, поэтому посмотрите как называется запущенный сервис командой docker compose ps и поменяйте название сервиса в команде добавления пользователя с 'synapse' например на 'synapse-server-auto-synapse-1'
  2. Следуйте подсказкам: введите логин, пароль и подтвердите права администратора (yes/no).

6. Подключение клиентов

Перед использованием сервера рекомендуется провести предварительное тестирование. Создайте 2-3 пользователей согласно разделу 5, подсоединитесь разными пользователями с разных устройств (желательно в разной сети) к серверу и попробуйте передать между ними сообщения или видеозвони для того, чтобы убедиться что все настроено корректно.

Веб-версия (Element Web)

  1. Откройте в браузере: https://ВАШ_ДОМЕН
  2. Нажмите "Войти" (Sign In).
  3. Убедитесь, что в поле "Домашний сервер" (Edit) указан ваш домен: https://ВАШ_ДОМЕН.
  4. Введите логин и пароль, созданные на шаге 5.
  5. Впоследствии вы можете сменить пароль в параметрах пользователя.

Android клиент (Element)

  1. Установите приложение Element-X из Google Play или F-Droid.
  2. Откройте приложение и нажмите "Начать" (Get Started).
  3. Нажмите "I already have an account" (У меня уже есть аккаунт).
  4. ВАЖНО: Нажмите "Edit" или "Change" рядом с сервером matrix.org.
  5. Выберите "Other" и введите адрес вашего сервера: https://ВАШ_ДОМЕН.
  6. Введите ваш логин и пароль.

Техническое обслуживание

  • Логи: Для просмотра логов используйте docker compose logs -f [название_сервиса].
  • Обновление лимитов: Если нужно изменить MAX_UPLOAD_SIZE, обновите его в \data\synapse\homeserver.yaml и перезапустите контейнеры: docker compose up -d.
  • Данные: Все сообщения хранятся в data/postgres, а медиафайлы — в data/synapse/media_store.

8. Проверка федерации (взаимодействия с другими серверами)

Для того чтобы ваш сервер мог обмениваться сообщениями с пользователями других серверов (например, matrix.org), должна корректно работать федерация.

  1. Проверка через сервис: Перейдите на сайт https://federationtester.matrix.org и введите свой домен. Если сайт выдал результат Success, значит база настроена верно.
  2. Тестовое добавление: Попробуйте в поиске контактов вашего клиента (например, Element) найти пользователя @alexvdem:matrix.org. Если сервер находит его и предлагает добавить, федерация работает (как минимум с официальным сервером Matrix).
  3. Важное примечание: Федерация может заработать не мгновенно. Иногда требуется некоторое время, чтобы ваш сервер начал полноценно "видеть" другие узлы сети.

Автор https://github.com/AlexVDem/synapse-server-auto Скрипта

synapse-server-auto-main.zip

Download Files

Downloads

No comments yet.

Добавить комментарий
или
регистрация Я забыл свой пароль
Оцените работу движка
Статистика