1. Устанавливаем основные компоненты для Synapse, Element Web и Synapse Admin
Можно использовать как скрипт
#!/usr/bin/env bash
set -euo pipefail
# =========================================== #
# Предварительные действия #
# =========================================== #
# Обновляем систему
apt update -y
apt upgrade -y
apt full-upgrade -y
# Установка необходимых утилит (gnupg2 и lsb-release — самые важные)
apt install -y curl wget gnupg lsb-release mc htop lsof lynx
apt install -y apt-transport-https jq
apt install -y cockpit
apt install -y nginx
systemctl stop nginx
systemctl disable nginx
rm /etc/nginx/sites-enabled/default
# ============================================ #
# Установка Matrix Synapse и компонентов #
# ============================================ #
# Ключ репозитория matrix.org
wget -qO /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" \
> /etc/apt/sources.list.d/matrix-org.list
# Обновляем списки пакетов с новым репозиторием
apt update -y
# Предзаполняем debconf (замените example.com на нужный домен)
cat <<EOF | debconf-set-selections
matrix-synapse-py3 matrix-synapse/server-name string example.com
matrix-synapse-py3 matrix-synapse/report-stats boolean false
EOF
# Установка Synapse + PostgreSQL без вопросов
DEBIAN_FRONTEND=noninteractive \
apt install -y matrix-synapse-py3 postgresql libpq5 python3-psycopg2
apt update
apt install -y coturn
systemctl stop matrix-synapse coturn cockpit postgresql
systemctl disable matrix-synapse coturn cockpit postgresql
# =========================================== #
# Установка Element Web #
# =========================================== #
# Добавляем ключ подписи
wget -O /usr/share/keyrings/element-io-archive-keyring.gpg \
https://packages.element.io/debian/element-io-archive-keyring.gpg
# Добавляем репозиторий
echo "deb [signed-by=/usr/share/keyrings/element-io-archive-keyring.gpg] https://packages.element.io/debian/ default main" \
| tee /etc/apt/sources.list.d/element-io.list
# Обновляем и устанавливаем Element Web
apt update
apt install -y element-web
# =========================================== #
# Установка Synapse-Admin #
# =========================================== #
mkdir -p /var/www/synapse-admin
cd /var/www/synapse-admin
latest=$(curl -s https://api.github.com/repos/Awesome-Technologies/synapse-admin/releases/latest | jq -r .tag_name)
wget -q "https://github.com/Awesome-Technologies/synapse-admin/releases/download/$latest/synapse-admin-$latest.tar.gz" -O synapse-admin.tar.gz
tar xzf synapse-admin.tar.gz --strip-components=1
rm synapse-admin.tar.gz
chown -R www-data:www-data /var/www/synapse-admin
# =========================================== #
# Создание конфигов Nginx #
# =========================================== #
touch /etc/nginx/sites-available/synapse-admin.conf
touch /etc/nginx/sites-available/element.conf
ln -s /etc/nginx/sites-available/synapse-admin.conf /etc/nginx/sites-enabled/
ln -s /etc/nginx/sites-available/element.conf /etc/nginx/sites-enabled/
# Очищаем кэш Apt
apt clean
rm -rf /var/lib/apt/lists/*