All checks were successful
Container Build / build-image (push) Successful in 47s
162 lines
5.8 KiB
Markdown
162 lines
5.8 KiB
Markdown
---
|
|
title: Videoconferenza con jitsi-meet e docker
|
|
author: paspo
|
|
type: post
|
|
date: 2020-03-13T23:41:14+00:00
|
|
excerpt: Come creare un servizio di videoconferenza con jitsi-meet e docker
|
|
url: /2020/03/14/jitsi-docker/
|
|
categories:
|
|
- Documentazione
|
|
- In evidenza
|
|
- Software
|
|
---
|
|
|
|
In questo periodo in cui la pandemia globale di COVID-19 ci ricorda quanto siamo fragili, le Persone riescono comunque a sorprenderci per la loro solidarietà: si moltiplicano infatti iniziative come
|
|
[questa](https://solidarietadigitale.agid.gov.it/), in cui grandi aziende offrono gratuitamente alcuni servizi per semplificare la vita a chi sia obbligato a restare a casa.
|
|
|
|
Possiamo cogliere quest'occasione per rispondere alla crescente domanda di servizi di video conferenza online: in questa lista, infatti, ci sono anche aziende che offrono virtual machines idonee allo scopo.
|
|
|
|
Vediamo come configurare una virtual machine appena creata per avere un servizio di videoconferenza personalizzato, gratuito e open-source, grazie a
|
|
[jitsi](https://jitsi.org/).
|
|
|
|
## Requisiti
|
|
|
|
* Una virtual machine linux, raggiungibile da internet, con accesso di root. In questo caso verrà considerata una VM basata su debian/ubuntu.
|
|
* (opzionale ma fortemente raccomandato) un record DNS che punti all'indirizzo IP di questa virtual machine. Esempio: jitsi.miodominio.com
|
|
|
|
## Installazione
|
|
|
|
Prima di tutto bisogna accedere alla nostra virtual machine. A seconda del fornitore, potremmo avere accesso direttamente con l'utente root o con un utente diverso, ma con privilegi amministrativi.
|
|
Nel primo caso, accediamo con:
|
|
```sh
|
|
ssh root@123.456.789.123
|
|
```
|
|
|
|
Dove con "123.456.789.123" si intende l'indirizzo IP della virtual machine.
|
|
Nel secondo caso, dopo esserci loggati, apriamo una shell di root, in modo da semplificare il resto del tutorial:
|
|
|
|
```sh
|
|
ssh utente@123.456.789.123
|
|
$ sudo -i
|
|
[sudo] password di utente:
|
|
#
|
|
```
|
|
|
|
Il comando "sudo -i" permette agli utenti abilitati di ottenere una shell di root, dopo aver inserito la propria password.
|
|
|
|
## Installare docker
|
|
|
|
Fare riferimento a [questo link](https://docs.docker.com/install/) per istruzioni dettagliate su come installare docker. Qui di seguito sono riportate le istruzioni per l'installazione su Debian.
|
|
|
|
```sh
|
|
# apt-get install \
|
|
apt-transport-https \
|
|
ca-certificates \
|
|
curl \
|
|
gnupg2 \
|
|
software-properties-common
|
|
# curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
|
|
# add-apt-repository \
|
|
"deb [arch=amd64] https://download.docker.com/linux/debian \
|
|
$(lsb_release -cs) \
|
|
stable"
|
|
# apt-get update
|
|
# apt-get install docker-ce docker-ce-cli containerd.io
|
|
```
|
|
|
|
## Installare docker-compose
|
|
|
|
Anche in questo caso, c'è una guida più esauriente sul [sito ufficiale](https://docs.docker.com/compose/install/).
|
|
|
|
```sh
|
|
# curl -L "https://github.com/docker/compose/releases/download/1.25.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
|
|
# chmod +x /usr/local/bin/docker-compose
|
|
```
|
|
|
|
## Installazione
|
|
|
|
Prima di tutto, ci serve git:
|
|
|
|
```sh
|
|
# apt install git
|
|
```
|
|
|
|
Ora possiamo clonare il repository sul nostro server:
|
|
|
|
```sh
|
|
# git clone https://github.com/jitsi/docker-jitsi-meet.git /srv/jitsi
|
|
```
|
|
|
|
Otteniamo la configurazione di default:
|
|
|
|
```sh
|
|
# cp /srv/jitzi/env.example /srv/jitsi/.env
|
|
```
|
|
|
|
Prima di ritoccare la configurazione, se vogliamo utilizzare Let'sEncrypt, dobbiamo fare una verifica: controlliamo che il nostro record DNS punti effettivamente all'indirizzo IP della virtual machine.
|
|
|
|
```sh
|
|
# host jitsi.miodominio.com
|
|
jitsi.miodominio.com has address 123.456.789.123
|
|
# ip a
|
|
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
|
|
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
|
|
inet 127.0.0.1/8 scope host lo
|
|
valid_lft forever preferred_lft forever
|
|
inet6 ::1/128 scope host
|
|
valid_lft forever preferred_lft forever
|
|
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
|
|
link/ether 08:00:27:bb:8b:fc brd ff:ff:ff:ff:ff:ff
|
|
inet 123.456.789.123/24 brd 123.456.789.255 scope global dynamic enp0s3
|
|
valid_lft 85711sec preferred_lft 85711sec
|
|
inet6 fe80::a00:27ff:febb:8bfc/64 scope link
|
|
valid_lft forever preferred_lft forever
|
|
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
|
|
link/ether 02:42:54:b7:8b:7a brd ff:ff:ff:ff:ff:ff
|
|
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
|
|
valid_lft forever preferred_lft forever
|
|
```
|
|
|
|
Ovviamente i dati qui sopra sono solo un esempio, ma dovrebbero bastare a rendere l'idea: il primo comando ci dice come "risolve" jitsi.miodominio.com, mentre il secondo elenca gli indirizzi IP di tutte le interfacce di rete. Gli indirizzi IP devono coincidere.
|
|
Ora passiamo a ritoccare il file di configurazione (potete usare l'editor che preferite, ovviamente):
|
|
|
|
```sh
|
|
# nano /srv/jitsi/.env
|
|
```
|
|
|
|
Modificate in questo modo se NON UTILIZZATE Let's Encrypt:
|
|
|
|
```env
|
|
HTTP_PORT=80
|
|
HTTPS_PORT=443
|
|
TZ=Europe/Rome
|
|
PUBLIC_URL="https://123.456.789.123"
|
|
DOCKER_HOST_ADDRESS=123.456.789.123
|
|
ENABLE_HTTP_REDIRECT=1
|
|
```
|
|
|
|
Viceversa, se UTILIZZATE Let's Encrypt:
|
|
|
|
```env
|
|
HTTP_PORT=80
|
|
HTTPS_PORT=443
|
|
TZ=Europe/Rome
|
|
PUBLIC_URL="https://jitsi.miodominio.com"
|
|
DOCKER_HOST_ADDRESS=123.456.789.123
|
|
ENABLE_LETSENCRYPT=1
|
|
LETSENCRYPT_DOMAIN=jitsi.miodominio.com
|
|
LETSENCRYPT_EMAIL=email@miodominio.com
|
|
ENABLE_HTTP_REDIRECT=1
|
|
```
|
|
|
|
Chiaramente l'email indicata deve essere un'email valida.
|
|
|
|
Ora possiamo far partire il servizio:
|
|
|
|
```sh
|
|
# cd /srv/jitsi ; docker-compose up -d
|
|
```
|
|
|
|
Il servizio sarà raggiungibile all'URL "https://123.456.789.123" con un certificato autofirmato; se invece avete abilitato Let's Encrypt, sarà raggiungibile all'URL "https://jitsi.miodominio.com".
|
|
Da qui potete creare quante "stanze" volete, senza bisogno di nessun account: basta inoltrare il link ai destinatari.
|