#!/usr/bin/env bash # Fallback manuale: worker dedicato youtube_relay_ 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