F7_recording/README.md

86 lines
6.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 — сборка для развёртывания
В репозитории собраны **все компоненты для работы сервиса, кроме Python**. Firefox ESR и GeckoDriver скопированы с машины сборки в `vendor/` и при развёртывании на другом сервере просто копируются из репо в `/opt/firefox-esr` и `/usr/local/bin/geckodriver`. Python, xvfb и ffmpeg на целевой машине ставятся через apt в install.
## Структура
```
f7-recording/
├── README.md
├── install # скрипт установки (запуск: sudo ./install)
├── scripts/
│ └── download-vendor.sh # скачать Firefox ESR и GeckoDriver в vendor/ (обновление репо)
├── vendor/ # Firefox ESR и GeckoDriver (скопированы с машины сборки)
│ ├── README.md
│ ├── firefox-esr/ # каталог Firefox ESR — при деплое копируется в /opt/firefox-esr
│ └── geckodriver/geckodriver # бинарь GeckoDriver — при деплое копируется в /usr/local/bin
├── systemd/
│ └── f7cloud-talk-recording.service
├── etc/
│ └── f7cloud-talk-recording/
│ └── server.conf.template
└── opt/
├── f7cloud-talk-recording-src/ # исходники пакета (editable install)
└── f7cloud-talk-recording/
├── requirements.txt
└── venv/ # на цели venv создаётся заново
```
## Развёртывание одной командой
На целевой машине (Debian/Ubuntu) скопируйте эту папку и выполните:
```bash
sudo ./install
```
Скрипт установит через apt только Python 3.12, xvfb и ffmpeg; Firefox ESR и GeckoDriver скопирует из `vendor/` в `/opt/firefox-esr` и `/usr/local/bin`; создаст пользователя и каталоги, разложит файлы, соберёт venv и включит systemd-сервис. Конфиг создаётся из шаблона; если не заданы переменные окружения (см. ниже), в конфиг попадут плейсхолдеры — их нужно заменить вручную в `/etc/f7cloud-talk-recording/server.conf` и затем запустить сервис.
### Секреты и адреса (HPB и Nextcloud)
Задайте переменные окружения **до** запуска `install`, чтобы конфиг заполнился автоматически:
| Переменная | Описание |
|------------|----------|
| `F7CLOUD_NEXTCLOUD_URL` | URL сервера Nextcloud (например `https://forbion.f7cloud.ru`) |
| `F7CLOUD_SECRET` | Общий секрет (backend + nextcloud) |
| `F7CLOUD_TALK_URL` | URL signaling (HPB), например `https://hpb-prod.f7cloud.ru/standalone-signaling` |
| `F7CLOUD_TALK_INTERNALSECRET` | internalsecret для доступа к signaling-серверу |
Пример:
```bash
export F7CLOUD_NEXTCLOUD_URL="https://forbion.f7cloud.ru"
export F7CLOUD_SECRET=аш_секрет_hex"
export F7CLOUD_TALK_URL="https://hpb-prod.f7cloud.ru/standalone-signaling"
export F7CLOUD_TALK_INTERNALSECRET=аш_internalsecret_hex"
sudo -E ./install
```
Если переменные не заданы, после деплоя отредактируйте `/etc/f7cloud-talk-recording/server.conf` (замените строки `F7CLOUD_*` на нужные значения) и выполните:
```bash
systemctl start f7cloud-talk-recording.service
```
## Что делает install
1. Ставит через apt только: **Python 3.12**, python3.12-venv, xvfb, ffmpeg (остальное — из репо).
2. Копирует **Firefox ESR** и **GeckoDriver** из `vendor/` в `/opt/firefox-esr` и `/usr/local/bin` (в репо они уже есть, скопированы с машины сборки).
3. Создаёт пользователя и группу `f7cloud-talk-recording`, каталоги `/var/lib/f7cloud-talk-recording` и `/var/lib/f7cloud-recordings`.
4. Копирует systemd unit в `/etc/systemd/system/`.
5. Создаёт конфиг из `server.conf.template` в `/etc/f7cloud-talk-recording/server.conf`.
6. Копирует исходники в `/opt/f7cloud-talk-recording-src/`, создаёт venv в `/opt/f7cloud-talk-recording/venv` и ставит зависимости.
7. Включает сервис; при заданных секретах — сразу запускает его.
Firefox ESR и GeckoDriver уже включены в репо (скопированы с этой машины в `vendor/`). При клонировании репо на другой сервер и запуске install они копируются на место без доступа в интернет. Обновить или заново положить их в репо — см. `vendor/README.md`.
### Ручное развёртывание (без install)
Если нужно развернуть вручную: установите Python 3.12, xvfb, ffmpeg; установите Firefox ESR и GeckoDriver из `vendor/` или скачайте (см. `vendor/README.md`); создайте пользователя и каталоги (как в install); скопируйте `systemd/`, `etc/`, `opt/` в целевые пути; создайте venv; заполните конфиг из шаблона; выполните `systemctl daemon-reload`, `systemctl enable f7cloud-talk-recording.service`, `systemctl start f7cloud-talk-recording.service`.
## Проверка
- Логи: `journalctl -u f7cloud-talk-recording.service -f`
- Конфиг: `/etc/f7cloud-talk-recording/server.conf` (пути браузера, ffmpeg, каталог записей при необходимости поправьте).