Нативная установка Element X (Sliding Sync Proxy) без Docker в Ubuntu Server
Пошаговое руководство по сборке и развёртыванию прокси-сервера мгновенной синхронизации (Matrix Sliding Sync) для мобильных клиентов Element X. Полный отказ от Docker-контейнеров, настройка системного демона Systemd и проксирования через Nginx.
# =========================================================================
# БЕЗОПАСНАЯ ИНФРАСТРУКТУРА — СБОРКА И УСТАНОВКА MATRIX SLIDING SYNC (GO)
# =========================================================================
# 1. УСТАНОВКА ИНСТРУМЕНТАРИЯ СБОРКИ И ЯЗЫКА GO
sudo apt update
sudo apt install -y golang-go git build-essential
# 2. КЛОНИРОВАНИЕ РЕПОЗИТОРИЯ И СБОРКА БИНАРНИКА ИЗ ИСХОДНИКОВ
cd /usr/local/src
sudo git clone https://github.com
cd sliding-sync
sudo go build -o syncv3 ./cmd/syncv3
# Переносим готовый бинарник в системный каталог
sudo cp syncv3 /usr/local/bin/
# 3. СОЗДАНИЕ ИЗОЛИРОВАННОГО СИСТЕМНОГО ПОЛЬЗОВАТЕЛЯ
sudo useradd -r -s /bin/false matrix-sync
# Создаем папку для базы данных сокета
sudo mkdir -p /var/lib/matrix-sync
sudo chown -R matrix-sync:matrix-sync /var/lib/matrix-sync
# =========================================================================
# СОЗДАНИЕ СИСТЕМНОГО ДЕМОНА SYSTEMD ДЛЯ СЛУЖБЫ СИНХРОНИЗАЦИИ
# ПУТЬ К ФАЙЛУ: /etc/systemd/system/matrix-sliding-sync.service
# =========================================================================
[Unit]
Description=Matrix Sliding Sync Proxy (Element X backend)
After=network.target
[Service]
Type=simple
User=matrix-sync
Group=matrix-sync
WorkingDirectory=/var/lib/matrix-sync
# ГЕНЕРАЦИЯ СЕКРЕТНОГО КЛЮЧА И НАСТРОЙКА ПОДКЛЮЧЕНИЯ К СВОЕМУ СЕРВЕРУ SYNAPSE
Environment="SYNCV3_SERVER=https://your-matrix-homeserver.com"
Environment="SYNCV3_SECRET=СГЕНЕРИРУЙ_ЛЮБОЙ_СЛУЧАЙНЫЙ_32_ЗНАЧНЫЙ_ХЕШ_ПАЦАНОВ"
Environment="SYNCV3_BINDADDR=127.0.0.1:8008"
Environment="SYNCV3_DB=user=matrix-sync dbname=syncv3 sslmode=disable"
ExecStart=/usr/local/bin/syncv3
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
# =========================================================================
# НАСТРОЙКА МАТРИЦЫ ПРОКСИРОВАНИЯ ВНУТРИ ВЕБ-СЕРВЕРА NGINX
# ВСТАВЛЯТЬ ВНУТРЬ БЛОКА СЕРВЕРА КАТАЛОГА: /etc/nginx/sites-available/
# =========================================================================
location ~ ^/(client/|_matrix/client/unstable/org.matrix.msc3575/sync) {
proxy_pass http://127.0.0.1:8008;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $host;
proxy_read_timeout 600s;
}