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
Файл конфигурации приводим в следующий вид:
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
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