F7_recording/f7recording.sh

73 lines
2.7 KiB
Bash
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.

#!/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