F7_recording/DEPLOY.md

163 lines
5.2 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.

# Развертывание F7cloud Talk Recording Server
## Быстрое развертывание на новом сервере
### Автоматическое развертывание (рекомендуется)
Самый простой способ - использовать скрипт автоматического развертывания:
```bash
curl -fsSL https://git.f7cloud.ru/root/F7_recording/raw/branch/main/deploy.sh | bash
```
или
```bash
wget -qO- https://git.f7cloud.ru/root/F7_recording/raw/branch/main/deploy.sh | bash
```
Скрипт выполнит:
1. Клонирование репозитория
2. Интерактивный ввод необходимых параметров (HPB URL, секреты)
3. Автоматическую установку всех зависимостей
4. Настройку конфигурации
5. Создание systemd service
### Ручное развертывание
#### 1. Клонирование репозитория
```bash
cd /opt
git clone https://git.f7cloud.ru/root/F7_recording.git f7cloud-talk-recording
cd f7cloud-talk-recording
```
#### 2. Запуск установки с параметрами
```bash
# Подготовьте файл f7cloud-install.env с переменными, затем:
sudo ./f7recording.sh /path/to/f7cloud-install.env
```
#### 3. Запуск сервиса
```bash
sudo systemctl start f7cloud-talk-recording
sudo systemctl enable f7cloud-talk-recording
```
## Получение секретов
### HPB Secret (internalsecret)
Секрет для подключения к HPB находится в конфигурации signaling сервера:
```bash
# На сервере signaling сервера
cat /etc/nextcloud-spreed-signaling/server.conf | grep internalsecret
```
Или в секции `[clients]` файла `/etc/nextcloud-spreed-signaling/server.conf`:
```ini
[clients]
internalsecret = your-hpb-secret-here
```
### F7cloud Secret
Секрет для подключения к F7cloud настраивается в админ-панели F7cloud:
1. Войдите в F7cloud как администратор
2. Перейдите в **Настройки****Talk**
3. Найдите раздел **Recording backend**
4. Скопируйте секрет из поля **Secret**
## Автоматическая загрузка зависимостей
Скрипт `f7recording.sh` использует системные пакеты (firefox-esr и др.), если они отсутствуют:
- **Firefox ESR** - скачивается с официального сайта Mozilla
- **Geckodriver** - скачивается с GitHub releases
Зависимости определяются автоматически по архитектуре системы (x86_64 или aarch64).
## Переменные окружения
Вы также можете использовать переменные окружения вместо интерактивного ввода:
```bash
# Создайте файл f7cloud-install.env с переменными HPB_DOMAIN, HPB_INTERNAL_SECRET, DOMAIN, HPB_BACKEND_SECRET
sudo ./f7recording.sh /path/to/f7cloud-install.env
```
## Проверка установки
После установки проверьте:
```bash
# Статус сервиса
sudo systemctl status f7cloud-talk-recording
# Логи
sudo journalctl -u f7cloud-talk-recording -f
# Проверка конфигурации
sudo cat /etc/f7cloud-talk-recording/server.conf
# Проверка Firefox
/usr/local/bin/firefox-esr --version
# Проверка Geckodriver
/usr/local/bin/geckodriver --version
```
## Обновление
Для обновления на существующем сервере:
```bash
cd /opt/f7cloud-talk-recording
sudo systemctl stop f7cloud-talk-recording
git pull
source venv/bin/activate
pip install -e .
sudo systemctl start f7cloud-talk-recording
```
## Устранение неполадок
### Проблемы с загрузкой зависимостей
Если автоматическая загрузка не работает, установите зависимости вручную:
```bash
cd /opt/f7cloud-talk-recording/dependencies
# Firefox ESR
wget https://download.mozilla.org/?product=firefox-esr-latest-ssl&os=linux64&lang=en-US -O firefox-esr.tar.bz2
tar -xjf firefox-esr.tar.bz2
mv firefox firefox-esr
# Geckodriver
wget https://github.com/mozilla/geckodriver/releases/latest/download/geckodriver-v0.34.0-linux64.tar.gz
tar -xzf geckodriver-v0.34.0-linux64.tar.gz
chmod +x geckodriver
```
### Проблемы с правами доступа
Убедитесь, что пользователь `f7cloud-talk-recording` имеет права:
```bash
sudo chown -R f7cloud-talk-recording:f7cloud-talk-recording /var/lib/f7cloud-talk-recording
sudo chmod 600 /etc/f7cloud-talk-recording/server.conf
```
## Дополнительная информация
- Подробная инструкция по установке: `INSTALL.md`
- Примеры использования: `INSTALL_EXAMPLE.md`
- Структура проекта: `PROJECT_STRUCTURE.md`