bolt Valebyte VPS від $4/міс — NVMe, запуск за 60 секунд.

Отримати VPS arrow_forward
eco Початковий Туторіал

Встановлення та налаштування Matrix

calendar_month Jun 14, 2026 schedule 19 хв. читання visibility 28 переглядів
Установка и настройка Matrix Synapse на VPS: собственный сервер для Element и federated чатов
info

Потрібен сервер для цього гайду? Ми пропонуємо виділені сервери та VPS у 50+ країнах з миттєвим налаштуванням.

Потрібен сервер для цього гайду?

Розгорніть VPS або виділений сервер за хвилини.

Установка та налаштування Matrix Synapse на VPS: власний сервер для Element та federated чатів

TL;DR

У цьому докладному посібнику ми крок за кроком налаштуємо власний сервер Matrix Synapse на віртуальному приватному сервері (VPS) під керуванням Ubuntu 24.04 LTS. Ви дізнаєтеся, як встановити всі необхідні компоненти, включно з базою даних PostgreSQL та веб-сервером Caddy для автоматичного керування HTTPS, а також як сконфігурувати Synapse для забезпечення безпечного та федеративного спілкування. У результаті ви отримаєте повністю функціональний сервер Matrix, який дозволить вам і вашій команді використовувати клієнти, такі як Element, для приватних і групових чатів, а також взаємодіяти з іншими серверами Matrix по всьому світу.

  • Налаштування Matrix Synapse на Ubuntu 24.04 LTS з використанням PostgreSQL.
  • Автоматичне отримання та керування TLS-сертифікатами через Caddy.
  • Детальні інструкції з конфігурування сервера для федерації та реєстрації користувачів.
  • Рекомендації щодо вибору VPS-конфігурації та забезпечення безпеки.
  • Скрипти для резервного копіювання та обслуговування сервера.

Що ми налаштовуємо і навіщо

Схема: Що ми налаштовуємо і навіщо
Схема: Що ми налаштовуємо і навіщо

У цьому туторіалі ми займемося встановленням та налаштуванням Matrix Synapse – еталонної реалізації сервера Matrix. Matrix – це відкритий протокол для децентралізованого, федеративного зв'язку в реальному часі. Простіше кажучи, це як електронна пошта, але для миттєвих повідомлень: ви можете спілкуватися з людьми, які використовують інші сервери Matrix, так само, як надсилаєте листи на різні поштові домени.

Matrix Synapse – це серце вашої комунікаційної платформи. Він оброблятиме всі повідомлення, керуватиме користувачами, кімнатами, а також забезпечуватиме безпечне з'єднання та федерацію з іншими серверами Matrix. Як клієнт для взаємодії з вашим сервером найчастіше використовується Element, доступний на всіх платформах (веб, десктоп, мобільні пристрої). Ви зможете підключити Element до свого власного сервера Matrix Synapse.

Що ви отримаєте в результаті? Ви станете власником власної, повністю контрольованої та приватної платформи для обміну повідомленнями. Це ідеальне рішення для команд, сімей або спільнот, які цінують конфіденційність і не хочуть довіряти своє листування стороннім комерційним сервісам. Ви зможете створювати приватні чати, групові кімнати, обмінюватися файлами, здійснювати голосові та відеодзвінки – і все це під вашим повним контролем.

Існують альтернативи, такі як хмарні керовані сервіси Matrix (наприклад, Element Matrix Services) або пропрієтарні рішення типу Slack, Discord, Telegram. Хмарні сервіси зручні тим, що не вимагають від вас технічних знань для налаштування та обслуговування, але ви втрачаєте частину контролю над даними та платите за підписку. Пропрієтарні рішення пропонують багатий функціонал, але повністю централізовані та не дають вам жодного контролю над вашою інформацією.

Чому ж self-hosted на VPS? Вибір власного VPS для Matrix Synapse дає вам максимальний контроль над даними та інфраструктурою. Ви самі вирішуєте, де зберігаються дані, хто має до них доступ, і які правила безпеки застосовуються. Це економічно вигідно в довгостроковій перспективі, особливо для невеликих і середніх команд, а також надає гнучкість для інтеграції з іншими вашими сервісами. Ви стаєте незалежним від політики та цін сторонніх провайдерів, отримуючи повну свободу в управлінні своєю комунікаційною платформою.

Який VPS-конфіг потрібен для цього завдання

Схема: Який VPS-конфіг потрібен для цього завдання
Схема: Який VPS-конфіг потрібен для цього завдання

