Image

Durante quest’ultimo periodo lavorativo ho dovuto configurare molteplici Server per l’azienda per cui ho lavorato. Ovviamente la mia scelta riguardo il sistema operativo, conoscendomi, era scontata; parlo ovviamente di Debian. Ho configurato una macchina virtuale LXC all’interno dell’ambiente Proxmox utilizzando il template di Debian per velocizzare l’installazione e la configurazione della rete tramite interfaccia, in pochi minuti la macchina era pronta.

In questo caso è stato necessario configurare un Web Server RTMP. Di norma utilizzerei il binario di Nginx installabile tramite APT con il modulo libnginx-mod-rtmp incluso e dichiarato nel file di configurazione, ma stavolta ho deciso di implementare un software più completo e pronto all’uso in modo tale che l’utente finale potesse configurarlo in maniera indipendente. L’installazione di Restreamer è stata molto semplice, il software in questione è mantenuto su GitHub e diffuso attraverso l’ottimo Docker.

Cos’è Docker?

È un software libero che ha rivoluzionato il mondo dello sviluppo informatico quando è stato introdotto nel 2013. Consente agli utenti di creare ambienti indipendenti e isolati, noti come container, per lanciare e distribuire applicazioni. A differenza delle macchine virtuali, i container Docker non includono un sistema operativo completo, ma condividono le risorse della macchina host per eseguire i loro ambienti. Questo elimina i problemi di dipendenza e di compilazione, rendendo il lancio delle applicazioni veloce e senza problemi.

Perché usare Docker?

  1. Velocità: l’applicativo può essere avviato e arrestato in pochi secondi, rispetto ai lunghi tempi di avvio delle macchine virtuali.
  2. Compatibilità Multi-piattaforma: consente di lanciare il proprio contenitore su qualsiasi sistema, rendendolo altamente flessibile e adattabile.
  3. Configurazione dell’ambiente semplificata: Una volta configurato Docker con le dipendenze, i container potranno essere migrati in maniera più semplice e pulita.
  4. Isolamento e riduzione del software rot: Ogni ambiente Docker è isolato, in modo che le modifiche o le cancellazioni non abbiano un impatto sul resto del lavoro e/o sul server stesso. Agendo in questo modo si riduce drasticamente il software rot o software entropy. In poche parole il software rot è la degradazione, il deterioramento o la perdita dell’uso o delle prestazioni del software nel corso del tempo. Questo vale in parte per i singoli container e in particolar modo per il sistema operativo Host (in questo caso Debian).

Osservazioni

Ogni container Docker installa l’applicativo interessato e tutte le dipendenze ad esso associate. Questo genera una ridondanza non da poco e un grande quantitativo di memoria di massa occupata. Ovviamente anche nel caso degli hypervisor come Proxmox e VMWare vale lo stesso ragionamento e la precedente osservazione può ritenersi un punto a sfavore nel caso in cui prendessimo in considerazione un server tradizionale.

Tornando al progetto

Restreamer funziona grazie al famoso protocollo RTMP (Real Time Messaging Protocol) e permette lo streaming, in diretta o registrati, di flussi video con la possibilità di avere più destinazioni con una comoda interfaccia web in grado di essere semplice, ma al tempo stesso completa. Utilizzando Docker possiamo avere due approcci principali:

  • Il primo
 docker run -d --restart=always --name restreamer \ 
    -p 8080:8080 -p 8181:8181 -p 1935:1935 --privileged \ 
    datarhei/restreamer:latest

In questo caso si avvia direttamente il software con la configurazione predefinita ed è possibile accedere tramite interfaccia web si da subito. Vedremo successivamente come. Una volta avviato il container docker è possibile fare delle modifiche, non tutto resta immutato. Possiamo modificare il comando visto sopra configurando le porte oppure aggiungendo nuovi parametri come le variabili ambientali. Rieseguendo il comando il container verrà riavviato in tempi brevi con le modifiche apportate.

  • Il secondo

È stato necessario specificare un file docker-compose.yaml in una cartella a mia scelta per specificare ciò che è presente nel comando che abbiamo visto. Inoltre nel file YAML è possibile specificare più di un container Docker, salvare la propria configurazione per favorire una migliore migrazione in futuro o aggiungere delle configurazioni più approfondinte specificando variabili d’ambiente. La flessibilità dei file YAML è enorme. Condivido tramite link il docker compose direttamente dal GitHub Datarhei.

In entrambi i casi quando il software è pronto bisogna accedere alla pagina di amministrazione di Restreamer bisogna andare all’indirizzo assegnato della macchina virtuale https://ipaddress:8181 oppure http://ipaddress:8080 e digitare admin e password di default specificati nella documentazione.

Image