Aggiunge overlay server-side burn-in e stabilizza diretta live.

Tabellone, badge e brand sono ricodificati nel flusso _air via OverlayRelay;
sync punteggio HTTP, volume condiviso rails/sidekiq, qualità 720p migliorata
e badge CONNECTING in ripresa da pausa.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-03 23:55:17 +02:00
parent fd225fbadd
commit ab9cb02083
58 changed files with 2423 additions and 242 deletions

View File

@@ -0,0 +1,37 @@
#!/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:-}"
if [ -z "$CAPACITY" ]; then
avail="$(df -BG "${ROOT}" 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