Вибір відповідного VPS – ключовий момент для стабільної роботи Matrix Synapse. Вимоги до ресурсів залежать від кількості активних користувачів, обсягу збережених повідомлень та медіафайлів, а також від інтенсивності використання федерації.

Мінімальні вимоги (до 10 активних користувачів):

  • CPU: 1-2 vCPU (сучасні Intel Xeon або AMD EPYC). Synapse переважно однопотоковий, але фонові завдання можуть використовувати додаткові ядра.
  • RAM: 2 GB. Цього достатньо для запуску Synapse, PostgreSQL та операційної системи.
  • Диск: 40-60 GB NVMe SSD. SSD значно прискорює роботу бази даних. NVMe кращий за SATA SSD.
  • Мережа: 100 Мбіт/с або 1 Гбіт/с. Для текстових чатів не критично, але для голосових/відеодзвінків та активної федерації бажана хороша пропускна здатність.

Рекомендований VPS-план (до 50-100 активних користувачів):

Для комфортної роботи та можливості розширення, особливо якщо плануються активні голосові/відеодзвінки або велика історія чатів, рекомендується наступний конфіг:

  • CPU: 2-4 vCPU.
  • RAM: 4-8 GB.
  • Диск: 80-160 GB NVMe SSD.
  • Мережа: 1 Гбіт/с.

Для такої конфігурації можна розглянути VPS із зазначеними характеристиками. Важливо переконатися, що дискова підсистема використовує NVMe SSD для максимальної продуктивності бази даних.

Коли потрібен dedicated, а не VPS

Виділений сервер (dedicated server) стає необхідним, коли кількість активних користувачів перевищує кілька сотень, або коли ви плануєте зберігати дуже великий обсяг медіафайлів, а також якщо вам потрібна максимальна продуктивність та ізоляція ресурсів. Dedicated сервери забезпечують передбачувану продуктивність, оскільки всі апаратні ресурси (CPU, RAM, диск) повністю доступні лише вам. Якщо ви плануєте розгорнути масштабний корпоративний Matrix-інстанс, який обслуговуватиме тисячі користувачів, або якщо у вас є суворі вимоги до безпеки та фізичного розміщення обладнання, то відповідний dedicated буде більш розумним вибором.

Локація: на що впливає

Вибір локації VPS впливає на кілька факторів:

  • Затримка (Latency): Чим ближче сервер до ваших основних користувачів, тим нижчою буде затримка. Це особливо критично для голосових та відеодзвінків.
  • Законодавство: Вибирайте локацію, законодавство якої відповідає вашим вимогам до зберігання даних та конфіденційності.
  • Доступність: Деякі регіони можуть мати кращу зв'язність з певними частинами світу.

Зазвичай рекомендується вибирати дата-центр, розташований географічно близько до більшості ваших користувачів, щоб забезпечити найкращий користувацький досвід.

Підготовка сервера

Схема: Підготовка сервера
Схема: Підготовка сервера

Після отримання доступу до вашого нового VPS (передбачається, що ви використовуєте Ubuntu 24.04 LTS), необхідно виконати ряд базових налаштувань для підвищення безпеки та зручності керування.

1. Підключення по SSH

Підключіться до сервера як користувач root або наданий вам користувач:


ssh root@ВАШ_IP_АДРЕС
    

Замініть ВАШ_IP_АДРЕС на IP-адресу вашого VPS.

2. Створення нового користувача та надання прав sudo

Працювати під root небезпечно. Створимо нового користувача та надамо йому права sudo.


adduser matrixuser # Створюємо нового користувача з іменем matrixuser
usermod -aG sudo matrixuser # Додаємо користувача до групи sudo
    

Тепер вийдіть з поточної сесії root і увійдіть під новим користувачем.


exit # Вийти з root
ssh matrixuser@ВАШ_IP_АДРЕС # Увійти під новим користувачем
    

3. Налаштування SSH-ключів (рекомендується)

Для безпечного та зручного входу налаштуйте SSH-ключі. Згенеруйте їх на локальній машині (якщо ще немає):


ssh-keygen -t rsa -b 4096 # Генеруємо новий SSH-ключ
    

Потім скопіюйте публічний ключ на сервер:


ssh-copy-id matrixuser@ВАШ_IP_АДРЕС # Копіюємо публічний ключ на сервер
    

Після цього можна відключити автентифікацію за паролем для SSH (рекомендується). Відредагуйте файл /etc/ssh/sshd_config:


sudo nano /etc/ssh/sshd_config
    

