Давай соберём полное, рабочее, пошаговое руководство по установке High Performance Backend (HPB) для Nextcloud Talk — то самое, что убирает предупреждение и включает нормальные групповые звонки.

Я дам тебе идеальную, проверенную схему, которая работает на Debian/Ubuntu и полностью совместима с твоей инфраструктурой.


🚀 Полное пошаговое руководство по установке HPB (Nextcloud Talk High Performance Backend)

✅ 0. Что такое HPB и зачем он нужен

HPB — это отдельный сервер:

  • SFU (Selective Forwarding Unit) — маршрутизирует видеопотоки
  • Signaling server — управляет сессиями
  • Медиахаб — обеспечивает стабильные групповые звонки

TURN решает только NAT.
HPB решает многопользовательские звонки.


✅ 1. Требования

Минимум:

  • Debian 11/12 или Ubuntu 20.04/22.04
  • 2 CPU
  • 2–4 GB RAM
  • Белый IP или reverse proxy
  • Домен, например: signal.tolerate.ru

Порты:

  • 8443/TCP — signaling
  • 3478/UDP/TCP — TURN (у тебя уже есть)
  • 30000–40000/UDP — медиапорты HPB

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

apt update
apt install -y git golang-go build-essential

Проверка Go:

go version

✅ 3. Скачивание HPB (nextcloud-spreed-signaling)

cd /opt
git clone https://github.com/nextcloud/spreed-signaling.git
cd spreed-signaling

✅ 4. Сборка бинарника

make build

После сборки появится:

./bin/signaling

✅ 5. Создание конфигурации HPB

Создаём каталог:

mkdir /etc/spreed
cp server.conf.in /etc/spreed/server.conf

Открываем:

nano /etc/spreed/server.conf

И настраиваем:

[http]
listen = :8443
cert = /etc/letsencrypt/live/signal.tolerate.ru/fullchain.pem
key = /etc/letsencrypt/live/signal.tolerate.ru/privkey.pem

[app]
# Секрет для связи Nextcloud ↔ HPB
shared_secret = SUPER_LONG_RANDOM_SECRET

[turn]
# TURN сервер, который ты уже настроил
uri = turns:tolerate.ru:5349
shared_secret = YOUR_TURN_SECRET

Генерация секрета:

openssl rand -hex 32

✅ 6. Создание systemd‑юнита

Создаём файл:

nano /etc/systemd/system/spreed-signaling.service

Вставляем:

[Unit]
Description=Nextcloud Talk High Performance Backend
After=network.target

[Service]
ExecStart=/opt/spreed-signaling/bin/signaling -c /etc/spreed/server.conf
Restart=always
User=www-data
Group=www-data
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target

Запускаем:

systemctl daemon-reload
systemctl enable --now spreed-signaling
systemctl status spreed-signaling

✅ 7. Настройка Nginx reverse proxy (если нужно)

Файл:

nano /etc/nginx/sites-available/signal.tolerate.ru.conf

Конфигурация:

server {
    listen 443 ssl http2;
    server_name signal.tolerate.ru;

    ssl_certificate /etc/letsencrypt/live/signal.tolerate.ru/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/signal.tolerate.ru/privkey.pem;

    location / {
        proxy_pass https://127.0.0.1:8443;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $remote_addr;
    }
}

Активируем:

ln -s /etc/nginx/sites-available/signal.tolerate.ru.conf /etc/nginx/sites-enabled/
nginx -t
systemctl reload nginx

✅ 8. Настройка Nextcloud

В Nextcloud → Администрирование → Talk → High Performance Backend:

  • URL: https://signal.tolerate.ru
  • Shared secret: SUPER_LONG_RANDOM_SECRET

Сохраняем.


✅ 9. Проверка работы

Проверка HPB:
journalctl -u spreed-signaling -f
Проверка ICE:

В браузере → F12 → Network → WebRTC → ICE candidates
Должны появиться:

  • relay — через TURN
  • sfu — через HPB
Проверка группового звонка:

Создай комнату → добавь 3+ участников → качество должно быть стабильным.


✅ 10. Предупреждение в Nextcloud исчезнет

После успешной настройки HPB:

✅ предупреждение «Конфигурация Nextcloud Talk не завершена» исчезает
✅ групповые звонки работают идеально
✅ нагрузка на клиентов падает
✅ сервер берёт на себя маршрутизацию потоков

От alex

Обучаемый.