- Переименовано Nextcloud на F7cloud - Добавлены зависимости Firefox ESR и Geckodriver - Создан скрипт установки с поддержкой параметров HPB - Добавлена документация и инструкции по установке Co-authored-by: Cursor <cursoragent@cursor.com> |
||
|---|---|---|
| docker-compose | ||
| docs | ||
| LICENSES | ||
| packaging | ||
| src/f7cloud/talk/recording | ||
| tests | ||
| .gitignore | ||
| AUTHORS.md | ||
| CHANGELOG.md | ||
| INSTALL_EXAMPLE.md | ||
| INSTALL.md | ||
| install.sh | ||
| LICENSE.txt | ||
| PROJECT_STRUCTURE.md | ||
| pyproject.toml | ||
| README.md | ||
| REUSE.toml | ||
| server.conf.in | ||
| start-container.sh | ||
F7cloud Talk Recording Server
Сервер записи для F7cloud Talk, который позволяет записывать видеозвонки.
Описание
F7cloud Talk Recording Server предоставляет HTTP API для записи видеозвонков в F7cloud Talk. Сервер работает как клиент Talk и записывает звонки через браузер.
Структура проекта
f7cloud-talk-recording/
├── src/ # Исходный код
│ └── f7cloud/
│ └── talk/
│ └── recording/
│ ├── __init__.py # Инициализация модуля
│ ├── __main__.py # Точка входа CLI
│ ├── Server.py # HTTP сервер (Flask)
│ ├── Service.py # Сервис записи
│ ├── Config.py # Управление конфигурацией
│ ├── Participant.py # Управление участником в браузере
│ ├── BackendNotifier.py # Уведомления бэкенда
│ ├── RecorderArgumentsBuilder.py # Построитель аргументов для ffmpeg
│ └── Benchmark.py # Бенчмарк для тестирования
│
├── dependencies/ # Внешние зависимости
│ ├── firefox-esr/ # Firefox ESR (браузер для записи)
│ └── geckodriver # Geckodriver (Selenium WebDriver для Firefox)
│
├── tests/ # Тесты
│ ├── ServerTest.py # Тесты сервера
│ └── ConfigTest.py # Тесты конфигурации
│
├── server.conf.in # Шаблон конфигурационного файла
├── pyproject.toml # Конфигурация Python проекта
├── install.sh # Скрипт автоматической установки
├── INSTALL.md # Подробная инструкция по установке
└── README.md # Этот файл
Быстрый старт
Установка
sudo ./install.sh
Конфигурация
Отредактируйте /etc/f7cloud-talk-recording/server.conf:
[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
Запуск
sudo systemctl start f7cloud-talk-recording
sudo systemctl enable f7cloud-talk-recording
Зависимости
Системные зависимости
- Python 3.8+
- PulseAudio
- Xvfb (виртуальный дисплей)
- FFmpeg
- Firefox ESR (включен в
dependencies/) - Geckodriver (включен в
dependencies/)
Python зависимости
- flask
- prometheus-client
- psutil
- pulsectl
- pyvirtualdisplay>=2.0
- requests
- requests-toolbelt
- selenium>=4.11.0
- websocket-client
Все зависимости указаны в pyproject.toml и будут установлены автоматически при установке.
Основные компоненты
Server.py
HTTP сервер на Flask, который обрабатывает запросы на начало/конец записи.
Service.py
Управляет процессом записи:
- Создает виртуальный дисплей (Xvfb)
- Создает аудио sink (PulseAudio)
- Запускает браузер в kiosk режиме
- Запускает FFmpeg для записи
- Загружает запись на сервер
Participant.py
Управляет участником в браузере через Selenium WebDriver:
- Открывает страницу записи
- Подключается к signaling серверу
- Управляет медиа потоками
Config.py
Управляет конфигурацией из файла server.conf.
API
Сервер предоставляет HTTP API для управления записями. Подробности см. в документации API.
Развертывание
Для развертывания на новом сервере:
- Скопируйте весь репозиторий на сервер
- Запустите
sudo ./install.sh - Настройте
/etc/f7cloud-talk-recording/server.conf - Запустите сервис:
sudo systemctl start f7cloud-talk-recording
Подробные инструкции см. в INSTALL.md.
Разработка
Установка для разработки
python3 -m venv venv
source venv/bin/activate
pip install -e ".[dev]"
Запуск тестов
pytest tests/
Линтинг
pylint src/
Лицензия
AGPL-3.0-or-later
Поддержка
Для получения помощи см. INSTALL.md или создайте issue в репозитории.