Знайдіть та змініть наступні рядки:


PasswordAuthentication no
PermitRootLogin no # Відключаємо вхід для root по SSH напряму
    

Перезапустіть SSH-сервіс:


sudo systemctl restart sshd
    

4. Оновлення системи

Завжди починайте з оновлення пакетної бази та встановлених пакетів.


sudo apt update # Оновлюємо список доступних пакетів
sudo apt upgrade -y # Оновлюємо встановлені пакети до останніх версій
sudo apt autoremove -y # Видаляємо непотрібні залежності
    

5. Встановлення базових утиліт

Встановимо деякі корисні утиліти, які знадобляться в процесі.


sudo apt install -y curl wget git nano htop ufw fail2ban
    
  • curl, wget: Для завантаження файлів.
  • git: Для роботи з репозиторіями.
  • nano: Простий текстовий редактор.
  • htop: Інтерактивний монітор процесів.
  • ufw: Простий у використанні файрвол.
  • fail2ban: Захист від брутфорс-атак.

6. Налаштування файрволу (UFW)

Налаштуємо UFW для дозволу лише необхідних портів.


sudo ufw allow ssh # Дозволяємо SSH (порт 22 за замовчуванням)
sudo ufw allow http # Дозволяємо HTTP (порт 80)
sudo ufw allow https # Дозволяємо HTTPS (порт 443)
sudo ufw allow 8448/tcp # Порт для федерації Matrix
sudo ufw enable # Вмикаємо файрвол
sudo ufw status # Перевіряємо статус файрволу
    

Переконайтеся, що SSH дозволено, перш ніж вмикати файрвол, інакше ви можете втратити доступ до сервера.

7. Налаштування Fail2Ban

Fail2Ban вже встановлено. Він автоматично налаштований для захисту SSH. Ви можете перевірити його статус:


sudo systemctl status fail2ban
    

За необхідності можна додати додаткові правила, але для початку стандартної конфігурації достатньо.

Встановлення ПЗ — покроково

Встановлення ПЗ — покроково

Схема: Встановлення ПЗ — покроково
Схема: Встановлення ПЗ — покроково

Тепер, коли сервер підготовлено, приступимо до встановлення необхідного програмного забезпечення: PostgreSQL (база даних для Synapse), Python та його залежності, і, нарешті, сам Matrix Synapse.

1. Встановлення PostgreSQL 16

Matrix Synapse настійно рекомендує використовувати PostgreSQL для зберігання даних через його продуктивність та надійність. На Ubuntu 24.04 LTS доступна актуальна версія PostgreSQL.


sudo apt install -y postgresql postgresql-contrib # Встановлюємо PostgreSQL та додаткові утиліти
    

Після встановлення створимо користувача та базу даних для Synapse.


sudo -u postgres psql # Заходимо в консоль PostgreSQL від імені користувача postgres
    

Всередині консолі PostgreSQL виконайте наступні команди:


CREATE USER synapse_user WITH PASSWORD 'ВАШ_СЛОЖНЫЙ_ПАРОЛЬ'; -- Створюємо користувача для Synapse, замініть пароль!
CREATE DATABASE synapse_db WITH OWNER synapse_user ENCODING 'UTF8' LC_COLLATE 'C' LC_CTYPE 'C' TEMPLATE template0; -- Створюємо базу даних
\q -- Виходимо з консолі PostgreSQL
    

Замініть ВАШ_СЛОЖНЫЙ_ПАРОЛЬ на надійний пароль. Запишіть його, він знадобиться під час налаштування Synapse.

2. Встановлення Python 3 та залежностей

Synapse написаний на Python. Ubuntu 24.04 LTS постачається з Python 3.12, що є актуальною версією для 2026 року.


sudo apt install -y python3 python3-pip python3-venv python3-dev libffi-dev libssl-dev # Встановлюємо Python 3, pip, venv та необхідні бібліотеки
    

3. Встановлення Matrix Synapse

Ми будемо встановлювати Synapse з офіційного репозиторію Matrix для Ubuntu, що забезпечить простіші оновлення.


sudo apt install -y lsb-release wget apt-transport-https # Встановлюємо утиліти для роботи з репозиторіями
sudo wget -O /usr/share/keyrings/matrix-org-archive-keyring.gpg https://packages.matrix.org/debian/matrix-org-archive-keyring.gpg # Додаємо GPG ключ репозиторію
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 # Додаємо репозиторій Matrix
sudo apt update # Оновлюємо список пакетів з урахуванням нового репозиторію
sudo apt install -y matrix-synapse # Встановлюємо Matrix Synapse (актуальна версія 1.100.0+ для 2026 року)
    

