Videoconferenza

VideoConferenza

Ci sono molti programmi di videoconferenza ma nessuno di quelli che ho provato mi ha davvero soddisfatto, quindi come sempre ho cercato nei meandri dell’opensource.
Cercavo il modo di poter assistere ad una lezione di Danese senza muovermi da casa, vista la pandemia covid19, che fosse multiutente, che fosse multi piattaforma, che avesse un client semplice e soprattutto che fosse leggero.
“Smucinando” nel web mi sono imbattuto in un bellissimo progetto, iorestoacasa.work quindi mi son documentato ed ho montato il mio server privato.
Nonostante l’idea sia davvero fantastica, il progetto è riservato ad un provider di servizi internet o comunque ad un’azienda medio grande, infatti prevede l’utilizzo di indirizzi ip pubblici ed esclusivamente assegnati al server che esegue il progetto. Quindi mi son chiesto: c’è la possibilità di montare il tutto su una configurazione più modesta ?
La maggior parte degli utenti ha una connessione, anche se performante, modesta, con un solo indirizzo ip e in molti casi dinamico. Quindi escludiamo costoro? mi son detto !
Giammai, eccomi qui a montare lo stesso progetto, con gli stessi software, in maniera creativa 🙂
Per giungere a questo risultato ho fatto molteplici prove e dovuto leggere molta documentazione, essendo la Devuan una distribuzione relativamente giovane, avrei incontrato non poche difficoltà, per ridurre i tempi, mi son tappato il naso per non sentire il tanfo emanato da systemd ed ho installato una …. 🙁 …. una …. 🙁 sig …. sig …. debian buster.
Lo so, ho commesso un sacrilegio ma rimedierò molto presto, PAROLA DI MARINAIO !

Pronti a montare il nostro nuovo server di videoconferenza?

Cominciamo !
Terminata l’installazione del sistema operativo malato di cancro, installiamo subito il software di contorno, quindi giù di APT.
# apt install -y vim
Io uso vi come editor di testo, quindi abilitiamo immediatamente il copy/past su vim
# cat <EOF >.vimrc
set mouse-=a
colo desert
syntax on
EOF
#
A questo punto andiamo ad editare il source.list per rimuovere la direttiva del cd
# vi /etc/apt/sources.list
e commentiamo con un # la riga seguente
deb cdrom:[Debian GNU/Linux 10.2.0 _Buster_ – Official amd64 DVD Binary-1 20191116-09:57]/ buster contrib main
salviamo e usciamo, quindi facciamo rileggere la configurazione e aggiorniamo eventuali pacchetti.
# apt update && apt -y full-upgrade
Adesso iniziamo la vera e propria mission, iniziamo ad installare il nostro server di videoconferenza. Approposito, non ho ancora detto che userò jitsi come software di videoconferenza ma sono ancora in tempo per dirlo:

Come software di video conferenza useremo jitsi-meet

Rintracciabile nella sua pagina ufficiale jitsi.org.
Come prima cosa dobbiamo installare gnupg visto che non si capisce per quale motivo gli scienziati di debian non lo hanno incluso nel software base, quindi con le lacrime agli occhi (per non aver installato Devuan), diamo il famiderato comando:
# apt install -y gnupg

GRANDEEEEEE !!!

scarichiamo ora la chiave che ci permetterà di aggiungere il repository
# wget https://download.jitsi.org/jitsi-key.gpg.key
Non sempre funziona, qualora non funzionasse o fosse particolarmente lento possiamo usare http al posto di https.
Scaricata la chiave dobbiamo addarla
# cat jitsi-key.gpg.key |apt-key add –
quindi aggiungiamo il repository.
# sh -c “echo ‘deb https://download.jitsi.org stable/’ > /etc/apt/sources.list.d/jitsi-stable.list”
e facciamo rileggere la configurazione
# apt update

Da questo momento è quasi tutta discesa

