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>
43 lines
1.7 KiB
Bash
Executable File
43 lines
1.7 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Ridimensiona capacità Garage (layout assign + apply). Uso: garage_set_capacity.sh 85G
|
|
set -euo pipefail
|
|
|
|
CAPACITY="${1:-}"
|
|
RESERVE_GB="${GARAGE_RESERVE_GB:-20}"
|
|
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
|
COMPOSE_FILE="${COMPOSE_FILE:-docker-compose.prod.yml}"
|
|
ENV_FILE="${ENV_FILE:-${ROOT}/.env}"
|
|
GARAGE_CONTAINER="${GARAGE_CONTAINER:-}"
|
|
VIDEOS_ROOT="${MATCHLIVETV_VIDEOS_ROOT:-/media/videos/matchlivetv}"
|
|
|
|
if [ -z "$CAPACITY" ]; then
|
|
capacity_df="${VIDEOS_ROOT}"
|
|
if [ ! -d "$capacity_df" ]; then
|
|
capacity_df="${ROOT}"
|
|
fi
|
|
avail="$(df -BG "${capacity_df}" 2>/dev/null | awk 'NR==2 {print $4}' | tr -d 'G' || echo 0)"
|
|
if [ "$avail" -lt 1 ]; then
|
|
avail="$(df -BG / 2>/dev/null | awk 'NR==2 {print $4}' | tr -d 'G')"
|
|
fi
|
|
cap_gb=$((avail - RESERVE_GB))
|
|
[ "$cap_gb" -lt 10 ] && cap_gb=10
|
|
CAPACITY="${cap_gb}G"
|
|
echo "Spazio disponibile ~${avail}G, riservo ${RESERVE_GB}G → capacità Garage ${CAPACITY}"
|
|
fi
|
|
|
|
cd "$ROOT"
|
|
if [ -z "$GARAGE_CONTAINER" ]; then
|
|
GARAGE_CONTAINER="$(docker ps --format '{{.Names}}' | grep -E 'garage-1$' | head -1)"
|
|
fi
|
|
[ -n "$GARAGE_CONTAINER" ] || { echo "Container garage non trovato"; exit 1; }
|
|
|
|
node_id="$(docker exec "$GARAGE_CONTAINER" /garage status 2>/dev/null | awk '/^[0-9a-f]{16,}/{print $1; exit}')"
|
|
[ -n "$node_id" ] || { echo "Node id non trovato"; exit 1; }
|
|
|
|
echo "Node: $node_id → capacità $CAPACITY"
|
|
docker exec "$GARAGE_CONTAINER" /garage layout assign -z dc1 -c "$CAPACITY" "$node_id"
|
|
ver="$(docker exec "$GARAGE_CONTAINER" /garage layout show 2>/dev/null | awk '/layout version:/{print $NF; exit}')"
|
|
next=$((ver + 1))
|
|
docker exec "$GARAGE_CONTAINER" /garage layout apply --version "$next"
|
|
docker exec "$GARAGE_CONTAINER" /garage layout show
|