197 lines
6.5 KiB
Markdown
197 lines
6.5 KiB
Markdown
# Инструкция по установке 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 <service-name>`
|
||
- Права доступа к файлам
|
||
- Открыты ли необходимые порты
|
||
- Правильность конфигурации
|