e727069d43d532d38a81ae7396bef02d535af580
Catalogo sport in YAML, board implicito, engine per volley/basket/timed/racket/timer/generic, regia e app Android allineate. Co-authored-by: Cursor <cursoragent@cursor.com>
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
- API Rails: http://localhost:3000
- MediaMTX RTMP: rtmp://localhost:1935
- MediaMTX API: http://localhost:9997
- Admin: http://localhost:3000/admin
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
- Video (MVP): Phone → MediaMTX (RTMP) → HLS su
matchlivetv.*(pagina/live/:session_id) - Video (premium): stesso ingest + relay ffmpeg verso YouTube
- Controllo: Phone ↔ Action Cable ↔ Rails ↔ PostgreSQL
- Disconnessioni: MediaMTX
alwaysAvailableslate + timeout 5 min (Sidekiq)
App Android produzione
./scripts/build_native_android_apk_prod.sh
# API: https://www.matchlivetv.it
Languages
Ruby
34.3%
Kotlin
21.9%
Swift
19.5%
HTML
13.6%
CSS
4%
Other
6.7%