Для начала дам вам официальный мануал по установке synapse через PyPl.
Напомню, что для работы Synapse требуется Python версии не ниже 3.8. И прежде чем устанавливать новый Python, установите необходимые зависимости для Synapse.
Первым делом открываем нашу оболочку и устанавливаем необходимые зависимости вашей операционной системы. У меня Almalinux, поэтому команды следующие…
sudo dnf install libtiff-devel libjpeg-devel libzip-devel freetype-devel \
libwebp-devel libxml2-devel libxslt-devel libpq-devel \
python3-virtualenv libffi-devel openssl-devel python3-devel \
libicu-devel
sudo dnf groupinstall "Development Tools"
Ну а теперь можно перейти к установке synapse. Для начала создайте виртуальное окружение Python. В инструкции на официальном сайте synapse используется встроенная библиотека virtualenv, я же привык работать с pipenv. Поэтому, если она у вас ещё не установлена
pip3 install pipenv
Создайте папку synapse и перейдите в неё
mkdir synapse
cd synapse
Находясь внутри папки, создайте виртуальное окружение
pipenv shell
при этом вы сразу активируете только что созданную виртуальную среду. Обратите внимание на первое слово промпта. Это имя вашего виртуального окружения.
Находясь в виртуальном окружении поочерёдно введите команды для установки необходимых пакетов
pip install --upgrade pip
pip install --upgrade setuptools
pip install matrix-synapse
Теперь создадим файл настройки командой. При этом впишите своё имя сервера(хотя можно оставить и так) и выберите хотите ли вы отправлять статистику. Обращаться к серверу не обязательно по доменному имени, можно использовать айпишник. По умолчанию synapse использует порт 8008.
python -m synapse.app.homeserver \
--server-name my.domain.name \
--config-path homeserver.yaml \
--generate-config \
--report-stats=[yes|no]
Данная команда создаст все необходимые файлы, которые нужны для работы synapse. Если на данном этапе вы получили ошибку о том, что для работы требуется библиотека sqlite3 версии 3.27 и выше, то читай как установить sqlite3.
Среди сгенерированных файлов будет файл настройки homeserver.yaml который вы можете отредактировать перед запуском своего synapse сервера. На официальном сайте вы найдёте описание всех возможных настроек.
Для запуска synapse сервера введите команду
synctl start
Помните, команда должна вводиться в виртуальном окружении. Если вы получили ошибку ModuleNotFoundError No module named _ctypes
Ничего страшного. Просто перекомпилируйте Python. Но перед этим не забудьте удалить виртуальное окружение.
exit // выйди из виртуального окружения
pipenv --rm // удалить виртуальное окружение
rm -r * // удалить все файлы из текущей директории
После успешной пересборки Python снова создайте виртуальное окружение и заново проделайте все шаги описанные в этой статье.