Synapse Matrix homeserver установка и настройка

Synapse Matrix homeserver установка при помощи Python и pip, для этого на нужно иметь в системе Python 3.8 или новее, до Python 3.11

apt install python3.11-venv
cd /opt && mkdir synapse && cd synapse
python3 -m venv .venv
source .venv/bin/activate
pip install --upgrade pip
pip install --upgrade setuptools
pip install matrix-synapse

Генерируем конфиг сервера: server-name my.domain.name — ваш домен

python -m synapse.app.homeserver \
    --server-name my.domain.name \
    --config-path homeserver.yaml \
    --generate-config \
    --report-stats=no

Файл конфигурации приводим в следующий вид:

homeserver.yaml

server_name: "my.domain.name"
pid_file: /var/run/homeserver.pid
listeners:
  - port: 8008
    tls: false
    type: http
    x_forwarded: true
    bind_addresses: ['127.0.0.1']
    resources:
      - names: [client]
        compress: false
database:
  name: psycopg2
  txn_limit: 10000
  args:
    user: synapse
    password: fgfdtrtzdfsSfGggbv
    database: synapse
    host: localhost
    port: 5432
    cp_min: 5
    cp_max: 10
log_config: "/opt/synapse/my.domain.name.log.config"
media_store_path: /opt/synapse/media_store
registration_shared_secret: "vNbiisFsNSTDeJuhG^u,_wGQrkm^eBLOj#&_kg1"
report_stats: false
macaroon_secret_key: "Bx=SK&6VDA3Rh:RmXani9qmQ~FXnuke3;c.K&"
form_secret: "~m,hoz:lp*N@ctHIcI5;^GmZsch8HHJ*2n88XuH4*JqI"
signing_key_path: "/opt/synapse/my.domain.name.signing.key"
trusted_key_servers:
  - server_name: "my.domain.name"
suppress_key_server_warning: true
max_upload_size: 100M
enable_registration: false
matrix_synapse_federation_enabled: false
matrix_synapse_federation_port_enabled: false
search_all_users: true
prefer_local_users: true
turn_uris: ["turn:my.domain.name?transport=udp","turn:my.domain.name?transport=tcp"]
turn_shared_secret: "vNbiisFsNSJuhGu#&LkHtLGWm"
turn_user_lifetime: 86400000
admin_users:
  - "@user:my.domain.name"

# vim:ft=yaml

Устанавливаем postgresql:

apt install postgresql

Редактируем конфиг postgresql:

nano /etc/postgresql/15/main/postgresql.conf

Находим строку и убираем передней решетку:

#listen_addresses = ‘localhost’ # Было
listen_addresses = ‘localhost’ # Стало

Заходим под пользователем postgres создаем базу данных и пользователя для нее:

su postgres
createuser synapse
createdb --encoding=UTF8 --locale=C --template=template0 --owner=synapse synapse
psql
ALTER USER synapse with PASSWORD 'fgfdtrtzdfsSfGggbv';
\q
exit

Устанавливаем nginx и certbot:

apt install nginx python3-certbot-nginx

Получаем сертификат для my.domain.name — замените на свой домен:

certbot --nginx -d my.domain.name

Добавляем конфиг для nginx:

nano /etc/nginx/conf.d/synapse.conf
synapse.conf

server {
    listen 80;
    server_name my.domain.name;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    server_name my.domain.name;

    ssl_certificate /etc/letsencrypt/live/my.domain.name/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/my.domain.name/privkey.pem;

    location ~ ^(/|/_matrix|/_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;
        client_max_body_size 100M;
        proxy_http_version 1.1;
    }
}

server {
    listen 8448 ssl http2 default_server;
    server_name my.domain.name;

    ssl_certificate /etc/letsencrypt/live/my.domain.name/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/my.domain.name/privkey.pem;
    location / {
        proxy_pass http://localhost:8008;
        proxy_set_header X-Forwarded-For $remote_addr;
    }
}

Устанавливаем coturn для совершения звонков и видео:

apt install coturn

Редактируем конфиг coturn:

/etc/turnserver.conf

Найдите строки в файле turnserver.conf и приведите их в состояние из текста ниже:

listening-port=3478
fingerprint
use-auth-secret
static-auth-secret=vNbiisFsNSJuhGu#&LkHtLGWm #Должен быть аналогичным тому что прописан в конфиге Synapse
realm=my.domain.name
user-quota=100
total-quota=1200
no-tcp-relay # VoIP-трафик полностью UDP. Нет причин разрешать пользователям подключаться к произвольным конечным точкам TCP через ретранслятор.
syslog
no-multicast-peers

Добавляем в автозагрузку и стартуем coturn:

systemctl enable coturn
systemctl start coturn

Добавить пользователя из консоли можно командой из папки synapse:

source .venv/bin/activate
register_new_matrix_user -c homeserver.yaml

Информацию для установки и настройки сервера брал по ссылкам ниже:
Installation Instructions
Установка и настройка сервера Matrix Synapse + PostgreSQL + Admin UI + Element WEB. Ubuntu 20 LTS / Ubuntu 22 LTS

Вам может быть интересно Установка X-UI и XRay (XTLS) сервера на Debian

Добавить комментарий

Поля, отмеченные звёздочкой, обязательны к заполнению

Выполните арифметические действия *Достигнут лимит времени. Пожалуйста, введите CAPTCHA снова.