Initial commit: monorepo Match Live TV.
Rails API, app Flutter, infrastruttura Docker/MediaMTX, sito marketing e documentazione di deploy. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
70
README.md
Normal file
70
README.md
Normal file
@@ -0,0 +1,70 @@
|
||||
# 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:** *Lo streaming che non muore*
|
||||
|
||||
## Struttura monorepo
|
||||
|
||||
```
|
||||
├── backend/ # Rails 7.2 API + Action Cable + Sidekiq
|
||||
├── mobile/ # Flutter app (Camera + Regia)
|
||||
├── 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
|
||||
```
|
||||
|
||||
## Mobile
|
||||
|
||||
```bash
|
||||
cd mobile
|
||||
flutter pub get
|
||||
flutter run
|
||||
```
|
||||
|
||||
Configura `API_BASE_URL` in `lib/core/config.dart` (default `http://10.0.2.2:3000` per emulatore Android).
|
||||
|
||||
## 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 `alwaysAvailable` slate + timeout 5 min (Sidekiq)
|
||||
|
||||
### Mobile produzione
|
||||
|
||||
```bash
|
||||
./scripts/run_mobile_android_prod.sh
|
||||
# API: https://matchlivetv.eminux.it
|
||||
```
|
||||
Reference in New Issue
Block a user