F7_recording/INSTALL.md
F7cloud 0b94d1826e Initial commit: F7cloud Talk Recording Server
- Переименовано Nextcloud на F7cloud
- Добавлены зависимости Firefox ESR и Geckodriver
- Создан скрипт установки с поддержкой параметров HPB
- Добавлена документация и инструкции по установке

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-17 12:18:51 +00:00

8.7 KiB
Raw Blame History

Инструкция по установке F7cloud Talk Recording Server

Описание

F7cloud Talk Recording Server - это сервер записи для F7cloud Talk, который позволяет записывать видеозвонки.

Системные требования

  • Linux (рекомендуется Debian/Ubuntu)
  • Python 3.8 или выше
  • Системные зависимости (см. ниже)

Зависимости

Системные пакеты

# Debian/Ubuntu
sudo apt-get update
sudo apt-get install -y \
    python3 \
    python3-pip \
    python3-venv \
    pulseaudio \
    xvfb \
    ffmpeg \
    libpulse0 \
    libpulse-dev \
    libx11-dev \
    libxext-dev \
    libxrender-dev \
    libxtst6 \
    libxi6 \
    libgconf-2-4 \
    libasound2-dev

Firefox ESR и Geckodriver

Firefox ESR и Geckodriver уже включены в репозиторий в папке dependencies/:

  • dependencies/firefox-esr/ - Firefox ESR
  • dependencies/geckodriver - Geckodriver

Эти зависимости будут установлены автоматически скриптом установки.

Установка

Автоматическая установка

Используйте скрипт установки с обязательными параметрами для HPB:

sudo ./install.sh --hpb-url https://hpb.example.com --hpb-secret your-hpb-secret-here

Обязательные параметры:

  • --hpb-url - URL сервера HPB (signaling server)
  • --hpb-secret - Секрет для подключения к HPB (internalsecret)

Опциональные параметры:

  • --f7cloud-url - URL сервера F7cloud
  • --f7cloud-secret - Секрет для подключения к F7cloud
  • --listen - Адрес и порт для прослушивания (по умолчанию: 127.0.0.1:8000)

Пример полной установки:

sudo ./install.sh \
    --hpb-url https://hpb.example.com \
    --hpb-secret your-hpb-secret-here \
    --f7cloud-url https://f7cloud.example.com \
    --f7cloud-secret your-f7cloud-secret-here \
    --listen 127.0.0.1:8000

Просмотр справки:

sudo ./install.sh --help

Скрипт выполнит:

  1. Установку системных зависимостей
  2. Установку Firefox ESR и Geckodriver
  3. Создание виртуального окружения Python
  4. Установку Python-зависимостей
  5. Создание пользователя для запуска сервера
  6. Автоматическую настройку конфигурационного файла с указанными параметрами

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

1. Установка системных зависимостей

sudo apt-get update
sudo apt-get install -y python3 python3-pip python3-venv pulseaudio xvfb ffmpeg \
    libpulse0 libpulse-dev libx11-dev libxext-dev libxrender-dev libxtst6 \
    libxi6 libgconf-2-4 libasound2-dev

2. Установка Firefox ESR

sudo cp -r dependencies/firefox-esr /opt/firefox-esr
sudo ln -sf /opt/firefox-esr/firefox /usr/local/bin/firefox-esr

3. Установка Geckodriver

sudo cp dependencies/geckodriver /usr/local/bin/geckodriver
sudo chmod +x /usr/local/bin/geckodriver

4. Создание виртуального окружения Python

cd /opt/f7cloud-talk-recording
python3 -m venv venv
source venv/bin/activate
pip install --upgrade pip
pip install -e .

5. Создание пользователя

sudo useradd -r -s /bin/false -d /var/lib/f7cloud-talk-recording f7cloud-talk-recording
sudo mkdir -p /var/lib/f7cloud-talk-recording
sudo chown f7cloud-talk-recording:f7cloud-talk-recording /var/lib/f7cloud-talk-recording

6. Настройка конфигурации

