# Copia come infra/.env sul container di collaudo e genera i secret. # cp .env.collaudo.example .env && openssl rand -hex 32 (ripeti per ogni CHANGE_ME) POSTGRES_PASSWORD=CHANGE_ME_STRONG_PASSWORD SECRET_KEY_BASE=CHANGE_ME_openssl_rand_hex_64 JWT_SECRET=CHANGE_ME_openssl_rand_hex_32 MEDIAMTX_WEBHOOK_SECRET=CHANGE_ME_openssl_rand_hex_32 # RTMP collaudo: porta host 11935 (vedi docker-compose.collaudo.yml). # Hostname pubblico: i telefoni in 4G non raggiungono 192.168.1.157. # NAT MikroTik: TCP 11935 WAN → 192.168.1.157:11935. NON toccare :1935 di produzione. MEDIAMTX_RTMP_URL=rtmp://collaudo.matchlivetv.it:11935 APP_PUBLIC_URL=https://collaudo.matchlivetv.it HLS_PUBLIC_URL=https://collaudo.matchlivetv.it/hls CORS_ORIGINS=https://collaudo.matchlivetv.it ALLOWED_HOSTS=collaudo.matchlivetv.it,192.168.1.157,localhost YOUTUBE_REDIRECT_URI=https://collaudo.matchlivetv.it/api/v1/youtube/callback YOUTUBE_CLIENT_ID= YOUTUBE_CLIENT_SECRET= YOUTUBE_PLATFORM_REFRESH_TOKEN= # Stripe: preferisci chiavi Test su collaudo STRIPE_SECRET_KEY= STRIPE_WEBHOOK_SECRET= STRIPE_PREMIUM_LIGHT_MONTHLY_PRICE_ID= STRIPE_PREMIUM_LIGHT_YEARLY_PRICE_ID= STRIPE_PREMIUM_FULL_MONTHLY_PRICE_ID= STRIPE_PREMIUM_FULL_YEARLY_PRICE_ID= STRIPE_PREMIUM_LIGHT_PRICE_ID= STRIPE_PREMIUM_FULL_PRICE_ID= RAILS_LOG_LEVEL=info PRIVACY_CONTROLLER_NAME=Emiliano Frascaro PRIVACY_CONTROLLER_ADDRESS=Via Guido De Ruggiero, 89 - 20142 - Milano (MI) PRIVACY_CONTACT_EMAIL=privacy@matchlivetv.it PRIVACY_CONTROLLER_VAT= MAILER_FROM=Match Live TV Collaudo SMTP_ADDRESS= SMTP_PORT=465 SMTP_USERNAME= SMTP_PASSWORD= SMTP_AUTH=plain SMTP_SSL=true SMTP_STARTTLS=false PASSWORD_RESET_EXPIRY_HOURS=2 MATCHLIVETV_VIDEOS_ROOT=/media/videos/matchlivetv REPLAY_STORAGE_ENDPOINT=http://garage:3900 REPLAY_STORAGE_BUCKET=matchlivetv-replays REPLAY_STORAGE_REGION=garage REPLAY_STORAGE_ACCESS_KEY_ID= REPLAY_STORAGE_SECRET_ACCESS_KEY= REPLAY_STORAGE_FORCE_PATH_STYLE=true REPLAY_MEDIA_PUBLIC_BASE_URL=https://collaudo.matchlivetv.it/media REPLAY_MEDIA_REDIRECT=true RAILS_MAX_THREADS=5 OPS_HTTP_RAILS_URL=http://edge/up OPS_HTTP_PUBLIC_INTERVAL_SECS=900 NTFY_PUBLIC_URL=http://192.168.1.157:18090 OPS_NTFY_URL= OPS_NTFY_TOKEN= OPS_ALERT_EMAIL= OPS_NOTIFY_SEVERITIES=critical,warning OPS_NOTIFY_COOLDOWN_MINUTES=30 OPS_HEALTH_INTERVAL_SECS=180 OPS_HEALTH_TOKEN= OPS_DISK_WARN_PERCENT=80 OPS_DISK_CRIT_PERCENT=90 OPS_RECORDINGS_WARN_GB=20 OPS_RECORDINGS_CRIT_GB=50 OPS_SIDEKIQ_STALE_SECS=300 OPS_LOG_SUBSCRIBER=false SENTRY_DSN= # Stream autoscale — token Hetzner da compilare; kill-switch cloud off finché WG non è ok HCLOUD_TOKEN= HCLOUD_LOCATION=nbg1 HCLOUD_SERVER_TYPE=cpx12 HCLOUD_IMAGE=debian-12 HCLOUD_SSH_KEY=matchlivetv-stream-hetzner HCLOUD_NETWORK_ID= HCLOUD_USER_DATA_FILE=/opt/matchlivetv/infra/stream-node/cloud-init.yaml STREAM_DNS_ZONE=mltv-stream.net STREAM_DNS_TTL=60 STREAM_CLOUD_DNS_SUFFIX=mltv-stream.net STREAM_CLOUD_MAX_PUBLISHERS=4 STREAM_NODE_ENV=collaudo STREAM_CLOUD_PROVIDER=local_lab RELAY_MAX_CONCURRENT=4 YOUTUBE_RELAY_WORKER=1 STREAM_AUTOSCALE_ENABLED=0 STREAM_AUTOSCALE_KIND=lab STREAM_AUTOSCALE_ALLOW_CLOUD=0 STREAM_AUTOSCALE_SOFT_FREE_SLOTS=2 STREAM_AUTOSCALE_WARM_SPARE=1 STREAM_AUTOSCALE_IDLE_MINUTES=30 STREAM_AUTOSCALE_MAX_NODES=5 STREAM_AUTOSCALE_NODE_EUR_PER_HOUR=0.015 STREAM_AUTOSCALE_MONTHLY_BUDGET_EUR=40 STREAM_OVERFLOW_ORPHAN_HOURS=3