Лучшие самохостинговые альтернативы Discord в 2023: Полное руководство

Ищете альтернативу Discord? Обзор лучших самохостинговых решений для замены Discord: Matrix, Mumble, Tealium и другие. Пошаговые инструкции по установке и настройке.

Не указано

Установка зависимостей

Обновление системы и установка необходимых пакетов для работы Synapse

sudo apt update
sudo apt upgrade -y
sudo apt install -y python3-pip python3-dev python3-venv build-essential libssl-dev libffi-dev libjpeg-dev libpq-dev postgresql postgresql-contrib curl

Установка PostgreSQL

Установка и настройка PostgreSQL как базы данных для Synapse

sudo systemctl start postgresql
sudo systemctl enable postgresql
sudo -u postgres createuser --encrypted -P synapse
sudo -u postgres createdb -O synapse synapse

Установка Synapse

Создание директории для Synapse и установка через pip

sudo mkdir /opt/synapse
sudo chown $USER:$USER /opt/synapse
cd /opt/synapse
python3 -m venv synapse
source synapse/bin/activate
pip install -U pip setuptools wheel
pip install matrix-synapse

Настройка Synapse

Генерация и редактирование конфигурационного файла для Synapse

python -m synapse.app.homeserver --server-name yourdomain.com --config-path homeserver.yaml --generate-config --report-stats=no

# В конфигурационном файле homeserver.yaml:
server_name: "yourdomain.com"
public_baseurl: "https://yourdomain.com"

database:
  name: "psycopg2"
  args:
    user: "synapse"
    password: "your_password"
    database: "synapse"
    host: "localhost"
    port: 5432

listeners:
  - port: 8008
    tls: false
    type: http
    x_forwarded: true
    resources:
      - names: [client, federation]
        compress: true

media_store_path: "/var/matrix/media"

enable_registration: true
require_3pid: ["email", "msisdn"]
registration_shared_secret: "your_registration_secret"
max_mxc_size: 50 * 1024 * 1024  # 50MB

sudo mkdir -p /var/matrix/media
sudo chown $USER:$USER /var/matrix/media

Настройка reverse proxy (Nginx)

Установка и настройка Nginx как reverse proxy для Synapse

sudo apt install -y nginx

# Создание файла конфигурации /etc/nginx/sites-available/matrix:
server {
    listen 80;
    server_name yourdomain.com;

    location /_matrix {
        proxy_pass http://localhost:8008;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Host $host;
        
        client_max_body_size 50M;
        
        proxy_connect_timeout 60s;
        proxy_send_timeout 90s;
        proxy_read_timeout 90s;
    }
}

sudo ln -s /etc/nginx/sites-available/matrix /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

Настройка SSL

Установка и настройка SSL-сертификата с помощью Certbot

sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d yourdomain.com

Запуск и проверка

Создание системного сервиса для Synapse и его запуск

sudo nano /etc/systemd/system/synapse.service

# Содержимое файла:
[Unit]
Description=Matrix homeserver (Synapse)
After=network.target

[Service]
User=your_username
WorkingDirectory=/opt/synapse
Environment=PYTHONUNBUFFERED=1
ExecStart=/opt/synapse/synapse/bin/python -m synapse.app.homeserver --config-path /opt/synapse/homeserver.yaml
Restart=always

[Install]
WantedBy=multi-user.target

sudo systemctl daemon-reload
sudo systemctl start synapse
sudo systemctl enable synapse
sudo systemctl status synapse

Создание первого пользователя

Создание пользователя администратора для вашего Matrix homeserver

register_new_matrix_user -c /opt/synapse/homeserver.yaml https://yourdomain.com

Оптимизация производительности для высоконагруженных серверов

Добавление Redis для кэширования и настройка рабочих процессов

sudo apt install -y redis-server

# В конфигурационный файл homeserver.yaml добавить:
redis:
  enabled: true
  host: localhost
  port: 6379

workers:
  - 0  # Количество рабочих процессов (0 - автоматическое определение)