У процесі встановлення вас запитають про Server Name. Введіть тут ваш домен, наприклад, matrix.yourdomain.com. Це буде публічне ім'я вашого Matrix-сервера. Також вас запитають, чи використовувати PostgreSQL. Виберіть "Yes" та вкажіть параметри, які ви створили раніше: ім'я користувача synapse_user, ім'я бази даних synapse_db та пароль.

4. Встановлення Caddy Web Server

Caddy – це сучасний веб-сервер, який автоматично отримує та оновлює TLS-сертифікати (HTTPS) від Let's Encrypt. Це значно спрощує налаштування HTTPS порівняно з Nginx та Certbot.


sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https # Встановлюємо базові пакети
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg # Додаємо GPG ключ Caddy
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list # Додаємо репозиторій Caddy
sudo apt update # Оновлюємо список пакетів
sudo apt install -y caddy # Встановлюємо Caddy
    

Caddy буде використовуватися як зворотний проксі для Synapse, обробляючи весь вхідний трафік та забезпечуючи HTTPS.

Конфігурація

Схема: Конфігурація
Схема: Конфігурація

Після встановлення всіх компонентів приступаємо до їх налаштування. Це найважливіший етап, де ми зв'яжемо все воєдино.

1. Налаштування DNS-записів

Перш ніж Synapse та Caddy зможуть працювати, вам потрібно налаштувати DNS-записи для вашого домену (наприклад, yourdomain.com). Вам знадобиться:

  • A-запис: matrix.yourdomain.com, що вказує на IP-адресу вашого VPS.
  • SRV-записи: Для автоматичного виявлення клієнтами Matrix.

Додайте наступні записи до панелі керування DNS вашого домену:

  • A запис: matrix.yourdomain.com -> ВАША_IP_АДРЕСА_VPS
  • SRV запис: _matrix._tcp.yourdomain.com -> 0 5 8448 matrix.yourdomain.com
  • SRV запис: _matrix-federation._tcp.yourdomain.com -> 0 5 8448 matrix.yourdomain.com

Зачекайте деякий час, доки DNS-записи поширяться (зазвичай від кількох хвилин до години).

2. Базова конфігурація Matrix Synapse (homeserver.yaml)

Основний файл конфігурації Synapse знаходиться за адресою /etc/matrix-synapse/homeserver.yaml.


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

Знайдіть та змініть (або переконайтеся, що вони встановлені правильно) наступні параметри:

  • server_name: Переконайтеся, що це ваш домен (наприклад, matrix.yourdomain.com).
  • database: Переконайтеся, що тут вказані параметри вашої PostgreSQL бази даних.
  • public_baseurl: Встановіть https://matrix.yourdomain.com/.
  • enable_registration: Встановіть true, якщо хочете дозволити вільну реєстрацію. Для приватних серверів краще false і реєструвати користувачів вручну.
  • listeners: Переконайтеся, що Synapse слухає на порту 8008 (або іншому, якщо ви змінювали).

Приклад частини файлу homeserver.yaml:


# /etc/matrix-synapse/homeserver.yaml

server_name: "matrix.yourdomain.com" # Замініть на ваш домен

database:
  name: "psycopg2"
  args:
    user: "synapse_user"
    password: "ВАШ_СЛОЖНЫЙ_ПАРОЛЬ" # Ваш пароль від користувача PostgreSQL
    database: "synapse_db"
    host: "localhost"
    cp_min: 5
    cp_max: 10

public_baseurl: "https://matrix.yourdomain.com/"

listeners:
  - port: 8008
    tls: false
    type: http
    x_forwarded_for: true
    bind_addresses: ['127.0.0.1'] # Слухаємо тільки локально
    resources:
      - names: [client, federation]
        compress: false

enable_registration: true # Змініть на false для закритої реєстрації
    

Після внесення змін перезапустіть Synapse:


sudo systemctl restart matrix-synapse
sudo systemctl enable matrix-synapse # Переконуємося, що Synapse запускається під час старту системи
    

3. Налаштування Caddy для Matrix Synapse

Тепер налаштуємо Caddy для роботи як зворотного проксі для Synapse та забезпечення HTTPS.


sudo nano /etc/caddy/Caddyfile
    

Видаліть весь вміст файлу та вставте наступне, замінивши matrix.yourdomain.com на ваш домен:


# /etc/caddy/Caddyfile

