Il relay HLS→RTMPS resta sul worker/agent del nodo assegnato, così tre dirette contemporanee restano in onda sul sito e sul canale della società senza schermo nero. Co-authored-by: Cursor <cursoragent@cursor.com>
50 lines
1.6 KiB
Bash
Executable File
50 lines
1.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Worker coda youtube_relay_<slug>: parla con l'agent sul CPX (ffmpeg gira lì).
|
|
#
|
|
# Lab locale:
|
|
# STREAM_NODE_SLUG=ingest-lab-01 bash scripts/dev_sidekiq_relay.sh up
|
|
#
|
|
# CPX:
|
|
# STREAM_NODE_SLUG=ingest-01 STREAM_NODE_RELAY_AGENT_URL=http://1.2.3.4:9100 bash scripts/dev_sidekiq_relay.sh up
|
|
set -euo pipefail
|
|
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
|
SLUG="${STREAM_NODE_SLUG:-ingest-lab-01}"
|
|
ACTION="${1:-up}"
|
|
NAME="infra-sidekiq-relay-${SLUG}"
|
|
export STREAM_NODE_SLUG="$SLUG"
|
|
cd "$ROOT/infra"
|
|
|
|
case "$ACTION" in
|
|
up)
|
|
docker rm -f "$NAME" >/dev/null 2>&1 || true
|
|
extra=()
|
|
if [[ -n "${STREAM_NODE_RELAY_AGENT_URL:-}" ]]; then
|
|
extra+=(
|
|
-e STREAM_NODE_RELAY_AGENT_URL="$STREAM_NODE_RELAY_AGENT_URL"
|
|
-e STREAM_NODE_AGENT_SECRET="${STREAM_NODE_AGENT_SECRET:-mediamtx_webhook_dev_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
|
|
docker compose --profile stream-node run -d --no-deps --name "$NAME" \
|
|
-e STREAM_NODE_SLUG="$SLUG" \
|
|
-e HOSTNAME="$SLUG" \
|
|
-e YOUTUBE_RELAY_WORKER=1 \
|
|
-e RELAY_MAX_CONCURRENT="${RELAY_MAX_CONCURRENT:-1}" \
|
|
"${extra[@]}" \
|
|
sidekiq_relay
|
|
echo "relay worker up name=${NAME} queue=youtube_relay_${SLUG} agent=${STREAM_NODE_RELAY_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 $0 up|down|logs" >&2
|
|
exit 1
|
|
;;
|
|
esac
|