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>
55 lines
2.0 KiB
Bash
Executable File
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
|