matrix.yourdomain.com {
    # Для клієнтів (Element)
    reverse_proxy /_matrix/ localhost:8008

    # Для федерації
    reverse_proxy /_matrix/federation/ localhost:8008

    # Для .well-known (автовиявлення)
    # Якщо ваш кореневий домен yourdomain.com, а Synapse на matrix.yourdomain.com
    # то потрібно налаштувати редирект або проксі для .well-known на кореневому домені
    # Це приклад для випадку, коли і Matrix, і .well-known на одному домені
    # Якщо .well-known на кореневому домені yourdomain.com:
    # reverse_proxy /.well-known/matrix/ matrix.yourdomain.com:8008
    # Якщо Synapse та .well-known на matrix.yourdomain.com:
    redir /.well-known/matrix/server /_matrix/federation/v1/well-known/matrix/server 301
    redir /.well-known/matrix/client /_matrix/client/v1/well-known/matrix/client 301
}

# Якщо ви хочете, щоб клієнти могли підключатися до вашого кореневого домену,
# а Synapse був на піддомені, вам потрібно налаштувати перенаправлення .well-known
# на кореневому домені yourdomain.com.
# У цьому випадку, якщо ваш "Server Name" у Synapse - yourdomain.com,
# але Synapse працює на matrix.yourdomain.com, вам потрібно додати:
# yourdomain.com {
#     redir /.well-known/matrix/server /_matrix/federation/v1/well-known/matrix/server 301
#     redir /.well-known/matrix/client /_matrix/client/v1/well-known/matrix/client 301
#     # Можливо, також знадобиться проксіювати або редиректити на matrix.yourdomain.com
#     # reverse_proxy matrix.yourdomain.com {
#     #     header_up Host {host}
#     # }
# }
    

Важливе примітка про .well-known: Matrix-клієнти шукають файл .well-known/matrix/server для визначення сервера. Якщо ваш server_name у Synapse (наприклад, yourdomain.com) відрізняється від домену, на якому фактично працює Synapse (наприклад, matrix.yourdomain.com), то вам потрібно налаштувати перенаправлення .well-known на кореневому домені. У нашому прикладі ми припускаємо, що server_name збігається з доменом, на якому працює Caddy (matrix.yourdomain.com). Якщо це не так, вам потрібно буде створити окремий блок для yourdomain.com у Caddyfile та налаштувати там перенаправлення.

Перевірте конфігурацію Caddy та перезапустіть його:


sudo caddy validate --config /etc/caddy/Caddyfile # Перевіряємо синтаксис Caddyfile
sudo systemctl restart caddy # Перезапускаємо Caddy
sudo systemctl enable caddy # Переконуємося, що Caddy запускається під час старту системи
    

Caddy автоматично отримає та налаштує SSL/TLS сертифікати для вашого домену.

4. Перевірка працездатності

Після всіх налаштувань перевіримо, що все працює як треба.

  • Перевірка Caddy та HTTPS:
  • 
    curl -v https://matrix.yourdomain.com/ # Переконайтеся, що запит проходить через HTTPS
        

    Ви повинні побачити успішну відповідь (можливо, 404, але з коректним TLS-сертифікатом). Перевірте сертифікат у браузері.

  • Перевірка Synapse Client API:
  • 
    curl -v https://matrix.yourdomain.com/_matrix/client/versions # Повинен повернути JSON з версіями API
        
  • Перевірка Synapse Federation API:
  • 
    curl -v https://matrix.yourdomain.com/_matrix/federation/v1/version # Повинен повернути JSON з версією сервера
        
  • Перевірка SRV-записів (локально):
  • 
    dig SRV _matrix._tcp.yourdomain.com # Повинен показати ваш SRV-запис
    dig SRV _matrix-federation._tcp.yourdomain.com # Повинен показати ваш SRV-запис
        

Якщо всі перевірки пройшли успішно, ваш Matrix Synapse сервер готовий до роботи! Тепер ви можете підключитися до нього за допомогою клієнта Element (або будь-якого іншого Matrix-клієнта), вказавши matrix.yourdomain.com як домашній сервер.

5. Реєстрація першого користувача

Якщо ви встановили enable_registration: false, вам потрібно зареєструвати першого користувача вручну.


sudo register_new_matrix_user -c /etc/matrix-synapse/homeserver.yaml https://localhost:8008 # Запускаємо утиліту реєстрації
    

Дотримуйтесь інструкцій, щоб створити логін та пароль. Ви можете зробити першого користувача адміністратором, що дуже корисно для керування сервером.

