È inevitabile, specie in questo periodo, che ci si trovi a dover vivere la vita d’ufficio in videoconferenza. Chi lavora con un computer questi sono tempi duri; le nostre vite dovevano essere più semplici e credo che così non è.
Ma ora siamo dentro alla spirale del lavoro in smartworking (quanto fa fico dirlo ultimamente?) che però è spesso poco smart (intelligente) ma molto working.
Ed ecco che risbucano dalla tomba Google Hangouts (sinceramente pensavo avesse chiuso, come da tradizione Google) e soprattutto Zoom. Mi aspetttavo anche la ribalta di Skype, invece ci ho fatto un solo meeting fino ad oggi (contro una ventina su Google e una cinquantina su Google).
[TITOLO]La dura legge del Closed Source[/TITOLO]
Sposare il Closed-Source è un atto di fede che si fa con la Software House. Non si conosce il motore all’interno del programma, sappiamo solo che funziona e basta.
Con l’Open-Source la fiducia fra sviluppatori e utenti è reciproca. Non c’è bisogno di essere programmatori, né tantomeno di leggere il codice sorgente per sapere che fine fanno i vostri dati, però confidiamo che la Community della rete lo abbia spolpato per benino, e che alcune anime pie abbiano contribuito a renderlo un programma migliore.
[TITOLO]Il caso Zoom-Gate[/TITOLO]
Il recente caso di breach ai danni di Zoom, con un furto di circa 500.000 account in vendita a 0.002$/login, ha fatto traballare i tavoli di diversi utenti “smart”. Alcuni sono scappati a gambe levate, altri — come sempre — non hanno mai niente da nascondere.
Non che il resto dei software sia inviolabile — come non lo è nessun software — ma la sua struttura decentralizzata ci consente di avere una sicurezza relativamente maggiore rispetto ad un unico endpoint.
Inoltre, i sistemi che vediamo oggi sono esenti da ogni registrazione (su Jitsi ci si può registrare via app per una più pratica gestione), consentendo una più difficile associazione dei dati.
[TITOLO]Io Resto a Casa… .work[/TITOLO]
Ecco che mentre navigo sul web mi capita di imbattermi in iorestoacasa.work, un aggregatore di canali basati su Jitsi/Multiparty Meeting. Prima di addentrarci in virtuosismi tecnici cerchiamo di capire cos’è.
Il progetto iorestoacasa.work fornisce, a chi ne ha bisogno, un canale in cui poter avviare una stanza virtuale in cui è possibile comunicare via video e chat, esattamente come fanno Google Hangouts o Zoom.
Le stanze vengono ospitate da aziende terze, le quali forniscono i server su cui si appoggiano gli utenti. Le aziende forniscono questi server, in cambio di una visibilità
È possibile scegliere tra un server Multiparty Meeting (in blu) e/o Jitsi (in fucsia). Nel riquadro rosso lo sponsor.
[TITOLO]Jitsi o Multiparty Meeting[/TITOLO]
La scelta di uno o l’altro dipende fondamentalmente da come si intende gestire la conversazione:
Test video di Multiparty Meeting
Test video di Jitsi
Complessivamente, alla fine ho scelto Jitsi per le mie attività di conference-call. Oltretutto da app offre la pratica funzione (come Hangouts e Zoom) di condividere un link di una stanza ad un evento in calendario.
Jitsi — da app smartphone — permette anche di organizzare call e di condividerle in calendario!
E ora va, il mondo delle conference-call (sicure) ti aspetta!
Se invece vuoi crearti il tuo server Multiparty Meeting/Jitsi, continua la lettura
[TITOLO]Ti vuoi creare un server?[/TITOLO]
Bene bene, eccoci nella parte più tecnico/laboriosa, quella pensata per chi è privacy-paranoico e vuole un serverino tutto per sé! Puoi anche decidere di condividerlo su iorestoacasa.work: a tal proposito ti consiglio di visitare il sito ufficiale per ulteriori informazioni.
Se vuoi solo videochattare con i tuoi amici/collaboratori ti ricordo che potrai avvalerti di iorestoacasa.work o dei server ufficiali messi a disposizione da Multiparty Meeting (https://letsmeet.no) o da Jitsi (https://meet.jit.si).
Innanzitutto dovrai procurarti un server con queste caratteristiche:
Di seguito vediamo come installare Multiparty Meeting e Jitsi. In caso di problemi, fai sempre riferimento alle sorgenti linkate degli How-To.
Giusto un paio di termini:
Prendi sempre come riferimento il repository ufficiale Github (per la versione stand-alone); se vuoi contribuire al progetto iorestoacasa.work, il repository è qui.
[SOTTOTITOLO]Metodo automatico (Docker/IRAC)[/SOTTOTITOLO]
Questa è la procedura ufficiale del team di iorestoacasa.work. Se avete bisogno e volete contribuire potete collegarvi al canale Telegram ufficiale. NB: non si fa supporto (credo) a server Vanilla ma solo quelli che vogliono contribuire!
[SOTTOTITOLO]Metodo automatico (Docker/Vanilla)[/SOTTOTITOLO]
La procedura è molto simile a quella vista in precedenza. Cambiano alcuni valori, che puoi trovare insieme all’immagine docker, a questo link.
[SOTTOTITOLO]Metodo automatico (Ansible/Vanilla)[/SOTTOTITOLO]
Questa è probabilmente la procedura più semplice di tutte ma è limitata solo per distribuzioni basate su Debian/Ubuntu. È necessario l’uso di ansible, un modulo presente in pip3. La procedura è facilmente descritta in questo meraviglioso asciicinema. Buona visione!
[SOTTOTITOLO]Metodo manuale (Vanilla)[/SOTTOTITOLO]
Se vuoi procedere all’installazione manuale, senza contribuire a IoRestoACasa.work, dovrai seguire questa procedura step-by-step.
Questa procedura potrebbe cambiare da un momento all’altro (causa cambio versione) ma gli step sono pressappoco quelli che vedrai. Puoi usarli come reference in qualunque momento.
[TITOLO]Installare Jitsi Server[/TITOLO]
[SOTTOTITOLO]Metodo automatico (Docker/IRAC)[/SOTTOTITOLO]
Installare Jitsi da condividere con IRAC è molto simile alla procedura di MM.
[SOTTOTITOLO]Metodo manuale (Vanilla)[/SOTTOTITOLO]
Inoltre, vorresti poter installare Jigasi, il gateway server. Per farlo ti basterà lanciare:
oppure
[TITOLO]Extra: installare Docker su Ubuntu Server[/TITOLO]
La procedura per installare i due pacchetti è abbastanza semplice. Vediamo come fare, step-by-step.
La procedura di installazione di Docker Compose è molto semplice. Per prima cosa scarichiamo il pacchetto:
quindi assegniamo i permessi di esecuzione:
infine, eseguiamo lo script:
Puoi verificarne l’esecuzione lanciando:
Ma ora siamo dentro alla spirale del lavoro in smartworking (quanto fa fico dirlo ultimamente?) che però è spesso poco smart (intelligente) ma molto working.
Ed ecco che risbucano dalla tomba Google Hangouts (sinceramente pensavo avesse chiuso, come da tradizione Google) e soprattutto Zoom. Mi aspetttavo anche la ribalta di Skype, invece ci ho fatto un solo meeting fino ad oggi (contro una ventina su Google e una cinquantina su Google).
[TITOLO]La dura legge del Closed Source[/TITOLO]
Sposare il Closed-Source è un atto di fede che si fa con la Software House. Non si conosce il motore all’interno del programma, sappiamo solo che funziona e basta.
Con l’Open-Source la fiducia fra sviluppatori e utenti è reciproca. Non c’è bisogno di essere programmatori, né tantomeno di leggere il codice sorgente per sapere che fine fanno i vostri dati, però confidiamo che la Community della rete lo abbia spolpato per benino, e che alcune anime pie abbiano contribuito a renderlo un programma migliore.
[TITOLO]Il caso Zoom-Gate[/TITOLO]
Il recente caso di breach ai danni di Zoom, con un furto di circa 500.000 account in vendita a 0.002$/login, ha fatto traballare i tavoli di diversi utenti “smart”. Alcuni sono scappati a gambe levate, altri — come sempre — non hanno mai niente da nascondere.
Non che il resto dei software sia inviolabile — come non lo è nessun software — ma la sua struttura decentralizzata ci consente di avere una sicurezza relativamente maggiore rispetto ad un unico endpoint.
Inoltre, i sistemi che vediamo oggi sono esenti da ogni registrazione (su Jitsi ci si può registrare via app per una più pratica gestione), consentendo una più difficile associazione dei dati.
[TITOLO]Io Resto a Casa… .work[/TITOLO]
Ecco che mentre navigo sul web mi capita di imbattermi in iorestoacasa.work, un aggregatore di canali basati su Jitsi/Multiparty Meeting. Prima di addentrarci in virtuosismi tecnici cerchiamo di capire cos’è.
Il progetto iorestoacasa.work fornisce, a chi ne ha bisogno, un canale in cui poter avviare una stanza virtuale in cui è possibile comunicare via video e chat, esattamente come fanno Google Hangouts o Zoom.
Le stanze vengono ospitate da aziende terze, le quali forniscono i server su cui si appoggiano gli utenti. Le aziende forniscono questi server, in cambio di una visibilità

È possibile scegliere tra un server Multiparty Meeting (in blu) e/o Jitsi (in fucsia). Nel riquadro rosso lo sponsor.
[TITOLO]Jitsi o Multiparty Meeting[/TITOLO]
La scelta di uno o l’altro dipende fondamentalmente da come si intende gestire la conversazione:
- Multiparty Meeting: è interamente basato sul protocollo WebRTC. Questo permette di collegarsi ad una live-chat usando solo un browser. Ha meno funzioni di Jitsi, ed una qualità (video) leggermente peggiore, ma è più stabile per chi ha una connessione lenta.
- Jitsi: è possibile utilizzarlo sia tramite WebRTC (browser) che tramite App (da smartphone). Rispetto a MM ha più funzioni (come la gestione di moderazione o l’alzata di mano) ed è relativamente migliore, ma è meno indicata per chi ha una connessione lenta. *Al momento Safari e altri browser non-Webkit non sono supportati.
- Per poche persone: se è una call tra amici probabilmente Multiparty fa al caso vostro. Quando tutti saranno connessi, consiglio di bloccare l’accesso (per evitare l’ingresso di cazzeggiatori). È consentita una chat e lo share screen.
- Per tante persone e conferenze di lavoro: Jitsi integra tutto ciò che ha Multiparty Meeting, in più permette di assegnare una password al canale, di alzare la mano, di mutare altri utenti e così via.

Test video di Multiparty Meeting

Test video di Jitsi
Complessivamente, alla fine ho scelto Jitsi per le mie attività di conference-call. Oltretutto da app offre la pratica funzione (come Hangouts e Zoom) di condividere un link di una stanza ad un evento in calendario.

Jitsi — da app smartphone — permette anche di organizzare call e di condividerle in calendario!
E ora va, il mondo delle conference-call (sicure) ti aspetta!
Se invece vuoi crearti il tuo server Multiparty Meeting/Jitsi, continua la lettura

[TITOLO]Ti vuoi creare un server?[/TITOLO]
Bene bene, eccoci nella parte più tecnico/laboriosa, quella pensata per chi è privacy-paranoico e vuole un serverino tutto per sé! Puoi anche decidere di condividerlo su iorestoacasa.work: a tal proposito ti consiglio di visitare il sito ufficiale per ulteriori informazioni.
Se vuoi solo videochattare con i tuoi amici/collaboratori ti ricordo che potrai avvalerti di iorestoacasa.work o dei server ufficiali messi a disposizione da Multiparty Meeting (https://letsmeet.no) o da Jitsi (https://meet.jit.si).
Innanzitutto dovrai procurarti un server con queste caratteristiche:
- Una macchina dedicata allo scopo, non condivisa con altri servizi (http, posta etc…)
- IPv4 statico, se possibile in Italia
- Connessione 100 Mbps simmetrica, consigliata 1Gbps (4Mbps/utente)
- 4 CPU server grade (Xeon o analogo)
- 4GB RAM
Nota: nella nostra guida useremo Ubuntu Server 19.04. Sentiti libero di usare altre distribuzioni, purché tu ne abbia le competenze per amministrarle!
Nota 2: se stai creando un server privato (quindi non collegato ai repository di iorestoacasa.work) probabilmente la macchina dedicata potrà essere molto meno performante. Anche una VPS da pochi €/mese potrà essere adeguata. Fai le dovute prove e se vuoi fammi sapere com’è andata![]()
[TITOLO]Cosa e come installare[/TITOLO]Idea: sai che potresti creare un server aziendale interno, dove i vari reparti potrebbero collegarsi, passando direttamente dalla rete locale? In questo caso, addio sale riunioni! O, se siete una famiglia numerosa, anche in casa!![]()
Di seguito vediamo come installare Multiparty Meeting e Jitsi. In caso di problemi, fai sempre riferimento alle sorgenti linkate degli How-To.
Giusto un paio di termini:
- IRAC: si fa riferimento al repository “IoRestoACasa.work”. Se si vuole contribuire al progetto, segui questo percorso.
- Vanilla: si fa riferimento all’installazione dei servizi, senza influenze esterne. Se si vuole un server privato, segui questo percorso.
- Docker: ci si riferisce ai contenitori docker. Questi solitamente sono più semplici da utilizzare e hanno al loro interno tutto il necessario per funzionare, con poche configurazioni da fare.
Prendi sempre come riferimento il repository ufficiale Github (per la versione stand-alone); se vuoi contribuire al progetto iorestoacasa.work, il repository è qui.
[SOTTOTITOLO]Metodo automatico (Docker/IRAC)[/SOTTOTITOLO]
Questa è la procedura ufficiale del team di iorestoacasa.work. Se avete bisogno e volete contribuire potete collegarvi al canale Telegram ufficiale. NB: non si fa supporto (credo) a server Vanilla ma solo quelli che vogliono contribuire!
- Per prima cosa sarà necessario installare docker e docker-compose. Puoi cliccare sui link oppure scendere in fondo a questa pagina e seguire gli “extra” consigliati. A te la scelta.
- Seguirà l’installazione di git con il comando:
$ sudo apt install git
- Avrai bisogno di un certificato SSL valido; puoi utilizzare Let’s Encrypt, così da ottenerne gratuitamente uno. Puoi anche usare certbot per ottenerne uno:
$ sudo apt install certbot $ sudo certbot certonly -d nomedominio.com --standalone
- Clona il repository e accedi alla cartella:
$ cd /opt $ git clone https://github.com/iorestoacasa-work/mm.git $ cd mm
- Copia il certificato:
$ cp /etc/letsencrypt/live/TUODOMINIO/fullchain.pem certs/ $ cp /etc/letsencrypt/live/TUODOMINIO/privkey.pem certs/
- Modifica i file di configurazione, prendendo la struttura dagli esempi. I tre file dovranno essere modificati; i parametri saranno quelli con il valore CHANGEME.
$ cp coturn.example.conf coturn.conf $ cp configs/app/config.example.js configs/app/config.js $ cp configs/server/config.example.js configs/server/config.js
- Avvia il container:
$ docker-compose up -d
- Puoi verificare che il server sia online visitando http://hostname.scelto.it:8081/metrics
[SOTTOTITOLO]Metodo automatico (Docker/Vanilla)[/SOTTOTITOLO]
La procedura è molto simile a quella vista in precedenza. Cambiano alcuni valori, che puoi trovare insieme all’immagine docker, a questo link.
[SOTTOTITOLO]Metodo automatico (Ansible/Vanilla)[/SOTTOTITOLO]
Questa è probabilmente la procedura più semplice di tutte ma è limitata solo per distribuzioni basate su Debian/Ubuntu. È necessario l’uso di ansible, un modulo presente in pip3. La procedura è facilmente descritta in questo meraviglioso asciicinema. Buona visione!
[SOTTOTITOLO]Metodo manuale (Vanilla)[/SOTTOTITOLO]
Se vuoi procedere all’installazione manuale, senza contribuire a IoRestoACasa.work, dovrai seguire questa procedura step-by-step.
Questa procedura potrebbe cambiare da un momento all’altro (causa cambio versione) ma gli step sono pressappoco quelli che vedrai. Puoi usarli come reference in qualunque momento.
- Installa nodejs in versione v10.*. Le istruzioni per ogni tipo di distribuzione sono linkate qui.
- Installa il software necessario:
$ sudo apt install npm build-essential redis
- Clona il progetto dal repository git:
$ git clone [URL]https://github.com/havfo/multiparty-meeting.git[/URL] $ cd multiparty-meeting
- Rinomina la configurazione del server d’esempio con quella che userai:
$ cp server/config/config.example.js server/config/config.js
- Fai la stessa cosa, stavolta per la configurazione dell’app:
$ cp app/public/config/config.example.js app/public/config/config.js
- I due file config.js andranno configurati, riempiendo i campi richiesti (porte in ascolto, tipi di login, certificato TLS valido e così via).
- Avvia il browser app:
$ cd app $ npm install $ npm run build
tutti i file lato client saranno salvati in server/public. - Avvia il server:
$ cd .. $ cd server $ npm install
- Procedi al test in locale. È consigliabile non avviarlo da root:
$ cd server $ npm start
- Testa il servizio collegandoti all’indirizzo https://ip-o-dominio:3443/roomname.
- Se tutto funziona stoppa il servizio, quindi copia i file .service nella location di systemd, così da averlo sempre a portata di mano.
$ cp multiparty-meeting.service /etc/systemd/system/ $ edit /etc/systemd/system/multiparty-meeting.service
- Riavvia il systemd e avvia il servizio:
$ systemctl daemon-reload $ systemctl start multiparty-meeting
- Per abilitare il servizio in start-up mode con il server, abilitalo con:
$ systemctl enable multiparty-meeting
$ nano app/public/config/config.js
[TITOLO]Installare Jitsi Server[/TITOLO]
[SOTTOTITOLO]Metodo automatico (Docker/IRAC)[/SOTTOTITOLO]
Installare Jitsi da condividere con IRAC è molto simile alla procedura di MM.
- Preinstalla docker e docker-compose. Puoi usare i link che ti ho citato oppure scorri in fondo alla pagina e leggi gli extra, lì troverai le guide
- Installa GIT:
$ sudo apt install git
- Clona i repository e accedi alla cartella:
$ cd /opt $ git clone https://github.com/iorestoacasa-work/docker-jitsi-meet.git $ cd docker-jitsi-meet
- Genera il file di configurazione, prendendo la struttura dall’esempio e modificane i primi 8 valori:
$ cp env.example .env
- Genera la password di sicurezza tramite lo script:
$ ./gen-passwords.sh
- Avvia il docker:
$ docker-compose up -d
- Puoi verificare il funzionamento del server navigandolo su https://IPODOMINIO:8081
[SOTTOTITOLO]Metodo manuale (Vanilla)[/SOTTOTITOLO]
- Se stai usando Ubuntu, per prima cosa abilita i repository universe da cui prenderemo le dipendenze richieste:
$ sudo apt-add-repository universe
- Se vuoi che la macchina venga risolta tramite un FQDN (es. meet.example.org) per prima cosa assicurati che in /etc/hostname sia presente. A questo punto aggiungi l’hostname nel file /etc/hosts secondo questa sintassi:
127.0.0.1 localhost meet.example.org
- Aggiungi i repository di Jitsi alla tua distribuzione:
$ echo ‘deb [URL]https://download.jitsi.org[/URL] stable/’ >> /etc/apt/sources.list.d/jitsi-stable.list $ wget -qO — [URL]https://download.jitsi.org/jitsi-key.gpg.key[/URL] | sudo apt-key add -
- Assicurati che le porte del Firewall siano aperte, in particolare:
- 80 TCP
- 443 TCP
- 10000 UDP - L’autoinstaller verificherà la presenza di Nginx o Apache. Se uno di questi non fosse disponibile, verrà installato Nginx. Tienilo a mente qualora volessi installare Apache. Detto ciò, installiamo rispettivamente il supporto ai repository HTTPS, effettuiamo un update dei repo e avviamo l’installazione del server:
$ apt-get install apt-transport-https $ apt-get update $ apt-get -y install jitsi-meet
- Ti verrà chiesto come configurare l’host. In particolare, assicurati di indicare lo stesso FQDN indicato sul punto 2 (in caso contrario, puoi sempre usare l’IP della macchina).
- Genera il certificato TLS:
/usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh
Inoltre, vorresti poter installare Jigasi, il gateway server. Per farlo ti basterà lanciare:
$ sudo apt-get -y install jigasi
oppure
$ wget [URL]https://download.jitsi.org/unstable/jigasi_1.0-107_amd64.deb[/URL]
$ dpkg -i jigasi_1.0–107_amd64.deb
[TITOLO]Extra: installare Docker su Ubuntu Server[/TITOLO]
La procedura per installare i due pacchetti è abbastanza semplice. Vediamo come fare, step-by-step.
- Aggiorniamo la lista dei repository:
$ sudo apt -y update
- Installiamo le dipendenze:
$ sudo apt -y install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
- Se presenti vecchie versioni, eliminiamole:
$ sudo apt remove docker docker-engine docker.io containerd runc
- Importiamo la chiave GPG del repository Docker:
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
- Aggiungi Docker CE ai repository:
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
- Installa Docker:
$ sudo apt update && sudo apt -y install docker-ce docker-ce-cli containerd.io
- Aggiungi il tuo utente al gruppo docker:
$ sudo usermod -aG docker $USER $ newgrp docker
- Puoi verificare la presenza di docker lanciando:
$ docker version
La procedura di installazione di Docker Compose è molto semplice. Per prima cosa scarichiamo il pacchetto:
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.25.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
quindi assegniamo i permessi di esecuzione:
$ sudo chmod +x /usr/local/bin/docker-compose
infine, eseguiamo lo script:
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
Puoi verificarne l’esecuzione lanciando:
$ docker-compose --version