Corregge cloud-init montato, PublisherOnline multi-nodo e E2E locale-aware.
Senza volume stream-node i nodi Hetzner nascevano senza MediaMTX; sync live usa ora Client.for_session e rtmpconns (MediaMTX 1.20). Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -16,13 +16,18 @@ services:
|
||||
- "18888:8888" # HLS diretto opzionale; in genere basta /hls via edge+NPM
|
||||
|
||||
# Passa tutto .env (HCLOUD_*, STREAM_*, …) ai processi Rails/Sidekiq
|
||||
# Monta cloud-init: HCLOUD_USER_DATA_FILE punta a path host non presente nell'immagine.
|
||||
rails:
|
||||
env_file:
|
||||
- .env
|
||||
volumes:
|
||||
- ./stream-node:/opt/matchlivetv/infra/stream-node:ro
|
||||
|
||||
sidekiq:
|
||||
env_file:
|
||||
- .env
|
||||
volumes:
|
||||
- ./stream-node:/opt/matchlivetv/infra/stream-node:ro
|
||||
|
||||
# ntfy collaudo su porta diversa (evita confusione se si punta per sbaglio l'host)
|
||||
ntfy:
|
||||
|
||||
@@ -135,6 +135,7 @@ services:
|
||||
- ${MATCHLIVETV_VIDEOS_ROOT:-/media/videos/matchlivetv}/recordings:/recordings
|
||||
- ${MATCHLIVETV_VIDEOS_ROOT:-/media/videos/matchlivetv}/active_storage:/app/storage
|
||||
- ${MATCHLIVETV_VIDEOS_ROOT:-/media/videos/matchlivetv}/log:/app/log
|
||||
- ${HCLOUD_USER_DATA_HOST_DIR:-./stream-node}:/opt/matchlivetv/infra/stream-node:ro
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://127.0.0.1:3000/up"]
|
||||
interval: 15s
|
||||
@@ -230,6 +231,7 @@ services:
|
||||
- ${MATCHLIVETV_VIDEOS_ROOT:-/media/videos/matchlivetv}/recordings:/recordings
|
||||
- ${MATCHLIVETV_VIDEOS_ROOT:-/media/videos/matchlivetv}/active_storage:/app/storage
|
||||
- ${MATCHLIVETV_VIDEOS_ROOT:-/media/videos/matchlivetv}/log:/app/log
|
||||
- ${HCLOUD_USER_DATA_HOST_DIR:-./stream-node}:/opt/matchlivetv/infra/stream-node:ro
|
||||
|
||||
garage:
|
||||
image: dxflrs/garage:v1.0.1
|
||||
|
||||
@@ -49,10 +49,11 @@ write_files:
|
||||
docker pull bluenviron/mediamtx:latest
|
||||
docker rm -f mediamtx 2>/dev/null || true
|
||||
# Slate offline (alwaysAvailable) — richiesta da Mediamtx::Client#create_path
|
||||
# MediaMTX 1.20+: il publisher RTMP deve matchare canali audio della slate (stereo).
|
||||
mkdir -p /slates
|
||||
if [ ! -f /slates/offline.mp4 ]; then
|
||||
ffmpeg -y -f lavfi -i color=c=black:s=1280x720:d=2 -f lavfi -i anullsrc=r=44100:cl=stereo \
|
||||
-c:v libx264 -t 2 -pix_fmt yuv420p -c:a aac -shortest /slates/offline.mp4
|
||||
-c:v libx264 -t 2 -pix_fmt yuv420p -c:a aac -ac 2 -shortest /slates/offline.mp4
|
||||
fi
|
||||
# Debian cloud image: docker.io senza apparmor_parser → serve unconfined o pkg apparmor
|
||||
docker run -d --name mediamtx --restart unless-stopped --network host \
|
||||
|
||||
Reference in New Issue
Block a user