Після цього ви можете увійти в Element, використовуючи створені облікові дані, та почати користуватися своїм власним Matrix-сервером.

Резервне копіювання та обслуговування

Схема: Резервне копіювання та обслуговування
Схема: Резервне копіювання та обслуговування

Надійне резервне копіювання та регулярне обслуговування – запорука стабільності та довговічності вашого Matrix-сервера.

Що резервувати

Для повного відновлення Matrix Synapse вам знадобляться:

  • База даних PostgreSQL: Містить усі повідомлення, метадані, користувачів та кімнати. Це найкритичніший компонент.
  • Медіа-сховище Synapse: Директорія, де Synapse зберігає всі завантажені користувачами файли (зображення, відео, документи). Зазвичай це /var/lib/matrix-synapse/media_store.
  • Файл конфігурації Synapse: /etc/matrix-synapse/homeserver.yaml та інші файли в цій директорії (наприклад, log.yaml).
  • Конфігурація Caddy: /etc/caddy/Caddyfile та сертифікати (хоча Caddy їх відновить сам).

Простий скрипт авторезервування

Створимо простий скрипт для автоматичного резервного копіювання. Ми будемо використовувати pg_dump для бази даних та tar для файлів.


sudo mkdir -p /opt/backups/matrix # Створюємо директорію для резервних копій
sudo chown matrixuser:matrixuser /opt/backups/matrix # Надаємо права нашому користувачу
nano /opt/backups/matrix/backup_matrix.sh
    

Вставте у файл backup_matrix.sh наступний вміст:


#!/bin/bash

# Налаштування
BACKUP_DIR="/opt/backups/matrix"
DATE=$(date +%Y%m%d%H%M%S)
DB_USER="synapse_user"
DB_NAME="synapse_db"
DB_PASSWORD="ВАШ_СКЛАДНИЙ_ПАРОЛЬ" # Використовуйте той самий пароль, що й при налаштуванні PostgreSQL
SYNAPSE_CONFIG_DIR="/etc/matrix-synapse"
SYNAPSE_MEDIA_DIR="/var/lib/matrix-synapse/media_store"
CADDY_CONFIG_DIR="/etc/caddy"

# Зупинка Synapse для консистентного резервного копіювання БД (необов'язково, але рекомендується для великих баз)
# sudo systemctl stop matrix-synapse

# Резервне копіювання бази даних PostgreSQL
echo "Збереження бази даних PostgreSQL..."
PGPASSWORD="${DB_PASSWORD}" pg_dump -U "${DB_USER}" -h localhost "${DB_NAME}" > "${BACKUP_DIR}/synapse_db_${DATE}.sql"
if [ $? -eq 0 ]; then
    echo "Резервне копіювання бази даних успішне: ${BACKUP_DIR}/synapse_db_${DATE}.sql"
else
    echo "Резервне копіювання бази даних не вдалося!"
    exit 1
fi

# Резервне копіювання медіа-сховища та конфігурацій
echo "Архівування медіа-сховища та конфігурацій..."
tar -czf "${BACKUP_DIR}/synapse_data_config_${DATE}.tar.gz" "${SYNAPSE_MEDIA_DIR}" "${SYNAPSE_CONFIG_DIR}" "${CADDY_CONFIG_DIR}"
if [ $? -eq 0 ]; then
    echo "Резервне копіювання даних та конфігурацій успішне: ${BACKUP_DIR}/synapse_data_config_${DATE}.tar.gz"
else
    echo "Резервне копіювання даних та конфігурацій не вдалося!"
    exit 1
fi

# Запуск Synapse назад
# sudo systemctl start matrix-synapse

# Видалення старих резервних копій (зберігаємо 7 днів)
find "${BACKUP_DIR}" -type f -name "*.sql" -mtime +7 -delete
find "${BACKUP_DIR}" -type f -name "*.tar.gz" -mtime +7 -delete

echo "Процес резервного копіювання завершено."
    

Зробіть скрипт виконуваним:


chmod +x /opt/backups/matrix/backup_matrix.sh
    

Для автоматичного запуску додайте його до cron. Виконайте команду від імені користувача matrixuser:


crontab -e
    

Додайте наступний рядок для щоденного резервного копіювання о 3 годині ночі:


0 3 * * * /opt/backups/matrix/backup_matrix.sh > /dev/null 2>&1
    

Куди зберігати резервні копії

