WEB RADIO PANEL 2.0.8  -  pacchetto di installazione
=====================================================

COSA E'
Pannello di gestione per web radio (piu' stazioni, libreria musicale, playlist e programmazione oraria, jukebox,
DJ in diretta, sfondi del sito, statistiche, backup/restore, Note Legali e Privacy modificabili, pannello e sito
in piu' lingue). Il pacchetto NON contiene brani MP3 o video.

REQUISITI DEL SERVER
- Linux Debian/Ubuntu con accesso root (SSH)
- Un sito web gia' creato per il dominio (cartella del sito servita da nginx/Apache con PHP-FPM 8.1+),
  con certificato SSL
- MySQL o MariaDB sul server (oppure i dati di un database esistente)
- Docker, Icecast 2, PHP CLI con pdo_mysql, python3, openssl, curl, acl
  (l'installer propone di installare da solo quelli mancanti, con apt)

SERVER SENZA PANNELLO DI HOSTING (nginx a mano)
   Prima dell'installazione lancia:   bash prepara_web.sh
   Crea cartella del sito, sito nginx con PHP-FPM, sottodominio dello stream e certificati SSL (Let's Encrypt)
   e alla fine ti dice cosa rispondere all'installer. Prima servono i due record DNS A (sito e stream).
   Per annullarlo:   bash prepara_web.sh --annulla

INSTALLAZIONE
1. Copia il pacchetto sul server e decomprimilo:
       tar xzf webradio-panel-2.0.8.tar.gz && cd webradio-panel-2.0.8
2. Avvia l'installazione guidata come root:
       bash install.sh
3. Scegli la lingua (Italiano / English) e rispondi alle domande: ti spiegano passo passo cosa serve.
   Dati richiesti: dominio, nome della radio, nome e logo del proprietario, logo della radio (facoltativo), email di contatto, lingue,
   utente e password del pannello, database. Prima di modificare qualcosa vedi un riepilogo da confermare.
4. A fine installazione trovi un rapporto (/root/install-...txt) con indirizzi e password, e l'elenco
   dei passi da fare (sottodominio dello stream, regole nginx).

DOPO L'INSTALLAZIONE (dal pannello /admin/)
- Marchio e contatti : nome societa', logo, titolo del sito, email, dominio
- Stazioni -> Disclaimer : Note Legali e Privacy Policy (all'inizio sono testi di ESEMPIO generici:
  adattali e fai verificare da un professionista)
- Lingue : scegli la lingua del pannello e del sito; modifica le traduzioni o crea nuove lingue (fr, de, es...)
- Libreria musicale : carica i brani; Playlist : crea e assegna; la radio parte da sola

LICENZA (dalla versione 1.0.39)
- Pannello -> Licenza: registri il software e parte la prova gratuita di 7 giorni; poi paghi la licenza e inserisci il codice
  (XXXX-XXXX-XXXX-XXXX) che ricevi per email. La pagina mostra anche il CodeUni, il codice che identifica il server.
- Il server deve poter raggiungere https://licenze.buildweb.it (controllo automatico ogni 12 ore; senza Internet il
  pannello continua a funzionare fino a 30 giorni dall'ultimo controllo).

STOP ICECAST/RADIO (dalla versione 1.0.40)
- Nel menu, sotto START ICECAST, il pulsante STOP ICECAST/RADIO ferma tutto: Icecast, tutte le stazioni e la
  diretta DJ. Restano ferme anche se il server si riavvia. Il sito pubblico mostra la pagina "Sito in manutenzione"
  (dentro index.php, nessuna pagina in piu'); nel pannello compare un avviso rosso.
- Per ripartire premi START ICECAST: riaccende Icecast e le stazioni e rimette online il sito.
- Da amministratore collegato puoi vedere il sito vero durante la manutenzione con  https://tuodominio/?anteprima=1

PLAYLIST VIDEO (dalla versione 1.0.41)
- Pannello -> Playlist Video: carichi file MP4 (o importi dalla cartella media/incoming per i file grandi).
- Per ogni video scegli l'audio di onda: audio originale del video, nessun audio (silenzio in onda) oppure un
  altro brano della Libreria musicale; e se usarlo anche come sfondo della radio (senza audio).
- I video vanno in onda in ordine, ogni N brani (eventualmente solo in una fascia oraria), oppure subito con
  "Metti in onda ora". Il sito mostra il video a tutto schermo, sincronizzato con la radio.
- Dalla 1.0.42: quando parte un video la card del sito sparisce e la radio parte da sola (se il browser
  blocca l'avvio automatico compare il pulsante "Guarda il video con l'audio"); a fine video la card torna.
- Dalla 1.0.43: mentre un video e' in onda lo sfondo del sito (anche se e' lo stesso video usato come sfondo) viene nascosto, cosi' il video si vede una volta sola.
- Dalla 1.0.44: la card sparisce subito, appena parte il video, senza aspettare il ritardo dello stream.
- Dalla 1.0.45: a fine video il filmato resta fermo sull'ultimo fotogramma e non riparte da capo (salvo il caso voluto: audio piu' lungo del video).
- Dalla 1.0.46: il video non riparte piu' alla fine. "Metti in onda ora" restava ritirabile da Liquidsoap per 8 secondi e, con un video corto, il brano veniva ripreso; ora la prenotazione si toglie appena il video parte. Una seconda segnalazione dello stesso video in onda non crea piu' una nuova riga di cronologia.
- Dalla 1.0.50: anche liquidsoap_next_track.php non rimanda lo stesso video (e il suo audio) mentre e' ancora in onda: l'audio non si ripete. Se l'audio arriva dopo l'immagine, alza "Ritardo del video sul sito" (nella pagina Playlist Video) fino a quanto e' il ritardo dello streaming (es. 11 secondi).
- Serve ffmpeg sul server per l'audio originale e le copertine (installato da install.sh e aggiorna.sh).

DISINSTALLAZIONE
       bash rimuovi_installazione.sh   (rimozione COMPLETA: servizi, script, file del sito e database;
       chiede tre conferme di sicurezza e propone una copia di sicurezza prima di cancellare)

NOTE
- Il pannello e il sito caricano icone e font da Internet (vedi THIRD-PARTY.txt): considera l'aspetto privacy.
- Le traduzioni traducono i testi del pannello per frase intera; frasi composte da piu' pezzi possono
  risultare parzialmente in italiano: correggile da Lingue.
- Il file LICENSE.txt e' un segnaposto da sostituire con le tue condizioni commerciali.
- Dalla 1.0.48: nella pagina Playlist Video, sotto "Carica", "Cerca video sul server" elenca i file video gia' presenti sul server e li aggiunge alla playlist senza ricaricarli.
- Dalla 1.0.50: sulla card le etichette Play / Pausa indicano lo stato: mentre la radio suona si illumina "Play", da ferma "Pausa" (prima erano invertite). Vale anche per la card Jukebox.
- Dalla 1.0.50: nella pagina Stazioni, tra Slug e Nome, la colonna AutoStart con i pulsanti SI / NO: con SI la pagina principale del sito parte con la radio in Play, con NO parte in Pausa (predefinito). I browser possono bloccare l'audio automatico finche' l'ascoltatore non tocca la pagina: in quel caso resta in Pausa.
- Dalla 1.0.51: Playlist ha la sottopagina "Aggiungi o cancella brani" (nel menu sotto Playlist, o col pulsante in cima alla pagina Playlist): li' c'e' l'elenco dei brani da spuntare per aggiungerli o toglierli dalla playlist (prima era in fondo alla pagina Playlist) e la colonna rossa Cancella con il pulsante "Cancella i selezionati": cancella i file dal server e toglie i brani dalla Libreria e da tutte le playlist. Chiede conferma; il brano in onda non viene cancellato.
- Dalla 1.0.52: in "Aggiungi o cancella brani" i brani sono a gruppi di 15 per pagina, le colonne Playlist e Cancella hanno la casella "Tutti" e in cima c'e' "Carica nuovi brani dal PC" (audio; con la spunta vanno subito in coda alla playlist scelta).
- Dalla 2.0.1: quando un DJ e' collegato in diretta, nella barra in alto del pannello compare un riquadro ROSSO con il nome del DJ e sotto "ON THE AIR NOW"; sparisce da solo quando il DJ si scollega (si aggiorna ogni 8 secondi, senza ricaricare la pagina). Quando nessun DJ e' collegato nella barra non si vede nulla. L'amministratore puo' cliccare il riquadro per scollegare il DJ e chiudere la sua trasmissione (chiede conferma); gli utenti DJ vedono il riquadro ma non possono cliccarlo.
- Dalla 2.0.2: Playlist ha la sottopagina "Sfondi" (nel menu sotto Playlist, o col pulsante "Sfondi" in cima alla pagina Playlist): li' c'e' tutto lo "Sfondo comune a tutti i brani della playlist" (casella Sfondo comune, sfondo scelto, sfondi disponibili con Salva la scelta, sequenza con durate e frecce, Togli, caricamento di immagini/video, importazione dalla cartella del server), che prima stava nella pagina Playlist. Nella pagina Playlist la tabella dei brani mostra 15 brani per pagina e accanto ai numeri di pagina c'e' la casella "Cerca" (titolo, autore, artista, album o nome del file, anche piu' parole): la ricerca resta attiva cambiando pagina, ordinamento o salvando una riga; "Mostra tutti" la toglie.
- Dalla 2.0.3: nella pagina Programmazione, sotto le fasce orarie delle playlist, c'e' la sezione "Programmazione brani". Con "Cerca in archivio brani" si trova un brano della Libreria o un video della Playlist Video e con "Programma" diventa una riga con la sua programmazione: ogni X brani, epoca dal/al, giorni L M M G V S D, fascia oraria dalle/alle, TOT passaggi (0 = senza limite; si vedono i passaggi fatti, Azzera li rimette a zero), e solo per i video Sfondo/video (SI = il video si vede sul sito, NO = solo audio) e Toglie card (SI = card nascosta e video a tutto schermo con l'audio, NO = la card resta e il video fa da sfondo). La programmazione ha la precedenza su tutto: senza DJ il brano entra alla fine del brano in corso; con un DJ in diretta la diretta viene sospesa (il DJ resta collegato) e riprende da sola alla fine del passaggio programmato. Durante la diretta "ogni X brani" conta i brani segnalati dal programma del DJ. L'aggiornamento cambia radio.liq (coda "programmati") e riavvia Liquidsoap una volta; se Liquidsoap non riparte rimette il radio.liq di prima.
- Dalla 2.0.4: api/regia_trasmissione.php (la chiamata che MIX RADIO fa gia') risponde anche con "programmazione": attiva (passaggio programmato in onda, diretta del DJ in pausa), in_coda (sta per partire), titolo, durata, secondi_rimasti. MIX RADIO lo usa per avvisare il DJ.
- Dalla 2.0.5: Programmazione brani, tasto Salva controllato: la riga si salva solo se e' coerente (frequenza, epoca, giorni, fascia oraria, TOT, opzioni video); se no resta com'era, i campi sbagliati diventano rossi e sotto la riga c'e' l'elenco degli errori. Avvisi (fascia oltre mezzanotte, fascia piu' corta del brano, TOT gia' raggiunto, riga non attiva, stesso brano su due righe) e stato di ogni riga (Attiva ora, In attesa, Comincia il, Finita).
- Dalla 2.0.6: Programmazione brani piu' leggibile: ogni programmazione e' un riquadro su due righe (sopra nome, stato, Attiva e tasti; sotto i campi con la loro etichetta), caratteri piu' grandi.
- Dalla 2.0.7: Programmazione brani, titolo del brano grande (con l'artista) e il nome del file sotto; accanto al TOT la casella rossa "Passati" con i passaggi gia' andati in onda, non modificabile (si azzera solo con Azzera).
