Files
MatchLiveTv/scripts/deploy/prod_relay_worker.sh
T
eminuxandCursor 841a6a15be Avvia i relay YouTube overflow dal Sidekiq home e passa STREAM/HCLOUD in produzione.
Così un CPX nuovo non richiede worker Docker a mano, l'agent è nel cloud-init e gli E2E restano non in elenco.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-18 08:57:56 +02:00

55 lines
2.0 KiB
Bash
Executable File

#!/usr/bin/env bash
# Fallback manuale: worker dedicato youtube_relay_<slug> verso l'agent sul CPX.
# In produzione il Sidekiq home ascolta youtube_relay_cloud e chiama l'agent da solo;
# questo script serve solo se quel dispatch è spento o per debug.
# STREAM_NODE_SLUG=ingest-01 STREAM_NODE_RELAY_AGENT_URL=http://1.2.3.4:9100 \
# bash scripts/deploy/prod_relay_worker.sh up
set -euo pipefail
ROOT="$(cd "$(dirname "$0")/../.." && pwd)"
INFRA="${MATCHLIVETV_INFRA:-$ROOT/infra}"
if [ -d /opt/matchlivetv/infra ]; then
INFRA=/opt/matchlivetv/infra
fi
SLUG="${STREAM_NODE_SLUG:?Imposta STREAM_NODE_SLUG (es. ingest-01)}"
ACTION="${1:-up}"
NAME="infra-sidekiq-relay-${SLUG}"
AGENT_URL="${STREAM_NODE_RELAY_AGENT_URL:-}"
AGENT_SECRET="${STREAM_NODE_AGENT_SECRET:-mediamtx_webhook_dev_secret}"
cd "$INFRA"
COMPOSE=(docker compose -f docker-compose.prod.yml --env-file .env)
case "$ACTION" in
up)
docker rm -f "$NAME" >/dev/null 2>&1 || true
extra=()
if [[ -n "$AGENT_URL" ]]; then
extra+=(
-e STREAM_NODE_RELAY_AGENT_URL="$AGENT_URL"
-e STREAM_NODE_AGENT_SECRET="$AGENT_SECRET"
-e STREAM_NODE_LOCAL_RTMP_URL=rtmp://127.0.0.1:1935
-e STREAM_NODE_LOCAL_HLS_URL=http://127.0.0.1:8888
)
fi
"${COMPOSE[@]}" run -d --name "$NAME" --no-deps \
-e STREAM_NODE_SLUG="$SLUG" \
-e YOUTUBE_RELAY_WORKER=1 \
-e HOSTNAME="$SLUG" \
-e RELAY_MAX_CONCURRENT="${RELAY_MAX_CONCURRENT:-2}" \
"${extra[@]}" \
sidekiq \
bash -lc "bundle exec sidekiq -c \${RELAY_MAX_CONCURRENT:-2} -q youtube_relay_${SLUG} -e production"
echo "relay worker up name=${NAME} queue=youtube_relay_${SLUG} agent=${AGENT_URL:-local}"
;;
down)
docker rm -f "$NAME" >/dev/null 2>&1 || true
echo "relay worker down name=${NAME}"
;;
logs)
docker logs -f --tail=80 "$NAME"
;;
*)
echo "Uso: STREAM_NODE_SLUG=ingest-01 STREAM_NODE_RELAY_AGENT_URL=http://IP:9100 $0 up|down|logs" >&2
exit 1
;;
esac