Prepara l'architettura multi-nodo (MediaMTX+ffmpeg) con assignment URL per sessione, admin di provision/drain e provider Cloud/DNS astratti verso mltv-stream.net. Co-authored-by: Cursor <cursoragent@cursor.com>
42 lines
1.0 KiB
YAML
42 lines
1.0 KiB
YAML
#cloud-config
|
|
# Cloud-init minimale per nodo stream Hetzner (MediaMTX + ffmpeg).
|
|
# Uso in .env produzione:
|
|
# HCLOUD_USER_DATA_FILE=/opt/matchlivetv/infra/stream-node/cloud-init.yaml
|
|
#
|
|
# Per boot più veloci: creare uno snapshot dopo il primo setup e usare HCLOUD_IMAGE=<snapshot>.
|
|
|
|
package_update: true
|
|
packages:
|
|
- docker.io
|
|
- ffmpeg
|
|
- curl
|
|
runcmd:
|
|
- systemctl enable --now docker
|
|
- mkdir -p /opt/stream-node /recordings /slates
|
|
- |
|
|
cat >/opt/stream-node/docker-compose.yml <<'EOF'
|
|
services:
|
|
mediamtx:
|
|
image: bluenviron/mediamtx:latest
|
|
network_mode: host
|
|
restart: unless-stopped
|
|
volumes:
|
|
- ./mediamtx.yml:/mediamtx.yml:ro
|
|
- /recordings:/recordings
|
|
- /slates:/slates:ro
|
|
command: /mediamtx.yml
|
|
EOF
|
|
- |
|
|
cat >/opt/stream-node/mediamtx.yml <<'EOF'
|
|
logLevel: info
|
|
api: yes
|
|
apiAddress: :9997
|
|
rtmp: yes
|
|
rtmpAddress: :1935
|
|
hls: yes
|
|
hlsAddress: :8888
|
|
paths:
|
|
all_others:
|
|
EOF
|
|
- cd /opt/stream-node && docker compose up -d
|