Modifichiamo il file hosts con il nome di dominio che abbiamo intenzione di adoprere, se non ne possediamo uno, recandoci sul sito ufficiale del progetto, possiamo chiedere agli admin di assegnarci un nome a dominio, come specificato nella guida ufficiale. Ricordo che io sto adattando la guida di iorestoacasa, non la guida del software di videoconferenza jitsi, anche se poi in entrambe i casi usiamo sempre jitsi-meet.
# sed -i ‘s/^127.0.0.1.*$/127.0.0.1 localhost NOMEDITERZOLIVELLO.iorestoacasa.work NOMEDITERZOLIVELLO/g’ /etc/hosts
Il NOMEDITERZOLIVELLO è il nome che abbiamo assegnato alla nostra macchina.
# apt update && apt upgrade
Per essere sicuri di avere tutto aggiornato, quindi proseguiamo

Installiamo nginx

# apt install -y nginx
Quindi lo facciamo partire:
# systemctl start nginx.service
Fin quì abbiamo installato nginx ma non lo abbiamo reso autopartente, quindi diamo il comando
# systemctl enable nginx.service
Giunti fin quì non mi pare difficoltoso, andiamo ad installare il cuore pulsante, la linfa vitale, il pacchetto più importante, il vero server di videoconferenza.

Installiamo jitsi-meet

# apt install -y jitsi-meet
Durante l’installazione ci chiederà di inserire il nome del server, dobbiamo inserire il FQDN, ovvero il nome preciso del nostro server.
ES.
pincopallinoserver.iorestoacasa.work

ATTENZIONE !!!

sbagliare questo nome, compromette l’intera installazione.

Quindi applichiamo il LOGO
# rm /usr/share/jitsi-meet/images/watermark.png
# wget http://www.dibrigida.it/wp-content/uploads/2020/04/watermark.png -O /usr/share/jitsi-meet/images/watermark.png

Scopriamo il nostro IP Pubblico

per far funzionare il sistema di videoconferenza dobbiamo conoscere il nostro ip pubblico, ma niente paura, due colpi di sciabola e lo sistemiamo.
Con questo semplice comando possiamo sapere il nostro ip pubblico:
# WANIP=”$(dig +short myip.opendns.com @resolver1.opendns.com)” && echo $WANIP

Istruiamo il sistema a comunicare l’ip pubblico al posto di quello privato

# sed -i “1 i org.ice4j.ice.harvest.NAT_HARVESTER_PUBLIC_ADDRESS=IPPUBBLICO” /etc/jitsi/videobridge/sip-communicator.properties
# sed -i “1 i org.ice4j.ice.harvest.NAT_HARVESTER_LOCAL_ADDRESS=IPPRIVATO” /etc/jitsi/videobridge/sip-communicator.properties
Dopo aver fatto questo ultimo passaggio pratichiamo un sano ed onesto reboot per verificare che tutti i servizi partano al riavvio.
# reboot
Forwardiamo le porte del router verso l’ip del nostro server, se non vogliamo forwardare tutto, dobbiamo aprire almeno:
80,443,8081,4443 TCP e 10000 UDP
Connettiamoci al nostro server passando dal ip pubblico e facciamo una prova:
https://pincopallinoserver.iorestoacasa.work
chiaramente otterremo un errore di certificato, infatti il certificato è self-signed, ma niente paura, quando siamo sicuri che tutto funziona ecco in arrivo il nostro super eroe Let’s Encrypt

Otteniamo i certificati

Dopo aver comunicato la presenza del server, dopo aver installato le statistiche, questa è la guida per le stats, dopo aver fatto tutto, possiamo richiedere il nostro certificato gratuito con il comando
# /usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh
A questo punto è tutto funzionante.

In caso di IP dinamico è necessario fare uno scriptino che lanciato ogni minuto controlla il vecchio ip e lo confronta con l’attuale, in caso di variazione, aggiorna il file contenente l’IP pubblico.
In caso di IP dinamico è necessario anche un DnsDinamico, in questo mio precedente articolo mostro come fare.

Adesso possediamo gli strumenti per poter rimanere a casa 🙂


Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.