F7_HPB/INSTALL.md

8.1 KiB
Raw Blame History

Инструкция по установке 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-talk-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

Приоритет загрузки секретов:

  1. Файл /tmp/hpb-secrets.env (наивысший приоритет)
  2. Переменные окружения
  3. Автогенерация (если ничего не задано)

После установки

ВАЖНО: Обязательно отредактируйте конфиги перед запуском!

  1. Signaling server (/etc/f7cloud-talk-signaling/server.conf):

    nano /etc/f7cloud-talk-signaling/server.conf
    
    • Укажите реальные URL бэкендов Nextcloud в секции [nextcloud-backend-0]
    • Проверьте секреты (они уже сгенерированы)
  2. coTURN (/etc/turnserver.conf):

    nano /etc/turnserver.conf
    
    • Укажите реальные IP адреса в listening-ip и relay-ip
    • Укажите realm (домен вашего сервера)
    • Укажите пути к TLS сертификатам (если используете HTTPS)
  3. 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-talk-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-talk-signaling/.secrets.txt

ВАЖНО: Сохраните этот файл в безопасном месте! Он понадобится для:

  • Настройки Nextcloud (backend secret)
  • Восстановления конфигурации
  • Синхронизации секретов между серверами

Ручная установка

Если автоматический скрипт не подходит, можно установить вручную:

  1. Скопируйте бинарники из overlay/usr/bin/ и overlay/usr/sbin/ в /usr/bin/ и /usr/sbin/
  2. Скопируйте конфиги из config/ и systemd/
  3. Сгенерируйте секреты вручную:
    # Генерация hex секрета (64 символа)
    openssl rand -hex 32
    
    # Генерация base64 секрета
    openssl rand -base64 16
    
  4. Подставьте секреты в конфиги
  5. Создайте пользователей и настройте права доступа
  6. Установите systemd unit файлы

Обновление

Для обновления:

# Остановите сервисы
sudo systemctl stop signaling janus nats-server coturn

# Обновите бинарники из репозитория
git pull
sudo cp overlay/usr/bin/signaling overlay/usr/bin/turnserver /usr/bin/
sudo cp overlay/usr/sbin/nats-server /usr/sbin/

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