Emiliano Frascaro e20c2ae619 Accetta undo punteggio dalla regia sull'overlay iOS.
applyRemote ignorava aggiornamenti Action Cable con progressKey più basso, quindi il meno in regia non aggiornava il tabellone sullo stream.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-20 16:28:36 +02:00
2026-05-26 15:30:42 +00:00

Match Live TV

Piattaforma mobile-first per streaming di partite sportive giovanili — MVP su Match Live TV (HLS sul nostro sito); YouTube/Facebook/Twitch come integrazioni premium.

Slogan: Ogni partita, ogni evento, per i tuoi tifosi.

Struttura monorepo

├── backend/        # Rails 7.2 API + Action Cable + Sidekiq
├── native/android/ # App Android nativa (Kotlin + Compose)
├── infra/          # Docker Compose, MediaMTX, Nginx, Kamal
└── docs/           # Documentazione

Deploy produzione (server 192.168.1.146)

Vedi docs/infrastructure/SERVER_DEPLOYMENT.md per porte router, NPM e procedura completa.

Porte da aprire sul router: 1935/TCP (RTMP). Opzionale 8888/TCP (HLS). HTTPS via Nginx Proxy Manager verso http://192.168.1.146:3000.

Sul server (una tantum, con sudo):

sudo bash ~/matchlivetv/scripts/deploy/server_bootstrap.sh
bash ~/matchlivetv/scripts/deploy/post_bootstrap_deploy.sh

Avvio rapido (locale)

cd infra
cp .env.example .env
docker compose up -d --build

Seed utente demo

email: coach@matchlivetv.test
password: password123

App Android nativa

./scripts/build_native_android_apk_prod.sh
adb install -r native/android/app/build/outputs/apk/release/app-release.apk

API produzione: https://www.matchlivetv.it (override con -PAPI_BASE_URL=... in Gradle).

Vedi native/android/README.md.

Architettura

Documentazione completa: docs/ARCHITECTURE.md (rete, edge nginx, flussi video, ops).

In sintesi:

  • Video live: Phone → MediaMTX (RTMP) → HLS via edge /hls/ (non Puma)
  • Video replay: Rails auth → redirect /media/ → Garage (non Puma)
  • Video premium: stesso ingest + relay ffmpeg verso YouTube
  • Controllo: Phone ↔ Action Cable ↔ Rails ↔ PostgreSQL
  • Disconnessioni: MediaMTX alwaysAvailable slate + timeout 5 min (Sidekiq)

App Android produzione

./scripts/build_native_android_apk_prod.sh
# API: https://www.matchlivetv.it
Description
Piattaforma di live streaming per sport dilettantistico con regia remota, gestione squadre, streaming mobile e archivio partite.
Readme GPL-3.0 37 MiB
Languages
Ruby 34.3%
Kotlin 21.9%
Swift 19.5%
HTML 13.6%
CSS 4%
Other 6.7%