Synapse Admin установка на Apache: пошаговая инструкция 2024 | AdminWiki

Synapse Admin: Полное руководство по установке и настройке на Apache

18 декабря 2025 7 мин. чтения #apache #devops #matrix synapse #synapse admin #веб-администрирование #установка synapse

Если ты администрируешь сервер Matrix Synapse и устал от командной строки, пора познакомиться с Synapse Admin — веб-интерфейсом для управления твоим homeserver. В этой статье я, как Senior DevOps, покажу тебе, как правильно развернуть этот инструмент на Apache, чтобы получить удобную панель управления без лишних сложностей.

Что такое Synapse Admin и зачем он нужен?

Synapse Admin — это веб-приложение на React, которое предоставляет графический интерфейс для администрирования сервера Matrix Synapse. Вместо ручного написания curl-запросов или использования командной строки ты получаешь:

  • Управление пользователями (создание, блокировка, сброс паролей)
  • Просмотр и модерация комнат
  • Мониторинг активности сервера
  • Управление серверными ACL и настройками
Важно: Synapse Admin не устанавливается на сервер как отдельное приложение — это статический веб-сайт, который общается с API твоего Synapse через браузер. Поэтому настройка Apache в основном касается проксирования и безопасности.

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

Перед началом установки Synapse Admin убедись, что у тебя есть:

  • Работающий сервер Matrix Synapse (версия 1.85.0 или выше)
  • Установленный и настроенный Apache 2.4+
  • SSL-сертификат (Let's Encrypt или собственный)
  • Доступ к серверу с правами sudo/root
  • Открытые порты 80 и 443 в фаерволе

Шаг 1: Подготовка Apache и установка модулей

Для работы Synapse Admin через Apache нам понадобятся модули proxy и proxy_http. Давай проверим и установим их:

bash
# Проверяем, установлены ли модули
a2query -m proxy
a2query -m proxy_http

# Если модули не активны, включаем их
sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod ssl  # Для HTTPS
sudo a2enmod headers  # Для работы с заголовками

# Перезагружаем Apache для применения изменений
sudo systemctl restart apache2

Шаг 2: Настройка виртуального хоста для Synapse Admin

Создадим отдельный виртуальный хост для нашего админ-интерфейса. Я рекомендую использовать поддомен, например, admin.matrix.example.com.

bash
# Создаем конфигурационный файл для виртуального хоста
sudo nano /etc/apache2/sites-available/synapse-admin.conf

Вставь следующую конфигурацию, заменив example.com на твой домен:

apache config
<VirtualHost *:443>
    ServerName admin.matrix.example.com
    
    # SSL конфигурация
    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/admin.matrix.example.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/admin.matrix.example.com/privkey.pem
    
    # Безопасные настройки SSL
    SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
    SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256
    
    # Проксирование на локальный Synapse Admin
    ProxyPreserveHost On
    
    # Основной endpoint для Synapse Admin
    ProxyPass / http://localhost:8080/
    ProxyPassReverse / http://localhost:8080/
    
    # Проксирование API запросов к Synapse
    ProxyPass /_synapse/admin http://localhost:8008/_synapse/admin
    ProxyPassReverse /_synapse/admin http://localhost:8008/_synapse/admin
    
    # Важные заголовки для CORS и безопасности
    Header always set X-Frame-Options "SAMEORIGIN"
    Header always set X-Content-Type-Options "nosniff"
    Header always set X-XSS-Protection "1; mode=block"
    
    # Логирование
    ErrorLog ${APACHE_LOG_DIR}/synapse-admin_error.log
    CustomLog ${APACHE_LOG_DIR}/synapse-admin_access.log combined
    
    # Дополнительные настройки безопасности
    <Location />
        Require all granted
    </Location>
</VirtualHost>

# Редирект с HTTP на HTTPS
<VirtualHost *:80>
    ServerName admin.matrix.example.com
    Redirect permanent / https://admin.matrix.example.com/
</VirtualHost>
Внимание: Не забудь получить SSL-сертификат для поддомена! Используй certbot: sudo certbot --apache -d admin.matrix.example.com

Шаг 3: Настройка Synapse для работы с Admin

Теперь нужно настроить сам Synapse, чтобы он принимал запросы от нашего веб-интерфейса. Редактируем конфигурационный файл homeserver.yaml:

bash
sudo nano /etc/matrix-synapse/homeserver.yaml

Добавь или измени следующие параметры:

yaml
# Включение Admin API
enable_registration: false  # Рекомендуется отключить публичную регистрацию

# Настройки CORS для Synapse Admin
web_client_location: "https://admin.matrix.example.com"

# Список разрешенных источников для CORS
cors:
  allowed_origins:
    - "https://admin.matrix.example.com"
  
# Настройки клиента (опционально, но полезно)
client_api:
  registration_requires_token: true

# Лимиты для Admin API (защита от злоупотреблений)
rc_admin:
  per_second: 10
  burst_count: 50

Шаг 4: Запуск Synapse Admin через Docker

Самый простой способ запустить Synapse Admin — использовать Docker. Создадим docker-compose.yml файл:

yaml
version: '3.8'

services:
  synapse-admin:
    image: awesometechnologies/synapse-admin:latest
    container_name: synapse-admin
    restart: unless-stopped
    ports:
      - "8080:80"  # Apache будет проксировать на этот порт
    environment:
      - REACT_APP_SERVER_URL=https://admin.matrix.example.com
      - REACT_APP_HOMESERVER_URL=https://matrix.example.com
    networks:
      - synapse-network

networks:
  synapse-network:
    external: true  # Если у тебя уже есть сеть для Synapse
bash
# Запускаем контейнер
sudo docker-compose up -d

# Проверяем, что контейнер работает
sudo docker ps | grep synapse-admin

Шаг 5: Активация виртуального хоста и финальная настройка

bash
# Активируем сайт
sudo a2ensite synapse-admin.conf

# Проверяем конфигурацию Apache на ошибки
sudo apache2ctl configtest

# Если всё OK, перезагружаем Apache
sudo systemctl reload apache2

# Перезапускаем Synapse для применения изменений в homeserver.yaml
sudo systemctl restart matrix-synapse

Шаг 6: Создание административного пользователя

Для доступа к Synapse Admin тебе понадобится пользователь с административными правами:

bash
# Регистрируем нового пользователя (если нужно)
register_new_matrix_user -c /etc/matrix-synapse/homeserver.yaml https://localhost:8008

# Или даем существующему пользователю админские права
sudo -u matrix-synapse psql synapse -c \
  "UPDATE users SET admin = 1 WHERE name = '@admin:example.com';"

Таблица сравнения методов доступа к Admin API

Метод Сложность Безопасность Удобство
Прямой доступ к порту 8008 Низкая Опасный Низкое
Apache прокси (наш метод) Средняя Высокая Отличное
Nginx прокси Средняя Высокая Отличное

Решение распространенных проблем

Ошибка 502 Bad Gateway

Проверь, что контейнер Synapse Admin запущен и слушает на порту 8080:

bash
# Проверяем порт
sudo netstat -tlnp | grep :8080

# Проверяем логи контейнера
sudo docker logs synapse-admin

CORS ошибки в браузере

Убедись, что в homeserver.yaml правильно указаны allowed_origins и web_client_location:

bash
# Проверяем заголовки ответа Synapse
curl -I https://matrix.example.com/_matrix/client/versions

Проблемы с аутентификацией

Убедись, что пользователь действительно имеет админские права:

bash
sudo -u matrix-synapse psql synapse -c \
  "SELECT name, admin FROM users WHERE name LIKE '%admin%';"
Профессиональный совет: Настрой мониторинг для своего Apache и Synapse Admin. Используй инструменты вроде prometheus-apache-exporter и matrix-synapse-prometheus-exporter для отслеживания метрик производительности и обнаружения проблем до того, как они затронут пользователей.

Оптимизация производительности

Для продакшн-среды рекомендую добавить эти настройки в конфигурацию Apache:

apache config
# Добавь в VirtualHost *:443
# Кэширование статических файлов
<Location /static>
    ExpiresActive On
    ExpiresDefault "access plus 1 year"
    Header append Cache-Control "public"
</Location>

# Настройки прокси
ProxyTimeout 300
ProxyBadHeader Ignore

# Лимиты для защиты
Timeout 60
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5

Безопасность — наш приоритет

Дополнительные меры безопасности, которые стоит реализовать:

  • Ограничь доступ по IP с помощью Require ip 192.168.1.0/24
  • Настрой двухфакторную аутентификацию для администраторов
  • Регулярно обновляй образ Docker synapse-admin
  • Настрой мониторинг неудачных попыток входа
  • Используй отдельный SSL-сертификат для админ-панели

Чек-лист завершения установки

  • Apache модули proxy и proxy_http включены
  • SSL-сертификат установлен и работает
  • Контейнер Synapse Admin запущен на порту 8080
  • CORS настройки в homeserver.yaml применены
  • Административный пользователь создан/назначен
  • Виртуальный хост активирован и Apache перезагружен

Теперь у тебя есть полностью функционирующая панель управления Synapse Admin, доступная по https://admin.matrix.example.com. Помни: с большой силой приходит большая ответственность — используй админ-панель аккуратно и всегда делай бэкапы перед масштабными изменениями.

Поделиться:
Сохранить гайд? В закладки браузера