Представь, что тебе нужно развернуть собственный сервер для децентрализованного общения с полным контролем над данными. Matrix — это открытый протокол для реального времени коммуникации, а Synapse — его эталонная серверная реализация. Давай разберем, как установить Matrix Synapse на Ubuntu (и Debian) от начала до рабочего состояния.
Что тебе понадобится перед установкой
- Сервер Ubuntu 20.04/22.04 LTS или Debian 11/12 (минимум 1 ГБ RAM)
- Доменное имя (например, matrix.example.com)
- Базовые знания командной строки Linux
- Root-доступ или пользователь с sudo-привилегиями
Шаг 1: Подготовка системы и установка зависимостей
Начнем с обновления системы и установки необходимых пакетов:
# Обновляем список пакетов
sudo apt update
sudo apt upgrade -y
# Устанавливаем зависимости
sudo apt install -y \
lsb-release \
wget \
apt-transport-https \
software-properties-common \
python3-pip \
python3-venv \
python3-dev \
build-essential \
libssl-dev \
libffi-dev \
libjpeg-dev \
libpq-dev
Шаг 2: Установка Matrix Synapse на Ubuntu
Добавляем официальный репозиторий Matrix и устанавливаем Synapse:
# Добавляем ключ репозитория
sudo wget -O /usr/share/keyrings/matrix-org-archive-keyring.gpg \
https://packages.matrix.org/debian/matrix-org-archive-keyring.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
# Обновляем и устанавливаем Synapse
sudo apt update
sudo apt install matrix-synapse-py3
Альтернатива: Установка Matrix на Debian
Для Debian процесс аналогичен, но убедись, что версия Debian поддерживается:
# Для Debian 11 (Bullseye) и 12 (Bookworm)
# Используй ту же команду добавления репозитория
# Проверь соответствие $(lsb_release -cs) твоей версии
Шаг 3: Базовая конфигурация Synapse
Основной конфигурационный файл находится в /etc/matrix-synapse/homeserver.yaml. Отредактируем его:
# Создаем резервную копию конфига
sudo cp /etc/matrix-synapse/homeserver.yaml \
/etc/matrix-synapse/homeserver.yaml.backup
# Редактируем конфиг
sudo nano /etc/matrix-synapse/homeserver.yaml
Найди и измени следующие параметры:
# Имя сервера (должно совпадать с введенным при установке)
server_name: "example.com"
# Публикация сервера (для федерации)
public_baseurl: "https://matrix.example.com"
# Регистрация новых пользователей
enable_registration: true
enable_registration_without_verification: true
# Лимиты
rc_messages_per_second: 0.2
rc_message_burst_count: 10.0
# База данных (оставляем SQLite для начала)
database:
name: "sqlite3"
args:
database: "/var/lib/matrix-synapse/homeserver.db"
Шаг 4: Настройка Nginx и SSL
Установим Nginx в качестве обратного прокси и настроим SSL через Certbot:
# Устанавливаем Nginx
sudo apt install nginx -y
# Устанавливаем Certbot для SSL
sudo apt install certbot python3-certbot-nginx -y
Создаем конфиг Nginx для Matrix:
sudo nano /etc/nginx/sites-available/matrix
server {
listen 80;
listen [::]:80;
server_name matrix.example.com;
location /.well-known/matrix/server {
return 200 '{"m.server": "matrix.example.com:443"}';
add_header Content-Type application/json;
add_header Access-Control-Allow-Origin *;
}
location /.well-known/matrix/client {
return 200 '{"m.homeserver": {"base_url": "https://matrix.example.com"}}';
add_header Content-Type application/json;
add_header Access-Control-Allow-Origin *;
}
location / {
return 301 https://$server_name$request_uri;
}
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name matrix.example.com;
ssl_certificate /etc/letsencrypt/live/matrix.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/matrix.example.com/privkey.pem;
location /_matrix {
proxy_pass http://localhost:8008;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $host;
}
location /_synapse/client {
proxy_pass http://localhost:8008;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $host;
}
}
# Активируем конфиг
sudo ln -s /etc/nginx/sites-available/matrix /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
# Получаем SSL сертификат
sudo certbot --nginx -d matrix.example.com
Шаг 5: Запуск и управление Matrix Synapse
Запускаем сервис и проверяем статус:
# Перезапускаем Synapse с новым конфигом
sudo systemctl restart matrix-synapse
# Проверяем статус
sudo systemctl status matrix-synapse
# Включаем автозагрузку
sudo systemctl enable matrix-synapse
# Просмотр логов
sudo journalctl -u matrix-synapse -f
Шаг 6: Создание первого пользователя
Создадим администратора через командную строку:
# Регистрируем нового пользователя
sudo register_new_matrix_user -c /etc/matrix-synapse/homeserver.yaml http://localhost:8008
# Тебе будет предложено:
# Username: admin
# Password: (надежный пароль)
# Make admin [yes]: yes
Сравнение методов установки
| Метод | Плюсы | Минусы | Для кого |
|---|---|---|---|
| APT (официальный репозиторий) | Автообновления, простота, стабильность | Не самая свежая версия | Для продакшена |
| Docker | Изоляция, простота развертывания | Сложнее с бэкапами | Для тестирования |
| Из исходников | Самые свежие версии | Сложно поддерживать | Для разработчиков |
Частые вопросы (FAQ)
Как проверить, что установка Matrix Synapse на Ubuntu прошла успешно?
Выполни команду curl http://localhost:8008/_matrix/client/versions. Должен вернуться JSON с версией Synapse. Также проверь логи: sudo journalctl -u matrix-synapse -n 50.
Можно ли установить Matrix на Debian 11?
Да, процесс установки Matrix на Debian идентичен Ubuntu. Убедись, что используешь правильное имя кодовой версии в репозитории. Для Debian 11 Bullseye команда добавления репозитория работает без изменений.
Как настроить PostgreSQL вместо SQLite?
Установи PostgreSQL: sudo apt install postgresql. Создай БД и пользователя, затем измени в homeserver.yaml:
database:
name: "psycopg2"
args:
user: "matrix"
password: "твой_пароль"
database: "synapse"
host: "localhost"
cp_min: 5
cp_max: 10
Как обновить Synapse?
Для обновления через APT: sudo apt update && sudo apt upgrade matrix-synapse-py3. Перед обновлением всегда делай бэкап конфига и базы данных.
SYNAPSE_CACHE_FACTOR=0.5 в /etc/default/matrix-synapse.
Дальнейшие шаги
- Настрой бэкапы базы данных (cron + pg_dump или sqlite .backup)
- Установи Element Web как веб-клиент
- Настрой мониторинг (Prometheus + Grafana)
- Включи двухфакторную аутентификацию
- Настрой интеграции с ботом (mautrix-telegram, mautrix-whatsapp)
Теперь у тебя работает собственный сервер Matrix на Ubuntu! Помни: федерация (общение с другими серверами) заработает через 5-10 минут после настройки SSL. Проверить федерацию можно через Matrix Federation Tester. Удачи в освоении децентрализованного общения!