Перейти к содержанию

Обзор развертывания Element на сервере

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

Для развертывания требуется сервер на базе Linux с операционной системой Ubuntu. Необходимы следующие компоненты и права доступа:

  • Операционная система: Ubuntu (конкретная версия определяется динамически во время установки по кодовому имени).

  • Права доступа: Требуется доступ root или права sudo для установки Docker, управления системными службами и настройки межсетевого экрана (firewall).

  • Домен: Сервер должен быть доступен через домен hostkey.in.

  • Порты: Порты 80, 443 и 8448 должны быть открыты для веб-трафика и завершения SSL-соединений. Порт 8008 используется внутренне для API Synapse, а порт 8080 — внутренне для веб-клиента Element.

FQDN финальной панели

Полное доменное имя (FQDN) для приложения формируется по следующему шаблону:

element<Server ID>.hostkey.in

Замените <Server ID> на конкретный идентификатор, назначенный экземпляру сервера. Приложение доступно через HTTPS на порту 443.

Структура файлов и каталогов

Файлы приложения, конфигурации и данные организованы в следующих расположениях:

  • Базовый каталог: /opt/matrix

  • Данные и медиа Synapse: /opt/matrix/files

  • Схемы Synapse: /opt/matrix/schemas

  • Конфигурация Nginx: /data/nginx/user_conf.d

  • Секреты и сертификаты Nginx: /etc/letsencrypt

  • Конфигурация Compose для Nginx: /root/nginx

Процесс установки приложения

Приложение развертывается с использованием Docker Compose. Процесс установки включает следующие шаги:

  1. Установка Docker: Если Docker отсутствует, система устанавливает docker-ce, docker-ce-cli, containerd.io и плагин docker-compose-plugin.

  2. Создание каталогов: Создается базовый каталог /opt/matrix и подкаталоги для файлов и схем с соответствующими правами владения.

  3. Развертывание конфигурации:

    • Файл docker-compose.yml генерируется в /opt/matrix.

    • Файл конфигурации Synapse homeserver.yaml размещается в /opt/matrix/files.

    • Файл конфигурации веб-клиента Element element-config.json размещается в /opt/matrix.

  4. Развертывание контейнеров: Образы Docker для PostgreSQL, Synapse и Element Web загружаются и запускаются с помощью docker compose.

  5. Проверка работоспособности (Health Check): Развертывание ожидает, пока эндпоинт проверки работоспособности Synapse по адресу http://127.0.0.1:8008/health вернет код состояния 200, прежде чем завершится.

Контейнеры Docker и их развертывание

Стек приложения состоит из трех основных контейнеров, управляемых через Docker Compose:

  • База данных (db):

  • Образ: postgres:15-alpine

  • Назначение: Хранение данных Synapse.

  • Том: postgres-data, смонтированный в /var/lib/postgresql/data.

  • Synapse (synapse):

  • Образ: matrixdotorg/synapse:latest

  • Назначение: Бэкенд сервера Matrix (homeserver).

  • Том: Каталог хоста /opt/matrix/files, смонтированный в /data.

  • Порт: Открывает порт 8008 внутренне.

  • Element (element):

  • Образ: vectorim/element-web:latest

  • Назначение: Интерфейс веб-клиента.

  • Том: Файл хоста /opt/matrix/element-config.json, смонтированный в /app/config.json.

  • Порт: Открывает порт 80 внутренне, привязанный к 127.0.0.1:8080.

Файл Docker Compose находится по адресу /opt/matrix/docker-compose.yml.

Прокси-серверы

Nginx используется в качестве обратного прокси-сервера и терминала SSL. Он развертывается через отдельный стек Docker Compose, расположенный в /root/nginx.

  • Образ: jonasal/nginx-certbot:latest

  • Функция: Обрабатывает SSL-сертификаты через Certbot и маршрутизирует трафик к внутренним службам.

  • Конфигурация:

  • Конфигурация Nginx для домена Matrix хранится по адресу /data/nginx/user_conf.d/<matrix_domain>.conf.

  • SSL-сертификаты хранятся в /etc/letsencrypt/live/<matrix_domain>.

  • Маршрутизация:

  • Запросы к /_matrix и /_synapse/client проксируются на http://127.0.0.1:8008 (Synapse).

  • Все остальные запросы проксируются на http://127.0.0.1:8080 (Element Web).

Базы данных

Приложение использует PostgreSQL для хранения данных.

  • Имя базы данных: synapse

  • Пользователь: synapse

  • Пароль: synapse

  • Хост: db (внутреннее имя хоста сети Docker)

  • Хранилище: Данные сохраняются в томе Docker postgres-data.

  • Настройки подключения:

  • Драйвер: psycopg2

  • Кодировка: UTF-8

  • Сортировка (Collation): C

  • Ctype: C

Настройки прав доступа

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

  • /opt/matrix: Владелец root:root, режим 0755.

  • /opt/matrix/files: Владелец 991:991 (пользователь Synapse), режим 0755.

  • /opt/matrix/schemas: Владелец root:root, режим 0755.

  • /opt/matrix/docker-compose.yml: Владелец root:root, режим 0644.

  • /opt/matrix/files/homeserver.yaml: Владелец 991:991, режим 0644.

  • /opt/matrix/element-config.json: Владелец root:root, режим 0644.

  • /root/nginx: Владелец root:root, режим 0755.

  • /data/nginx/user_conf.d: Владелец root:root, режим 0644.

Расположение файлов конфигурации и данных

Ключевые файлы конфигурации находятся по следующим путям:

Имя файла Путь Описание
docker-compose.yml /opt/matrix/docker-compose.yml Определяет службы стека Matrix.
homeserver.yaml /opt/matrix/files/homeserver.yaml Конфигурация сервера Synapse.
element-config.json /opt/matrix/element-config.json Конфигурация веб-клиента Element.
compose.yml /root/nginx/compose.yml Определяет стек Nginx и Certbot.
nginx_matrix.conf /data/nginx/user_conf.d/<domain>.conf Конфигурация блока сервера Nginx.

Доступные порты для подключения

В развертывании используются следующие порты:

  • 443: Трафик HTTPS для веб-интерфейса и API (через Nginx).

  • 8448: Альтернативный порт HTTPS (через Nginx).

  • 8008: Внутренний порт API Synapse (привязан к localhost).

  • 8080: Внутренний порт Element Web (привязан к localhost).

Запуск, остановка и обновление

Управление службами осуществляется с помощью команд Docker Compose, выполняемых в соответствующих каталогах проектов.

  • Запуск/Перезапуск стека Matrix:

    cd /opt/matrix
    docker compose up -d
    

  • Остановка стека Matrix:

    cd /opt/matrix
    docker compose down
    

  • Обновление стека Matrix:

    cd /opt/matrix
    docker compose pull
    docker compose up -d
    

  • Запуск/Перезапуск стека Nginx:

    cd /root/nginx
    docker compose up -d
    

  • Остановка стека Nginx:

    cd /root/nginx
    docker compose down
    

question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×