8.0 KiB
Инструкция по установке 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, можно изменить)
Автоматическая установка
Вариант 1: Автогенерация секретов (по умолчанию)
# Клонируйте репозиторий
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
Вариант 2: Использование переменных окружения
Если нужно использовать существующие секреты (например, при миграции или синхронизации между серверами):
export HPB_HASHKEY="your_64_char_hex_string"
export HPB_BLOCKKEY="your_32_char_hex_string"
export HPB_INTERNAL_SECRET="your_64_char_hex_string"
export HPB_BACKEND_SECRET="your_64_char_hex_string"
export TURN_SECRET="your_64_char_hex_string"
export TURN_API_KEY="your_base64_string"
export JANUS_ADMIN_SECRET="your_base64_string"
export F7CLOUD_URL="https://cloud.example.com"
sudo ./install.sh
Вариант 3: Использование файла секретов
Создайте файл /tmp/hpb-secrets.env:
cat > /tmp/hpb-secrets.env <<EOF
HPB_HASHKEY="your_64_char_hex_string"
HPB_BLOCKKEY="your_32_char_hex_string"
HPB_INTERNAL_SECRET="your_64_char_hex_string"
HPB_BACKEND_SECRET="your_64_char_hex_string"
TURN_SECRET="your_64_char_hex_string"
TURN_API_KEY="your_base64_string"
JANUS_ADMIN_SECRET="your_base64_string"
F7CLOUD_URL="https://cloud.example.com"
EOF
chmod 600 /tmp/hpb-secrets.env
sudo ./install.sh
Приоритет загрузки секретов:
- Файл
/tmp/hpb-secrets.env(наивысший приоритет) - Переменные окружения
- Автогенерация (если ничего не задано)
После установки
ВАЖНО: Обязательно отредактируйте конфиги перед запуском!
-
Signaling server (
/etc/f7cloud-spreed-signaling/server.conf):nano /etc/f7cloud-spreed-signaling/server.conf- Укажите реальные URL бэкендов Nextcloud в секции
[nextcloud-backend-0] - Проверьте секреты (они уже сгенерированы)
- Укажите реальные URL бэкендов Nextcloud в секции
-
coTURN (
/etc/turnserver.conf):nano /etc/turnserver.conf- Укажите реальные IP адреса в
listening-ipиrelay-ip - Укажите
realm(домен вашего сервера) - Укажите пути к TLS сертификатам (если используете HTTPS)
- Укажите реальные IP адреса в
-
Janus (
/etc/janus/janus.jcfg):- Проверьте пути к плагинам и транспортам
- Admin secret уже сгенерирован
Запуск сервисов
# Включить автозапуск
sudo systemctl enable signaling janus nats-server coturn
# Запустить сервисы
sudo systemctl start signaling janus nats-server coturn
# Проверить статус
sudo systemctl status signaling janus nats-server coturn
Проверка работы
# Логи 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)
- Восстановления конфигурации
- Синхронизации секретов между серверами
Ручная установка
Если автоматический скрипт не подходит, можно установить вручную:
- Скопируйте бинарники из
signaling-server/в соответствующие директории - Скопируйте конфиги из
config/иsystemd/ - Сгенерируйте секреты вручную:
# Генерация hex секрета (64 символа) openssl rand -hex 32 # Генерация base64 секрета openssl rand -base64 16 - Подставьте секреты в конфиги
- Создайте пользователей и настройте права доступа
- Установите systemd unit файлы
Обновление
Для обновления:
# Остановите сервисы
sudo systemctl stop signaling janus nats-server coturn
# Обновите бинарники из репозитория
git pull
sudo cp signaling-server/* /usr/bin/ # или соответствующие пути
# Перезапустите сервисы
sudo systemctl start signaling janus nats-server coturn
Удаление
# Остановите и отключите сервисы
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> - Права доступа к файлам
- Открыты ли необходимые порты
- Правильность конфигурации