Aggiunge docs/ARCHITECTURE.md con topologia rete, edge nginx, flussi HLS/replay e monitoraggio ops; allinea i documenti esistenti. Co-authored-by: Cursor <cursoragent@cursor.com>
77 lines
2.2 KiB
Markdown
77 lines
2.2 KiB
Markdown
# 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](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):**
|
|
```bash
|
|
sudo bash ~/matchlivetv/scripts/deploy/server_bootstrap.sh
|
|
bash ~/matchlivetv/scripts/deploy/post_bootstrap_deploy.sh
|
|
```
|
|
|
|
## Avvio rapido (locale)
|
|
|
|
```bash
|
|
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
|
|
|
|
```bash
|
|
./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](native/android/README.md).
|
|
|
|
## Architettura
|
|
|
|
Documentazione completa: **[docs/ARCHITECTURE.md](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
|
|
|
|
```bash
|
|
./scripts/build_native_android_apk_prod.sh
|
|
# API: https://www.matchlivetv.it
|
|
```
|