Установка synapse matrix на Ubuntu 22.04

Установка synapse matrix на Ubuntu 22.04, postgresql, coturn

Внимание, на сервере не должно быть действующих служб типа Open VPN, Wereguard, проверенно проблемы с localhost и как следствие не запуск служб под synapse. Ориентируйтесь на такой расход, для личных нужд, ну там «пара» друзей не большая группа 1 ядро, 1 гб, 15 гб диск, на холостом ходу этот монстр сжирает 500мб. Если хотите участвовать в группах по сложнее, то тут уже не менее 2 ядра(лучше 4), 4 гб, ну диск в зависимости, как и что вы планируете там постить. В общем кушает он будь здоров, доходит до 8 гб оперативы, альтернатива обычный ejabberd 300 мб оперативы на всё)

Создаем записи DNS:

В статье используется домен example.com, укажите свой домен!

А и АААА(если есть IPv6) на example.com

А и АААА(если есть IPv6) на coturn.example.com

Удаляем Snapd и прописываем IPv6(если нет). Необязательные действия.

Берете здесь

Устанавливаем и настраиваем файл подкачки для Ubuntu 22.04 в один клик(необязательно)

Берете здесь

Установка базы данных postgresql

apt update && apt install postgresql postgresql-contrib

Установка версии с официального репозитория

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get -y install postgresql

Создаем пользователя для создания базы.

sudo -i -u postgres
createuser --interactive --pwprompt

Дальше идет интерактивное меню, вводите логин например vzvnrYaQo7aNFAB и пароль например BRcUpCQCaqnLBJ7VAyp6, в запросе будет ли пользователь root пишите yes

Создаем базу данных под synapse с пользователем выше(vzvnrYaQo7aNFAB)

createdb --encoding=UTF8 --locale=C --template=template0 --owner=vzvnrYaQo7aNFAB synapse

После чего не выходя из postgres, проверяем пользователя и базу(все ли на месте)

psql
\l  #проверка баз 
\du #проверка пользователь
\dt #необязательно наполнение базы и можно \l+

Чтобы выйти CTL/D 2 раза, таким образом попадете назад в пользователя системы.

Оптимизация базы данных в файле раскоментируйте строки ниже в postgresql.conf адрес /etc/postgresql/14/main (рекомендуется), подробнее


    shared_buffers
    effective_cache_size
    work_mem
    maintenance_work_mem
    autovacuum_work_mem

Когда у вас после установки будет файл homeserver.yaml, внесите в него изменения, измените домен, а так же логин и пароль базы данных как показано на рисунке, изменить ключ registration_shared_secret: сгенерируйте свой. Остальное оставьте пока как есть, мы к нему вернемся, когда дойдем до звонков.

Установка matrix-synapse в один клик.

(меняется hostname hostnamectl set-hostname example.com необязательно)

hostnamectl set-hostname example.com && apt install -y lsb-release wget apt-transport-https libpq5 && 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 && sudo apt update && sudo apt install matrix-synapse-py3 && systemctl start matrix-synapse && systemctl enable matrix-synapse && systemctl status matrix-synapse && ss -plnt | grep 8008 && nano /etc/matrix-synapse/homeserver.yaml && systemctl restart matrix-synapse

Откроется файл homeserver.yaml, посмотрите и закройте). Скачайте готовый файл homeserver.yaml, заполните там базу данных(укажите свой логин и пароль, а так же поменяйте домен, скриншот выше). Можете загрузить его на место /etc/matrix-synapse с помощью FileZilla. Ниже м добавим в него возможность звонков.

Настройка Nginx и сертификата

Поменяйте example.com на свой домен

apt update && apt upgrade && apt install nginx && apt install certbot python3-certbot-nginx && certbot --nginx -d example.com

Создайте Диффи-Хеллмана . групповой сертификат

$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096

Будет выпущен сертификат. После этого с помощью FileZilla идем по адресу /etc/nginx/sites-available и /etc/nginx/sites-enabled и удаляем default, и файл и ссылку. Это для того чтобы не создать конфликт 80 и 443 порта в nginx, так как и в конфиге ниже и созданном certbot, будут одинаковые домены и порты. Не переживайте автопродление будет запускаться прекрасно и без этого, как написано ниже(делать после конфига ngnix).

Теперь стоит создать synapse.conf в /etc/nginx/conf.d. Скачивайте файл, и просто правьте там example.com на свой. Можно методом замены в редакторе, так быстрее и проще. После чего с помощью FileZilla закидываете в папку по пути /etc/nginx/conf.d. Проверяем конфиг и перезапускаем сервер. Взято от сюда если хотите подробнее.

nginx -t
systemctl restart nginx

Проверяете автопроделение сертификата.

systemctl status certbot.timer && certbot renew --dry-run

Настройка UFW. Если будете подключать звонки, то ufw allow 3478 и ufw allow 49152:65535/udp оставьте, если нет, удалите

ufw allow 22/tcp
ufw allow 80/tcp
ufw allow 443
ufw allow 3478
ufw allow 5349
ufw allow 49152:65535/udp
ufw enable

#ufw allow 8448 открывать нет необходимости так как в конфге Nginx для соединения с серверами matrix используется порт 443

Внесите изменения в homeserver.yaml как показано выше. Добавьте пользователя, интерактивно вводя логин и пароль(2 раза), а так же yes на запрос root пользователь. Перезапустите matrix-synapse

register_new_matrix_user -c /etc/matrix-synapse/homeserver.yaml http://localhost:8008
systemctl restart matrix-synapse

Ваш synapse-matrix с этого момента готов к переписке и отправке файлов, перейдите например https://app.element.io/, или скачайте приложение. Если не будете использовать функцию звонков, то удалите из homeserver.yaml, как показано на рисунке. Сохраните, и перезапустите matrix-synapse

Установите Котурн, звонки и видео

Устанавливаем coturn, и сразу выпускаем сертификат для поддомена(поменяйте example.com на свой, в команде ниже).

apt install coturn && sudo certbot certonly --nginx -d coturn.example.com

Есть такая информация, что стоит раскомментировать TURNSERVER_ENABLED=1, но как я уже понял необязательно.

nano /etc/default/coturn
TURNSERVER_ENABLED=1

После этого качайте с помощью FileZilla по адресу файл /etc/turnserver.conf(это будет оригинал), а вот уже заполненный. Поменяйте только в адресе к сертификатам (которые мы выпустили выше, вставив свой домен), и ключ static-auth-secret=, который потом укажите в файле homeserver.yaml, turn_shared_secret:, он будет одинаковый в двух этих файлах. Взято от сюда если хотите подробнее. Закачайте его назад на сервер, заменив файл, и перезапустите coturn.

sudo systemctl restart coturn
systemctl restart matrix-synapse

Проверка matrix сервера здесь. Всё!

Похожие записи