diff --git a/README.md b/README.md index 67adc16..042ce93 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # F7cloud Talk Recording — сборка для развёртывания -В репозитории собраны **все компоненты для работы сервиса, кроме Python**. Firefox ESR и GeckoDriver скопированы с машины сборки в `vendor/` и при развёртывании на другом сервере просто копируются из репо в `/opt/firefox-esr` и `/usr/local/bin/geckodriver`. Python, xvfb и ffmpeg вы должны заранее установить на целевой машине (скрипт `install` лишь проверяет их наличие и подсказывает, чего не хватает). +В репозитории собраны **все компоненты для работы сервиса, кроме Python**. Firefox ESR и GeckoDriver скопированы с машины сборки в `vendor/` и при развёртывании на другом сервере просто копируются из репо в `/opt/firefox-esr` и `/usr/local/bin/geckodriver`. Пакеты **xvfb** и **ffmpeg** также включены в репозиторий в виде `.deb` (для Debian/Ubuntu) и при установке будут поставлены скриптом `install` из `vendor/debs/` при их отсутствии в системе. Python 3.12 вы должны установить на целевой машине самостоятельно. ## Структура diff --git a/install b/install index 00ec555..6f38693 100755 --- a/install +++ b/install @@ -33,6 +33,33 @@ if ! command -v ffmpeg >/dev/null 2>&1; then NEED_FFMPEG=1 fi +# Пытаемся доустановить xvfb и ffmpeg из vendor/debs, если они отсутствуют +if [ "$NEED_XVFB" -eq 1 ]; then + XVFB_DEB="$(ls "$REPO_ROOT"/vendor/debs/xvfb_*.deb 2>/dev/null | head -n1 || true)" + if [ -n "$XVFB_DEB" ]; then + echo "Xvfb не найден в системе. Устанавливаю из $XVFB_DEB ..." + if dpkg -i "$XVFB_DEB"; then + echo "Xvfb успешно установлен из vendor/debs." + NEED_XVFB=0 + else + echo "Не удалось установить Xvfb из $XVFB_DEB. Проверьте зависимости пакета." >&2 + fi + fi +fi + +if [ "$NEED_FFMPEG" -eq 1 ]; then + FFMPEG_DEB="$(ls "$REPO_ROOT"/vendor/debs/ffmpeg_*.deb 2>/dev/null | head -n1 || true)" + if [ -n "$FFMPEG_DEB" ]; then + echo "ffmpeg не найден в системе. Устанавливаю из $FFMPEG_DEB ..." + if dpkg -i "$FFMPEG_DEB"; then + echo "ffmpeg успешно установлен из vendor/debs." + NEED_FFMPEG=0 + else + echo "Не удалось установить ffmpeg из $FFMPEG_DEB. Проверьте зависимости пакета." >&2 + fi + fi +fi + if [ "$NEED_PYTHON" -eq 0 ] && [ "$NEED_XVFB" -eq 0 ] && [ "$NEED_FFMPEG" -eq 0 ]; then echo "Python 3.12, Xvfb и ffmpeg уже установлены — продолжаем установку." else @@ -42,7 +69,7 @@ else [ "$NEED_FFMPEG" -eq 1 ] && echo " - ffmpeg" echo "" echo "Установите их любым доступным способом (apt, локальное зеркало, deb-пакеты и т.п.)," - echo "затем перезапустите ./install. Сам скрипт install больше не вызывает apt-get." + echo "затем перезапустите ./install. Сам скрипт install не вызывает apt-get." exit 1 fi diff --git a/vendor/README.md b/vendor/README.md index 0ed9008..3c10aa5 100644 --- a/vendor/README.md +++ b/vendor/README.md @@ -6,8 +6,9 @@ |------------|------------| | **vendor/firefox-esr/** | Каталог Firefox ESR (бинарь `firefox` и библиотеки). При деплое копируется в `/opt/firefox-esr`, симлинк — в `/usr/local/bin/firefox-esr`. | | **vendor/geckodriver/geckodriver** | Бинарь GeckoDriver для Linux. При деплое копируется в `/usr/local/bin/geckodriver`. | -| **xvfb, ffmpeg** | Не в репо — вы должны установить их на целевом сервере сами (apt, локальное зеркало и т.п.); `install` только проверяет наличие. | -| **Python 3.12** | Не в репо — вы должны установить его на целевом сервере сами; `install` лишь проверяет наличие `python3.12`. | +| **vendor/debs/xvfb\_*.deb** | Debian-пакет `xvfb` для установки Xvfb на целевой машине (`dpkg -i` вызывается из `install`, если Xvfb не найден). | +| **vendor/debs/ffmpeg\_*.deb** | Debian-пакет `ffmpeg` для установки ffmpeg на целевой машине (`dpkg -i` вызывается из `install`, если ffmpeg не найден). | +| **Python 3.12** | Не в репо — вы должны установить его на целевой машине сами; `install` лишь проверяет наличие `python3.12`. | ## Обновление vendor/ (новая машина сборки) diff --git a/vendor/debs/ffmpeg_7%3a6.1.1-3ubuntu5_amd64.deb b/vendor/debs/ffmpeg_7%3a6.1.1-3ubuntu5_amd64.deb new file mode 100644 index 0000000..60dd90f Binary files /dev/null and b/vendor/debs/ffmpeg_7%3a6.1.1-3ubuntu5_amd64.deb differ diff --git a/vendor/debs/xvfb_2%3a21.1.12-1ubuntu1.5_amd64.deb b/vendor/debs/xvfb_2%3a21.1.12-1ubuntu1.5_amd64.deb new file mode 100644 index 0000000..1ccad2c Binary files /dev/null and b/vendor/debs/xvfb_2%3a21.1.12-1ubuntu1.5_amd64.deb differ