Установка 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 сервера здесь. Всё!