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

289 lines
8.7 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
## Описание
F7cloud Talk Recording Server - это сервер записи для F7cloud Talk, который позволяет записывать видеозвонки.
## Системные требования
- Linux (рекомендуется Debian/Ubuntu)
- Python 3.8 или выше
- Системные зависимости (см. ниже)
## Зависимости
### Системные пакеты
```bash
# 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:
```bash
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`)
**Пример полной установки:**
```bash
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
```
**Просмотр справки:**
```bash
sudo ./install.sh --help
```
Скрипт выполнит:
1. Установку системных зависимостей
2. Установку Firefox ESR и Geckodriver
3. Создание виртуального окружения Python
4. Установку Python-зависимостей
5. Создание пользователя для запуска сервера
6. Автоматическую настройку конфигурационного файла с указанными параметрами
### Ручная установка
#### 1. Установка системных зависимостей
```bash
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
```bash
sudo cp -r dependencies/firefox-esr /opt/firefox-esr
sudo ln -sf /opt/firefox-esr/firefox /usr/local/bin/firefox-esr
```
#### 3. Установка Geckodriver
```bash
sudo cp dependencies/geckodriver /usr/local/bin/geckodriver
sudo chmod +x /usr/local/bin/geckodriver
```
#### 4. Создание виртуального окружения Python
```bash
cd /opt/f7cloud-talk-recording
python3 -m venv venv
source venv/bin/activate
pip install --upgrade pip
pip install -e .
```
#### 5. Создание пользователя
```bash
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. Настройка конфигурации
```bash
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]` - настройки записи (браузер, пути к драйверам)
### Пример конфигурации
```ini
[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
```
## Запуск
### Ручной запуск
```bash
source venv/bin/activate
f7cloud-talk-recording --config /etc/f7cloud-talk-recording/server.conf
```
### Запуск как служба systemd
Создайте файл `/etc/systemd/system/f7cloud-talk-recording.service`:
```ini
[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
```
Затем:
```bash
sudo systemctl daemon-reload
sudo systemctl enable f7cloud-talk-recording
sudo systemctl start f7cloud-talk-recording
```
## Проверка работы
Проверьте статус службы:
```bash
sudo systemctl status f7cloud-talk-recording
```
Проверьте логи:
```bash
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:
```bash
pulseaudio --start --exit-idle-time=120
```
### Проблемы с правами доступа
Убедитесь, что пользователь `f7cloud-talk-recording` имеет права на:
- `/var/lib/f7cloud-talk-recording` - для временных файлов записи
- `/etc/f7cloud-talk-recording/server.conf` - для чтения конфигурации
### Проблемы с Firefox/Geckodriver
Проверьте пути в конфигурации:
```bash
which firefox-esr
which geckodriver
```
Убедитесь, что пути указаны правильно в `server.conf`.
## Дополнительная информация
Для получения дополнительной информации см. `README.md`.