Переименование install в install.sh и обновление документации
This commit is contained in:
parent
01febdb27f
commit
2f36aede2b
18
README.md
18
README.md
|
|
@ -1,13 +1,13 @@
|
||||||
# F7cloud Talk Recording — сборка для развёртывания
|
# F7cloud Talk Recording — сборка для развёртывания
|
||||||
|
|
||||||
В репозитории собраны **все компоненты для работы сервиса**. Firefox ESR и GeckoDriver скопированы с машины сборки в `vendor/` и при развёртывании на другом сервере просто копируются из репо в `/opt/firefox-esr` и `/usr/local/bin/geckodriver`. Пакеты **xvfb**, **ffmpeg**, **python3.12** и **python3.12-venv** также включены в репозиторий в виде `.deb` (для Debian/Ubuntu) и при установке, при их отсутствии в системе, ставятся скриптом `install` из `vendor/debs/` через `dpkg -i` (без доступа к внешним репозиториям).
|
В репозитории собраны **все компоненты для работы сервиса**. Firefox ESR и GeckoDriver скопированы с машины сборки в `vendor/` и при развёртывании на другом сервере просто копируются из репо в `/opt/firefox-esr` и `/usr/local/bin/geckodriver`. Пакеты **xvfb**, **ffmpeg**, **python3.12** и **python3.12-venv** также включены в репозиторий в виде `.deb` (для Debian/Ubuntu) и при установке, при их отсутствии в системе, ставятся скриптом `install.sh` из `vendor/debs/` через `dpkg -i` (без доступа к внешним репозиториям).
|
||||||
|
|
||||||
## Структура
|
## Структура
|
||||||
|
|
||||||
```
|
```
|
||||||
f7-recording/
|
f7-recording/
|
||||||
├── README.md
|
├── README.md
|
||||||
├── install # скрипт установки (запуск: sudo ./install)
|
├── install.sh # скрипт установки (запуск: sudo ./install.sh)
|
||||||
├── scripts/
|
├── scripts/
|
||||||
│ └── download-vendor.sh # скачать Firefox ESR и GeckoDriver в vendor/ (обновление репо)
|
│ └── download-vendor.sh # скачать Firefox ESR и GeckoDriver в vendor/ (обновление репо)
|
||||||
├── vendor/ # Firefox ESR и GeckoDriver (скопированы с машины сборки)
|
├── vendor/ # Firefox ESR и GeckoDriver (скопированы с машины сборки)
|
||||||
|
|
@ -31,14 +31,14 @@ f7-recording/
|
||||||
На целевой машине (Debian/Ubuntu) скопируйте эту папку и выполните:
|
На целевой машине (Debian/Ubuntu) скопируйте эту папку и выполните:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo ./install
|
sudo ./install.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
Скрипт проверяет наличие Python 3.12, xvfb и ffmpeg; если чего-то не хватает — выводит список недостающих пакетов и завершает установку с подсказкой, что их нужно доставить вручную. Firefox ESR и GeckoDriver скопирует из `vendor/` в `/opt/firefox-esr` и `/usr/local/bin`; создаст пользователя и каталоги, разложит файлы, соберёт venv и включит systemd-сервис. Конфиг создаётся из шаблона; если не заданы переменные окружения (см. ниже), в конфиг попадут плейсхолдеры — их нужно заменить вручную в `/etc/f7cloud-talk-recording/server.conf` и затем запустить сервис.
|
Скрипт проверяет наличие 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)
|
### Секреты и адреса (HPB и Nextcloud)
|
||||||
|
|
||||||
Задайте переменные окружения **до** запуска `install`, чтобы конфиг заполнился автоматически:
|
Задайте переменные окружения **до** запуска `install.sh`, чтобы конфиг заполнился автоматически:
|
||||||
|
|
||||||
| Переменная | Описание |
|
| Переменная | Описание |
|
||||||
|------------|----------|
|
|------------|----------|
|
||||||
|
|
@ -65,7 +65,7 @@ export F7CLOUD_NEXTCLOUD_URL="https://forbion.f7cloud.ru"
|
||||||
export F7CLOUD_SECRET="ваш_секрет_hex"
|
export F7CLOUD_SECRET="ваш_секрет_hex"
|
||||||
export F7CLOUD_TALK_URL="https://hpb-prod.f7cloud.ru/standalone-signaling"
|
export F7CLOUD_TALK_URL="https://hpb-prod.f7cloud.ru/standalone-signaling"
|
||||||
export F7CLOUD_TALK_INTERNALSECRET="ваш_internalsecret_hex"
|
export F7CLOUD_TALK_INTERNALSECRET="ваш_internalsecret_hex"
|
||||||
sudo -E ./install
|
sudo -E ./install.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
Если переменные не заданы, после деплоя отредактируйте `/etc/f7cloud-talk-recording/server.conf` (замените строки `F7CLOUD_*` на нужные значения) и выполните:
|
Если переменные не заданы, после деплоя отредактируйте `/etc/f7cloud-talk-recording/server.conf` (замените строки `F7CLOUD_*` на нужные значения) и выполните:
|
||||||
|
|
@ -74,7 +74,7 @@ sudo -E ./install
|
||||||
systemctl start f7cloud-talk-recording.service
|
systemctl start f7cloud-talk-recording.service
|
||||||
```
|
```
|
||||||
|
|
||||||
## Что делает install
|
## Что делает install.sh
|
||||||
|
|
||||||
1. Ставит через apt только: **Python 3.12**, python3.12-venv, xvfb, ffmpeg (остальное — из репо).
|
1. Ставит через apt только: **Python 3.12**, python3.12-venv, xvfb, ffmpeg (остальное — из репо).
|
||||||
2. Копирует **Firefox ESR** и **GeckoDriver** из `vendor/` в `/opt/firefox-esr` и `/usr/local/bin` (в репо они уже есть, скопированы с машины сборки).
|
2. Копирует **Firefox ESR** и **GeckoDriver** из `vendor/` в `/opt/firefox-esr` и `/usr/local/bin` (в репо они уже есть, скопированы с машины сборки).
|
||||||
|
|
@ -84,11 +84,11 @@ systemctl start f7cloud-talk-recording.service
|
||||||
6. Копирует исходники в `/opt/f7cloud-talk-recording-src/`, создаёт venv в `/opt/f7cloud-talk-recording/venv` и ставит зависимости.
|
6. Копирует исходники в `/opt/f7cloud-talk-recording-src/`, создаёт venv в `/opt/f7cloud-talk-recording/venv` и ставит зависимости.
|
||||||
7. Включает сервис; при заданных секретах — сразу запускает его.
|
7. Включает сервис; при заданных секретах — сразу запускает его.
|
||||||
|
|
||||||
Firefox ESR и GeckoDriver уже включены в репо (скопированы с этой машины в `vendor/`). При клонировании репо на другой сервер и запуске install они копируются на место без доступа в интернет. Обновить или заново положить их в репо — см. `vendor/README.md`.
|
Firefox ESR и GeckoDriver уже включены в репо (скопированы с этой машины в `vendor/`). При клонировании репо на другой сервер и запуске install.sh они копируются на место без доступа в интернет. Обновить или заново положить их в репо — см. `vendor/README.md`.
|
||||||
|
|
||||||
### Ручное развёртывание (без install)
|
### Ручное развёртывание (без install.sh)
|
||||||
|
|
||||||
Если нужно развернуть вручную: установите 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`.
|
Если нужно развернуть вручную: установите Python 3.12, xvfb, ffmpeg; установите Firefox ESR и GeckoDriver из `vendor/` или скачайте (см. `vendor/README.md`); создайте пользователя и каталоги (как в install.sh); скопируйте `systemd/`, `etc/`, `opt/` в целевые пути; создайте venv; заполните конфиг из шаблона; выполните `systemctl daemon-reload`, `systemctl enable f7cloud-talk-recording.service`, `systemctl start f7cloud-talk-recording.service`.
|
||||||
|
|
||||||
## Проверка
|
## Проверка
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,12 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# Развёртывание F7cloud Talk Recording на целевой машине (Debian/Ubuntu).
|
# Развёртывание F7cloud Talk Recording на целевой машине (Debian/Ubuntu).
|
||||||
# Запуск: sudo ./install
|
# Запуск: sudo ./install.sh
|
||||||
# Секреты и адреса задайте через переменные окружения перед запуском:
|
# Секреты и адреса задайте через переменные окружения перед запуском:
|
||||||
# F7CLOUD_NEXTCLOUD_URL — URL сервера Nextcloud (например https://forbion.f7cloud.ru)
|
# F7CLOUD_NEXTCLOUD_URL — URL сервера Nextcloud (например https://forbion.f7cloud.ru)
|
||||||
# F7CLOUD_SECRET — общий секрет (backend + nextcloud)
|
# F7CLOUD_SECRET — общий секрет (backend + nextcloud)
|
||||||
# F7CLOUD_TALK_URL — URL signaling (HPB), например https://hpb-prod.f7cloud.ru/standalone-signaling
|
# F7CLOUD_TALK_URL — URL signaling (HPB), например https://hpb-prod.f7cloud.ru/standalone-signaling
|
||||||
# F7CLOUD_TALK_INTERNALSECRET — internalsecret для доступа к signaling
|
# F7CLOUD_TALK_INTERNALSECRET — internalsecret для доступа к signaling
|
||||||
# Пример: export F7CLOUD_NEXTCLOUD_URL=... F7CLOUD_SECRET=... F7CLOUD_TALK_URL=... F7CLOUD_TALK_INTERNALSECRET=... ; sudo -E ./install
|
# Пример: export F7CLOUD_NEXTCLOUD_URL=... F7CLOUD_SECRET=... F7CLOUD_TALK_URL=... F7CLOUD_TALK_INTERNALSECRET=... ; sudo -E ./install.sh
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
10
vendor/README.md
vendored
10
vendor/README.md
vendored
|
|
@ -1,15 +1,15 @@
|
||||||
# Компоненты в репо (кроме Python)
|
# Компоненты в репо (кроме Python)
|
||||||
|
|
||||||
Сюда **включены** Firefox ESR и GeckoDriver — они скопированы с машины сборки и лежат в репозитории. На другом сервере install просто копирует их в `/opt/firefox-esr` и `/usr/local/bin/geckodriver`, без загрузки из интернета.
|
Сюда **включены** Firefox ESR и GeckoDriver — они скопированы с машины сборки и лежат в репозитории. На другом сервере install.sh просто копирует их в `/opt/firefox-esr` и `/usr/local/bin/geckodriver`, без загрузки из интернета.
|
||||||
|
|
||||||
| Что в репо | Назначение |
|
| Что в репо | Назначение |
|
||||||
|------------|------------|
|
|------------|------------|
|
||||||
| **vendor/firefox-esr/** | Каталог Firefox ESR (бинарь `firefox` и библиотеки). При деплое копируется в `/opt/firefox-esr`, симлинк — в `/usr/local/bin/firefox-esr`. |
|
| **vendor/firefox-esr/** | Каталог Firefox ESR (бинарь `firefox` и библиотеки). При деплое копируется в `/opt/firefox-esr`, симлинк — в `/usr/local/bin/firefox-esr`. |
|
||||||
| **vendor/geckodriver/geckodriver** | Бинарь GeckoDriver для Linux. При деплое копируется в `/usr/local/bin/geckodriver`. |
|
| **vendor/geckodriver/geckodriver** | Бинарь GeckoDriver для Linux. При деплое копируется в `/usr/local/bin/geckodriver`. |
|
||||||
| **vendor/debs/xvfb\_*.deb** | Debian-пакет `xvfb` для установки Xvfb на целевой машине (`dpkg -i` вызывается из `install`, если Xvfb не найден). |
|
| **vendor/debs/xvfb\_*.deb** | Debian-пакет `xvfb` для установки Xvfb на целевой машине (`dpkg -i` вызывается из `install.sh`, если Xvfb не найден). |
|
||||||
| **vendor/debs/ffmpeg\_*.deb** | Debian-пакет `ffmpeg` для установки ffmpeg на целевой машине (`dpkg -i` вызывается из `install`, если ffmpeg не найден). |
|
| **vendor/debs/ffmpeg\_*.deb** | Debian-пакет `ffmpeg` для установки ffmpeg на целевой машине (`dpkg -i` вызывается из `install.sh`, если ffmpeg не найден). |
|
||||||
| **vendor/debs/python3.12\_*.deb** | Debian-пакет `python3.12` для установки Python 3.12 на целевой машине (`dpkg -i` вызывается из `install`, если `python3.12` не найден). |
|
| **vendor/debs/python3.12\_*.deb** | Debian-пакет `python3.12` для установки Python 3.12 на целевой машине (`dpkg -i` вызывается из `install.sh`, если `python3.12` не найден). |
|
||||||
| **vendor/debs/python3.12-venv\_*.deb** | Debian-пакет `python3.12-venv` для модуля venv (`dpkg -i` вызывается из `install`, если модуль не установлен). |
|
| **vendor/debs/python3.12-venv\_*.deb** | Debian-пакет `python3.12-venv` для модуля venv (`dpkg -i` вызывается из `install.sh`, если модуль не установлен). |
|
||||||
|
|
||||||
## Обновление vendor/ (новая машина сборки)
|
## Обновление vendor/ (новая машина сборки)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user