Permette upload da portale e app con ereditarietà partita→squadra→società, generazione MP4 via ffmpeg e distribuzione su home lab e nodi CPX per pause e assenza segnale.
Co-authored-by: Cursor <cursoragent@cursor.com>
Dopo la conferma admin la card restava su «Paga con bonifico»; la società parte da Free, l'owner è staff trasmissione e le mail non bloccano se manca SMTP.
Co-authored-by: Cursor <cursoragent@cursor.com>
Il piano si attiva solo dopo la conferma admin; Stripe resta a listino se non c'è un prezzo commerciale.
Co-authored-by: Cursor <cursoragent@cursor.com>
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>
Durante il wait del CPX l'API chiudeva la connessione TLS; i tre PNG servono le varianti dark/white del marchio.
Co-authored-by: Cursor <cursoragent@cursor.com>
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>
Il form invito è sulla pagina squadra, genera il link e manda la mail; in caso di errore SMTP resta la copia manuale.
Co-authored-by: Cursor <cursoragent@cursor.com>
Allinea i piani Light/Full ai prezzi di lancio, ripensa /funzionalita per vendere il prodotto e aggiunge i badge App Store/Play nella home.
Co-authored-by: Cursor <cursoragent@cursor.com>
L'encoder scende in congestione e risale piano; la regia imposta il pavimento, mostra lo stato del telefono e apre il selettore dal bitrate colorato.
Co-authored-by: Cursor <cursoragent@cursor.com>
Con IDLE_MINUTES=0 (o race stretta) lo scale-out veniva annullato subito; lo smoke AutoscalerJob Cloud su collaudo ora completa scale-out e scale-in.
Co-authored-by: Cursor <cursoragent@cursor.com>
Senza questo il telefono (mono 48k) veniva rifiutato sui nodi Hetzner e lo warm spare rubava le sessioni a home.
Co-authored-by: Cursor <cursoragent@cursor.com>
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>
Isola MediaMTX dal :1935 di produzione sullo stesso IP pubblico e documenta env/helper per il container Proxmox di test.
Co-authored-by: Cursor <cursoragent@cursor.com>
Evita che ensure_home_from_env! annulli il drain a ogni allocate, e prepara /slates/offline.mp4 sul nodo Cloud per create_path MediaMTX.
Co-authored-by: Cursor <cursoragent@cursor.com>
Sistemati path API /v1, AppArmor/auth MediaMTX sul nodo e defaults nbg1 così lo smoke Cloud è ripetibile.
Co-authored-by: Cursor <cursoragent@cursor.com>
Drain sicuro in scale-in, alert Ops su overflow e controlli admin senza abilitare il deploy in produzione.
Co-authored-by: Cursor <cursoragent@cursor.com>
Scala i nodi overflow quando gli slot calano, mantiene una spare a caldo sotto carico e spegne gli idle, disattivabile con STREAM_AUTOSCALE_ENABLED.
Co-authored-by: Cursor <cursoragent@cursor.com>
Evita doppi ffmpeg tra host: stop solo sull'owner, ensure con requeue a capacità piena e coda Sidekiq youtube_relay isolata.
Co-authored-by: Cursor <cursoragent@cursor.com>
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>
Rimuove l'alpha dall'AppIcon e dichiara tutte le orientazioni richieste dal multitasking iPad, così l'upload ASC non fallisce più.
Co-authored-by: Cursor <cursoragent@cursor.com>
Rimuove il pulsante ridondante «Partita programmata», migliora il padding dei bottoni e fa di splash/login/matches root vere così non compare più il chevron indietro spurio.
Co-authored-by: Cursor <cursoragent@cursor.com>
Gli header Accept-Language dalle app e i fix di padding/menu sul web chiudono il giro password-policy; il doc guida il lavoro su Mac.
Co-authored-by: Cursor <cursoragent@cursor.com>
Le .so AndroidX sono già stripped: AGP non generava metadata; ora le iniettiamo nel bundle prima della firma (release 2.0.9 / 30).
Co-authored-by: Cursor <cursoragent@cursor.com>
ffmpeg fa solo remux copy A/V; le app fissano AAC 48 kHz mono; sync deploy non cancella più garage.prod.toml.
Co-authored-by: Cursor <cursoragent@cursor.com>
Così al ripristino dello storage gli incidenti garage_storage:head si chiudono da soli invece di restare aperti.
Co-authored-by: Cursor <cursoragent@cursor.com>
Serve assetlinks su edge/Rails, documenta overflow Hetzner e bumpa l'AAB a 28 con simboli nativi per Play.
Co-authored-by: Cursor <cursoragent@cursor.com>