Recordings e Garage usano bind mount su /media/videos; aggiunge ntfy self-hosted, notifiche critical+warning, SMTP Aruba SSL/465 e fix cron replay. Co-authored-by: Cursor <cursoragent@cursor.com>
35 lines
1.3 KiB
Bash
Executable File
35 lines
1.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Garage replay storage su server produzione (/opt/matchlivetv/infra)
|
|
set -euo pipefail
|
|
|
|
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
|
cd "$ROOT"
|
|
|
|
export COMPOSE_FILE="docker-compose.prod.yml"
|
|
export ENV_FILE="${ROOT}/.env"
|
|
export CREDS_FILE="${ROOT}/garage/prod-credentials.env"
|
|
|
|
bash "${ROOT}/scripts/ensure_garage_prod_config.sh"
|
|
|
|
echo "Avvio Garage..."
|
|
docker compose -f docker-compose.prod.yml --env-file .env up -d garage
|
|
|
|
videos_root="${MATCHLIVETV_VIDEOS_ROOT:-/media/videos/matchlivetv}"
|
|
capacity_df="${videos_root}"
|
|
[ -d "$capacity_df" ] || capacity_df="/"
|
|
avail_gb="$(df -BG "${capacity_df}" 2>/dev/null | awk 'NR==2 {print $4}' | tr -d 'G')"
|
|
reserve="${GARAGE_RESERVE_GB:-20}"
|
|
cap_gb=$((avail_gb - reserve))
|
|
[ "$cap_gb" -lt 10 ] && cap_gb=10
|
|
export GARAGE_NODE_CAPACITY="${GARAGE_NODE_CAPACITY:-${cap_gb}G}"
|
|
echo "Capacità nodo Garage: ${GARAGE_NODE_CAPACITY} (disco ~${avail_gb}G, riserva ${reserve}G)"
|
|
|
|
bash "${ROOT}/scripts/setup_garage_replays.sh"
|
|
|
|
echo "Riavvio Rails e Sidekiq..."
|
|
docker compose -f docker-compose.prod.yml --env-file .env up -d rails sidekiq
|
|
|
|
echo "Verifica storage:"
|
|
docker compose -f docker-compose.prod.yml --env-file .env exec -T rails bundle exec rails runner \
|
|
'puts({local: MatchLiveTv.replay_storage_local?, backend: Recordings::Storage.new.backend_name}.inspect)'
|