Зберігання резервних копій на тому ж сервері, що й оригінальні дані, вкрай не рекомендується. У разі апаратного збою або компрометації сервера ви втратите все. Рекомендується використовувати:

  • Зовнішнє S3-сумісне сховище: Наприклад, AWS S3, Backblaze B2, або MinIO. Для цього можна використовувати утиліти на кшталт s3cmd або rclone у вашому скрипті.
  • Окремий VPS: Ви можете налаштувати другий, невеликий VPS і використовувати rsync або scp для копіювання резервних копій туди.
  • Локальне сховище на вашій машині: Якщо сервер не критичний і ви можете виконувати ручне копіювання.

Для більш просунутого резервного копіювання розгляньте інструменти на кшталт Restic або BorgBackup, які підтримують дедуплікацію, шифрування та різні сховища.

Оновлення: rolling vs maintenance window

  • Rolling updates: Для Matrix Synapse зазвичай використовуються "rolling updates" – тобто, ви просто оновлюєте пакети та перезапускаєте сервіс. Synapse спроектований так, щоб бути досить стійким до таких оновлень.
  • Maintenance window: Для великих оновлень PostgreSQL або операційної системи, а також для міграції бази даних Synapse (що буває рідко), рекомендується планувати "вікно обслуговування", коли сервер буде недоступний. Заздалегідь попередьте користувачів.

Рекомендується регулярно (раз на місяць) оновлювати систему:


sudo apt update && sudo apt upgrade -y
sudo apt autoremove -y
sudo systemctl restart matrix-synapse # Перезапуск Synapse після оновлення системних бібліотек
sudo systemctl restart caddy # Перезапуск Caddy, якщо були оновлення
    

Також слідкуйте за новинами проєкту Matrix Synapse для інформації про критичні оновлення та нові версії.

Усунення несправностей + FAQ

У цьому розділі ми розглянемо типові проблеми, з якими можна зіткнутися при налаштуванні Matrix Synapse, та надамо відповіді на часті запитання.

Не працює федерація (не можу спілкуватися з іншими серверами)

Що перевірити:

  • DNS SRV-записи: Переконайтеся, що _matrix._tcp.yourdomain.com та _matrix-federation._tcp.yourdomain.com коректно вказують на ваш сервер та порт 8448. Використовуйте dig SRV _matrix._tcp.yourdomain.com.
  • Файрвол (UFW): Переконайтеся, що порт 8448 відкритий для вхідних з'єднань: sudo ufw status.
  • Caddy/Nginx: Перевірте логи веб-сервера. Переконайтеся, що він правильно проксіює запити на /_matrix/federation/ на Synapse (порт 8008).
  • Логи Synapse: Перевірте логи Synapse на наявність помилок федерації: sudo journalctl -u matrix-synapse -f. Шукайте повідомлення, пов'язані з "federation" або "remote server".
  • .well-known файли: Переконайтеся, що https://yourdomain.com/.well-known/matrix/server та https://yourdomain.com/.well-known/matrix/client доступні та повертають коректний JSON, що вказує на ваш server_name.

Як виправити: Виправте DNS-записи, відкрийте порти у файрволі, перевірте конфігурацію Caddy/Nginx на предмет помилок проксіювання. Для .well-known файлів, якщо ваш server_name відрізняється від кореневого домену, переконайтеся, що ваш веб-сервер правильно перенаправляє запити до цих шляхів на домен, де встановлено Synapse.

Клієнти не можуть підключитися до сервера

Що перевірити:

  • HTTPS: Переконайтеся, що ваш домен доступний за HTTPS (порт 443) і сертифікат дійсний. Перевірте через браузер або curl -v https://matrix.yourdomain.com/.
  • Caddy/Nginx: Перевірте логи веб-сервера. Переконайтеся, що запити на /_matrix/client/ проксіюються на Synapse.
  • Логи Synapse: Шукайте помилки, пов'язані з "client" або "connection".
  • Порт 8008: Переконайтеся, що Synapse слухає на порту 8008 (або іншому, якщо ви змінювали) і доступний для веб-сервера (netstat -tulnp | grep 8008).

Як виправити: Усуньте проблеми з HTTPS (можливо, Caddy не зміг отримати сертифікат), перевірте правила проксіювання в Caddyfile, переконайтеся, що Synapse запущений і слухає на правильному порту. Якщо ви змінили server_name у homeserver.yaml, переконайтеся, що він відповідає домену, за яким клієнти намагаються підключитися.

Не можу зареєструвати нового користувача