sudo mkdir -p /etc/f7cloud-talk-recording
sudo cp server.conf.in /etc/f7cloud-talk-recording/server.conf
sudo chown f7cloud-talk-recording:f7cloud-talk-recording /etc/f7cloud-talk-recording/server.conf
sudo chmod 600 /etc/f7cloud-talk-recording/server.conf

Отредактируйте /etc/f7cloud-talk-recording/server.conf согласно вашим настройкам.

Примечание: При использовании скрипта install.sh с параметрами --hpb-url и --hpb-secret, конфигурация будет настроена автоматически. Вам нужно будет только добавить секцию для F7cloud backend, если она не была указана при установке.

Конфигурация

Основной конфигурационный файл находится в /etc/f7cloud-talk-recording/server.conf.

Основные параметры

  • [http] listen - IP и порт для прослушивания HTTP-запросов (по умолчанию: 127.0.0.1:8000)
  • [backend] - настройки бэкенда
  • [signaling] - настройки signaling сервера
  • [recording] - настройки записи (браузер, пути к драйверам)

Пример конфигурации

[http]
listen = 127.0.0.1:8000

[backend]
backends = my-backend
secret = your-shared-secret-here

[my-backend]
url = https://your-f7cloud-instance.com
secret = your-shared-secret-here

[recording]
browser = firefox
driverPath = /usr/local/bin/geckodriver
browserPath = /usr/local/bin/firefox-esr

Запуск

Ручной запуск

source venv/bin/activate
f7cloud-talk-recording --config /etc/f7cloud-talk-recording/server.conf

Запуск как служба systemd

Создайте файл /etc/systemd/system/f7cloud-talk-recording.service:

[Unit]
Description=F7cloud Talk Recording Server
After=network.target

[Service]
Type=simple
User=f7cloud-talk-recording
Group=f7cloud-talk-recording
WorkingDirectory=/opt/f7cloud-talk-recording
Environment="PATH=/opt/f7cloud-talk-recording/venv/bin:/usr/local/bin:/usr/bin:/bin"
ExecStart=/opt/f7cloud-talk-recording/venv/bin/f7cloud-talk-recording --config /etc/f7cloud-talk-recording/server.conf
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

Затем:

sudo systemctl daemon-reload
sudo systemctl enable f7cloud-talk-recording
sudo systemctl start f7cloud-talk-recording

Проверка работы

Проверьте статус службы:

sudo systemctl status f7cloud-talk-recording

Проверьте логи:

sudo journalctl -u f7cloud-talk-recording -f

Структура проекта

f7cloud-talk-recording/
├── src/
│   └── f7cloud/
│       └── talk/
│           └── recording/
│               ├── __init__.py
│               ├── __main__.py
│               ├── Server.py
│               ├── Service.py
│               ├── Config.py
│               ├── Participant.py
│               ├── BackendNotifier.py
│               ├── RecorderArgumentsBuilder.py
│               └── Benchmark.py
├── dependencies/
│   ├── firefox-esr/          # Firefox ESR
│   └── geckodriver            # Geckodriver
├── tests/                     # Тесты
├── server.conf.in             # Шаблон конфигурации
├── pyproject.toml             # Конфигурация Python проекта
├── install.sh                 # Скрипт установки
├── INSTALL.md                 # Данная инструкция
└── README.md                  # Основная документация

Устранение неполадок

Проблемы с PulseAudio

Если возникают проблемы с PulseAudio:

pulseaudio --start --exit-idle-time=120

Проблемы с правами доступа

Убедитесь, что пользователь f7cloud-talk-recording имеет права на:

  • /var/lib/f7cloud-talk-recording - для временных файлов записи
  • /etc/f7cloud-talk-recording/server.conf - для чтения конфигурации

Проблемы с Firefox/Geckodriver

Проверьте пути в конфигурации:

which firefox-esr
which geckodriver

Убедитесь, что пути указаны правильно в server.conf.

Дополнительная информация

Для получения дополнительной информации см. README.md.