# Инструкция по установке HPB - Nextcloud Spreed Signaling Stack Этот репозиторий содержит все необходимое для развертывания стека Nextcloud Talk на новом сервере. ## Быстрая установка ### Требования - Linux (Debian/Ubuntu рекомендуется) - Root доступ - Открытые порты: - 8080 (signaling HTTP, можно изменить) - 8188 (Janus WebSocket) - 4222 (NATS) - 3478/5349 (coTURN UDP/TCP/TLS) - 9991 (coTURN для signaling, можно изменить) ### Автоматическая установка ```bash # Клонируйте репозиторий git clone https://git.f7cloud.ru/root/F7_HPB.git /tmp/f7cloud-hpb cd /tmp/f7cloud-hpb # Запустите скрипт установки (от root) sudo ./install.sh ``` Скрипт автоматически: - ✅ Генерирует все необходимые секреты - ✅ Создает системных пользователей - ✅ Устанавливает бинарники в `/usr/bin` и `/usr/sbin` - ✅ Копирует конфиги с подстановкой секретов - ✅ Настраивает systemd unit файлы - ✅ Сохраняет секреты в `/etc/f7cloud-spreed-signaling/.secrets.txt` ### После установки **ВАЖНО: Обязательно отредактируйте конфиги перед запуском!** 1. **Signaling server** (`/etc/f7cloud-spreed-signaling/server.conf`): ```bash nano /etc/f7cloud-spreed-signaling/server.conf ``` - Укажите реальные URL бэкендов Nextcloud в секции `[nextcloud-backend-0]` - Проверьте секреты (они уже сгенерированы) 2. **coTURN** (`/etc/turnserver.conf`): ```bash nano /etc/turnserver.conf ``` - Укажите реальные IP адреса в `listening-ip` и `relay-ip` - Укажите `realm` (домен вашего сервера) - Укажите пути к TLS сертификатам (если используете HTTPS) 3. **Janus** (`/etc/janus/janus.jcfg`): - Проверьте пути к плагинам и транспортам - Admin secret уже сгенерирован ### Запуск сервисов ```bash # Включить автозапуск sudo systemctl enable signaling janus nats-server coturn # Запустить сервисы sudo systemctl start signaling janus nats-server coturn # Проверить статус sudo systemctl status signaling janus nats-server coturn ``` ### Проверка работы ```bash # Логи signaling sudo journalctl -u signaling -f # Логи janus sudo journalctl -u janus -f # Логи NATS sudo journalctl -u nats-server -f # Логи coTURN sudo journalctl -u coturn -f ``` ## Структура установки После установки файлы будут находиться: ``` /usr/bin/ ├── signaling # Signaling server ├── janus # Janus WebRTC Gateway └── turnserver # coTURN TURN server /usr/sbin/ └── nats-server # NATS Server /usr/lib/x86_64-linux-gnu/janus/ ├── plugins/ # Janus плагины ├── transports/ # Janus транспорты ├── events/ # Janus event handlers └── loggers/ # Janus loggers /etc/f7cloud-spreed-signaling/ ├── server.conf # Конфиг signaling (с секретами!) └── .secrets.txt # Сохраненные секреты /etc/janus/ # Конфиги Janus /etc/turnserver.conf # Конфиг coTURN /etc/nats-server.conf # Конфиг NATS /etc/systemd/system/ ├── signaling.service ├── janus.service ├── nats-server.service └── coturn.service ``` ## Секреты Все секреты автоматически генерируются при установке и сохраняются в: ``` /etc/f7cloud-spreed-signaling/.secrets.txt ``` **ВАЖНО:** Сохраните этот файл в безопасном месте! Он понадобится для: - Настройки Nextcloud (backend secret) - Восстановления конфигурации - Синхронизации секретов между серверами ## Ручная установка Если автоматический скрипт не подходит, можно установить вручную: 1. Скопируйте бинарники из `signaling-server/` в соответствующие директории 2. Скопируйте конфиги из `config/` и `systemd/` 3. Сгенерируйте секреты вручную: ```bash # Генерация hex секрета (64 символа) openssl rand -hex 32 # Генерация base64 секрета openssl rand -base64 16 ``` 4. Подставьте секреты в конфиги 5. Создайте пользователей и настройте права доступа 6. Установите systemd unit файлы ## Обновление Для обновления: ```bash # Остановите сервисы sudo systemctl stop signaling janus nats-server coturn # Обновите бинарники из репозитория git pull sudo cp signaling-server/* /usr/bin/ # или соответствующие пути # Перезапустите сервисы sudo systemctl start signaling janus nats-server coturn ``` ## Удаление ```bash # Остановите и отключите сервисы sudo systemctl stop signaling janus nats-server coturn sudo systemctl disable signaling janus nats-server coturn # Удалите файлы sudo rm -rf /etc/f7cloud-spreed-signaling sudo rm -f /usr/bin/signaling /usr/bin/janus /usr/bin/turnserver sudo rm -f /usr/sbin/nats-server sudo rm -rf /usr/lib/x86_64-linux-gnu/janus sudo rm -f /etc/systemd/system/{signaling,janus,nats-server,coturn}.service sudo systemctl daemon-reload # Удалите пользователей (опционально) sudo userdel _signaling nats turnserver ``` ## Поддержка При возникновении проблем проверьте: - Логи сервисов: `journalctl -u ` - Права доступа к файлам - Открыты ли необходимые порты - Правильность конфигурации