Що перевірити:

  • enable_registration: Перевірте, що в /etc/matrix-synapse/homeserver.yaml параметр enable_registration встановлений на true. Після зміни не забудьте перезапустити Synapse.
  • Логи Synapse: Подивіться логи на предмет помилок реєстрації.
  • Захист від спаму: Synapse має вбудовані механізми захисту від спаму, які можуть блокувати реєстрацію. Перевірте відповідні налаштування.

Як виправити: Встановіть enable_registration: true і перезапустіть Synapse. Якщо проблема зберігається, тимчасово вимкніть будь-який захист від спаму в конфігурації, щоб перевірити, чи не вона є причиною.

Яка мінімальна конфігурація VPS підійде?

Для невеликого особистого або сімейного сервера Matrix Synapse (до 10 активних користувачів) мінімально знадобиться 1-2 vCPU, 2 GB RAM та 40-60 GB NVMe SSD-диска. Цієї конфігурації буде достатньо для базових функцій чату та невеликої кількості медіафайлів. Однак, якщо ви плануєте активне використання голосових/відеодзвінків або великий обсяг історії повідомлень, рекомендується збільшити ресурси до 4 GB RAM та 80 GB SSD для більш стабільної роботи.

Що обрати — VPS чи dedicated для цього завдання?

Вибір між VPS та dedicated сервером залежить від масштабу вашого проєкту та вимог до продуктивності. Для більшості персональних, сімейних або невеликих командних розгортань (до кількох сотень користувачів) VPS буде оптимальним та економічно вигідним рішенням. Він пропонує достатню гнучкість та продуктивність. Виділений сервер стає необхідним, якщо ви плануєте обслуговувати тисячі користувачів, зберігати терабайти даних, або якщо у вас є дуже суворі вимоги до ізоляції ресурсів, продуктивності, безпеки та відповідності нормативним вимогам. Dedicated сервери надають максимальний контроль над апаратним забезпеченням, але пов'язані з вищими витратами та складністю управління.

Сервер повільно працює або зависає

Що перевірити:

  • Використання ресурсів: Використовуйте htop або top для моніторингу CPU та RAM. Якщо Synapse або PostgreSQL споживають занадто багато ресурсів, можливо, вам не вистачає RAM або CPU.
  • Логи Synapse: Перевірте логи на наявність попереджень або помилок, що вказують на проблеми з продуктивністю (наприклад, повільні запити до БД).
  • Дискова підсистема: Повільний диск (особливо HDD або повільний SATA SSD) може бути вузьким місцем. Переконайтеся, що у вас NVMe SSD.
  • Індекси PostgreSQL: Для великих баз даних переконайтеся, що індекси створені та використовуються ефективно. Synapse зазвичай створює їх сам, але іноді може знадобитися ручна оптимізація.

Як виправити: Якщо не вистачає RAM або CPU, розгляньте апгрейд вашого VPS. Якщо проблема в диску, переконайтеся, що використовуєте NVMe SSD. Перевірте конфігурацію PostgreSQL та Synapse на предмет неефективних налаштувань. Можливо, варто очистити старі медіафайли або історію чатів, якщо вони займають занадто багато місця.

Висновки та наступні кроки

Схема: Висновки та наступні кроки
Схема: Висновки та наступні кроки

Вітаємо! Ви успішно встановили та налаштували власний сервер Matrix Synapse на VPS. Тепер у вас є повністю контрольована та приватна комунікаційна платформа, яка забезпечує безпечне спілкування для вас та ваших користувачів, а також дозволяє взаємодіяти з іншими серверами Matrix по всьому світу. Ви отримали цінний досвід у розгортанні та управлінні складними мережевими сервісами.

Куди рухатися далі?

  • Інтеграція з іншими сервісами: Вивчіть мости Matrix (Matrix Bridges) для підключення до інших чат-платформ, таких як Telegram, Discord, IRC, Slack. Це дозволить вашим користувачам спілкуватися з людьми на цих платформах прямо з вашого Matrix-сервера.
  • Оптимізація продуктивності: Для великих інсталяцій розгляньте можливість використання Prometheus та Grafana для моніторингу ресурсів сервера та продуктивності Synapse. Оптимізуйте налаштування PostgreSQL та Synapse для підвищення швидкості роботи.
  • Додаткові функції: Вивчіть можливість додавання голосових/відеодзвінків через власні STUN/TURN-сервери (наприклад, Coturn) для покращення якості зв'язку, особливо якщо користувачі знаходяться за NAT.

Поділитися цим записом:

Встановлення та налаштування Matrix Synapse на VPS: власний сервер для Element та федерованих чатів
support_agent
Valebyte Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.