Skip to main content

Matrix - 1-й вариант установки

Matrix - 1-й вариант установки
======================================
Прежде всего обновим нашу систему:
-------------------------------
sudo su
apt update
apt upgrade


Установим дополнительные зависимости:
--------------------------------
apt install net-tools python3-dev python3-pip libpq-dev mc aptitude htop apache2-utils lsb-release wget apt-transport-https
pip install psycopg2

Подключим matrix.org репозитории для Ubuntu/Debian x64 архитектуры доступные по адресу https://packages.matrix.org/debian/.
---------------------------------------------------------------------------------------------------------------------
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" | tee /etc/apt/sources.list.d/matrix-org.list
apt update


Установим Matrix Synapse:
------------------------------------
apt install matrix-synapse-py3

В процессе установки не забываем установить имя нашего сервера (домен)

Файлы конфигурации Matrix находятся в /etc/matrix-synapse
Лучше сразу отредактировать под свои нужды:

mcedit /etc/matrix-synapse/homeserver.yaml


////////////////////////////////////////////////////////
ОРИГИНАЛЬНЫЙ ФАЙЛ
////////////////////////////////////////////////////////

# Configuration file for Synapse.
#
# This is a YAML file: see [1] for a quick introduction. Note in particular
# that *indentation is important*: all the elements of a list or dictionary
# should have the same indentation.
#
# [1] https://docs.ansible.com/ansible/latest/reference_appendices/YAMLSyntax.html
#
# For more information on how to configure Synapse, including a complete accounting of
# each option, go to docs/usage/configuration/config_documentation.md or
# https://matrix-org.github.io/synapse/latest/usage/configuration/config_documentation.html
#
# This is set in /etc/matrix-synapse/conf.d/server_name.yaml for Debian installations.
# server_name: "SERVERNAME"
pid_file: "/var/run/matrix-synapse.pid"
listeners:
  - port: 8008
    tls: false
    type: http
    x_forwarded: true
    bind_addresses: ['::1', '127.0.0.1']
    resources:
      - names: [client, federation]
        compress: false
database:
  name: sqlite3
  args:
    database: /var/lib/matrix-synapse/homeserver.db
log_config: "/etc/matrix-synapse/log.yaml"
media_store_path: /var/lib/matrix-synapse/media
signing_key_path: "/etc/matrix-synapse/homeserver.signing.key"
trusted_key_servers:
  - server_name: "matrix.org"
  
/////////////////////////////////////////////////////////////

/////////////////////////////////////////////////////////////
ОТРЕДАКТИРОВАННЫЙ ФАЙЛ
/////////////////////////////////////////////////////////////

# Configuration file for Synapse.
#
# This is a YAML file: see [1] for a quick introduction. Note in particular
# that *indentation is important*: all the elements of a list or dictionary
# should have the same indentation.
#
# [1] https://docs.ansible.com/ansible/latest/reference_appendices/YAMLSyntax.html
#
# For more information on how to configure Synapse, including a complete accounting of
# each option, go to docs/usage/configuration/config_documentation.md or
# https://matrix-org.github.io/synapse/latest/usage/configuration/config_documentation.html
#
# This is set in /etc/matrix-synapse/conf.d/server_name.yaml for Debian installations.
# server_name: "SERVERNAME"
pid_file: "/var/run/matrix-synapse.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: matrix
    password: YOUR-MATRIX-DB-USER-PASSWORD
    database: matrix
    host: localhost
    port: 5432
    cp_min: 5
    cp_max: 10
log_config: "/etc/matrix-synapse/log.yaml"
media_store_path: /var/lib/matrix-synapse/media
signing_key_path: "/etc/matrix-synapse/homeserver.signing.key"
trusted_key_servers:
  - server_name: "matrix.YOUR-DOMAIN.COM"
suppress_key_server_warning: true
max_upload_size: 100M
enable_registration: false
matrix_synapse_federation_enabled: false
matrix_synapse_federation_port_enabled: false
registration_shared_secret: "Registration-Shared-Secret"
search_all_users: true
prefer_local_users: true
turn_uris: ["turn:matrix.YOUR-DOMAIN.COM?transport=udp","turn:matrix.YOUR-DOMAIN.COM?transport=tcp"]
turn_shared_secret: "Turn-Shared-Secret"
turn_user_lifetime: 86400000
admin_users:
  - "@admin:matrix.YOUR-DOMAIN.COM"
  
//////////////////////////////////////////////////////////////////


Разберёмся во внесённых изменениях

    bind_addresses: ['127.0.0.1'] — оставляем возможность подключиться к Matrix Synapse только по localhost.

    names: [client] — используем только локальную аутентификацию для пользователей.

    database: — полностью меняем секцию и настраиваем для работы с PostgreSQL.

    server_name: «matrix.YOUR‑DOMAIN.COM» — домен вашего Matrix Synapse сервера.

    max_upload_size: 100M — ограничиваем максимальный размер загружаемых файлов.

    enable_registration: false — отключаем регистрацию из соображений безопасности.

    matrix_synapse_federation_enabled: false - отключаем Matrix Federation
    matrix_synapse_federation_port_enabled: false - отключаем Matrix Federation

    registration_shared_secret: «Registration‑Shared‑Secret» — прописываем длинное случайное значение, лучше воспользоваться генератором и сгенерировать ключ 32–64 символа.

    search_all_users: true — разрешаем поиск пользователей в клиентах.

    turn_uris: [«turn:matrix.YOUR‑DOMAIN.COM?transport=udp»,»turn:matrix.YOUR‑DOMAIN.COM?transport=tcp»] — сразу добавляем настройки для turn сервера, сам сервер установим позже.

    turn_shared_secret: «Turn‑Shared‑Secret» — прописываем длинное случайное значение, лучше воспользоваться генератором и сгенерировать ключ 32–64 символа.