From 1bc3a63d93ef2e9c1265225a77933fd54b1bc578 Mon Sep 17 00:00:00 2001 From: F7cloud Date: Sat, 21 Feb 2026 19:27:57 +0000 Subject: [PATCH] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D1=81=D0=BA=D1=80=D0=B8=D0=BF=D1=82=D0=B0=20?= =?UTF-8?q?=D1=83=D1=81=D1=82=D0=B0=D0=BD=D0=BE=D0=B2=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- f7recording.sh | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 f7recording.sh diff --git a/f7recording.sh b/f7recording.sh new file mode 100644 index 0000000..cd78749 --- /dev/null +++ b/f7recording.sh @@ -0,0 +1,72 @@ +#!/bin/bash +# Установка F7_recording. Запускается на сервере записи. +# Использование: ./f7recording.sh /path/to/f7cloud-install.env + +set -e +ROLE="f7recording" +ENV_FILE="${1:-/tmp/f7cloud-install.env}" +ERROR_LOG="/tmp/install-error-${ROLE}.log" + +log_error() { echo "[$(date '+%Y-%m-%d %H:%M:%S')] ERROR: $*" >> "$ERROR_LOG"; echo "ERROR: $*" >&2; } +log_warn() { echo "[$(date '+%Y-%m-%d %H:%M:%S')] WARN: $*" >> "$ERROR_LOG"; echo "WARN: $*" >&2; } + +if [ ! -f "$ENV_FILE" ]; then + log_error "Файл конфигурации не найден: $ENV_FILE" + exit 1 +fi +# shellcheck source=/dev/null +set -a && source "$ENV_FILE" && set +a + +> "$ERROR_LOG" +echo "=== Лог установки F7_recording ===" >> "$ERROR_LOG" +echo "Начало: $(date '+%Y-%m-%d %H:%M:%S')" >> "$ERROR_LOG" + +if ! command -v git >/dev/null 2>&1; then + echo "Установка git..." + apt-get update -qq && apt-get install -y git || { log_error "Не удалось установить git"; exit 1; } +fi + +rm -rf /tmp/F7_recording +echo "Клонирование репозитория F7_recording..." +if ! (cd /tmp && git clone https://git.f7cloud.ru/root/F7_recording.git); then + log_error "Не удалось клонировать репозиторий F7_recording" + exit 1 +fi +sleep 1 +if ! [ -d /tmp/F7_recording ]; then + log_error "Директория /tmp/F7_recording не существует после клонирования" + exit 1 +fi + +R=/tmp/F7_recording +HPB_URL="https://${HPB_DOMAIN}" +HPB_SECRET="$HPB_INTERNAL_SECRET" +F7_URL="https://${DOMAIN}" +F7_SECRET="$HPB_BACKEND_SECRET" + +echo "Установка зависимостей..." +apt-get update -qq +DEBIAN_FRONTEND=noninteractive apt-get install -y python3 python3-pip python3-venv xvfb ffmpeg 2>/dev/null || true +apt-get install -y firefox-esr 2>/dev/null || apt-get install -y firefox 2>/dev/null || true + +mkdir -p /etc/f7cloud-talk-recording +cat > /etc/f7cloud-talk-recording/server.conf << INNER +[backend] +secret = $HPB_SECRET + +[my-backend] +url = $HPB_URL +secret = $F7_SECRET +INNER + +(cd "$R" && python3 -m venv /opt/f7cloud-recording-venv 2>/dev/null) || true +(cd "$R" && /opt/f7cloud-recording-venv/bin/pip install -e . 2>/dev/null) || (cd "$R" && pip3 install -e . 2>/dev/null) || true + +find "$R" -maxdepth 2 -name '*.service' -exec cp {} /etc/systemd/system/ \; +systemctl daemon-reload 2>/dev/null || true +systemctl enable f7cloud-talk-recording 2>/dev/null || true +systemctl start f7cloud-talk-recording 2>/dev/null || true + +echo "Конец: $(date '+%Y-%m-%d %H:%M:%S')" >> "$ERROR_LOG" +echo "F7_recording установлен. Лог ошибок: $ERROR_LOG" +exit 0