F7_HPB/INSTALL.md

197 lines
6.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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