Spreed è un server per chiamate e conferenze audio/video WebRTC open source gratuito (AGPL) progettato pensando alla privacy. WebRTC è una tecnologia gratuita e aperta che consente ai browser di comunicare tra loro in modalità peer-to-peer. Il server Spreed WebRTC utilizza la crittografia end-to-end per proteggere la privacy e la sicurezza degli utenti.
Spreed WebRTC ti consente di fare le seguenti cose.
- Chat audio, video e di testo protetti
- Conferenze Web
- Chat video one to one
Questo tutorial ti mostrerà come installare il server Spreed WebRTC su Ubuntu 16.04 VPS o server dedicato.
Passaggio 1:installa il server Spreed WebRTC su Ubuntu 16.04 dal PPA ufficiale
Possiamo facilmente installare il server Spreed WebRTC dal PPA ufficiale su Ubuntu 16.04.
sudo apt-add-repository ppa:strukturag/spreed-webrtc sudo apt update sudo apt install spreed-webrtc
Una volta installato, spreed-webtrc
verrà avviato automaticamente e il suo server web integrato sarà in ascolto su 127.0.0.1:8080
. Puoi verificarne lo stato con:
systemctl status spreed-webrtc
Uscita:
● spreed-webrtc.service - Spreed WebRTC server Loaded: loaded (/lib/systemd/system/spreed-webrtc.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2016-12-13 02:28:18 EST; 3min 0s ago Main PID: 925 (spreed-webrtc-s) Tasks: 5 Memory: 1.1M CPU: 14ms CGroup: /system.slice/spreed-webrtc.service └─925 /usr/sbin/spreed-webrtc-server -c /etc/spreed/webrtc.conf -l /var/log/spreed/webrtc/server.log
Se non è in esecuzione, avvialo manualmente con:
sudo systemctl start spreed-webrtc
E abilita anche l'avvio automatico all'avvio:
sudo systemctl enable spreed-webrtc
Il file di configurazione principale è /etc/spreed/webrtc.conf
.
Fase 2:configurazione del proxy inverso
Spreed WebRTC per impostazione predefinita è in ascolto su localhost. Per accedere all'interfaccia Web da un browser, è necessario configurare un proxy inverso utilizzando Nginx o Apache.
Nginx
Se usi Nginx, segui queste istruzioni.
Innanzitutto, installa Nginx.
sudo apt install nginx
Quindi crea un file di blocco del server per Spreed WebRTC.
sudo nano /etc/nginx/conf.d/spreed-webrtc.conf
Inserisci il seguente testo nel file. Sostituisci spreed.your-domain.com
con il tuo nome di dominio preferito e non dimenticare di impostare un record A.
server { listen 80; server_name spreed.your-domain.com; location / { proxy_pass http://127.0.0.1:8080; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_buffering on; proxy_ignore_client_abort off; proxy_redirect off; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; proxy_next_upstream error timeout invalid_header http_502 http_503 http_504; } location ~ /.well-known/acme-challenge { root /usr/share/nginx/spreed/; allow all; } }
Salva e chiudi il file. Quindi testa le configurazioni di Nginx e ricarica.
sudo nginx -t sudo systemctl reload nginx
Ora dovresti essere in grado di accedere a Spreed WebRTC tramite un nome di dominio dal browser web.
Apache
Se usi Apache, segui queste istruzioni.
Installa il server web Apache.
sudo apt install apache2
Quindi crea un file host virtuale per Spreed.
sudo nano /etc/apache2/sites-available/spreed-webrtc.conf
Inserisci il seguente testo nel file. Sostituisci spreed.your-domain.com
con il tuo nome di dominio preferito e non dimenticare di impostare un record A.
<VirtualHost *:80> ServerName spreed.your-domain.com <Location /> ProxyPass http://127.0.0.1:8080/ ProxyPassReverse http://127.0.0.1:8080/ </Location> <Location /ws> ProxyPass ws://127.0.0.1:8080/ </Location> ProxyVia On ProxyPreserveHost On </VirtualHost>
Salva e chiudi il file. Quindi dobbiamo abilitare proxy_http
modulo.
sudo a2enmod proxy_http
Quindi, abilita questo host virtuale.
sudo a2ensite spreed-webrtc.conf
Testare le configurazioni e ricaricare Apache
sudo apachectl configtest sudo systemctl reload apache2
Ora dovresti essere in grado di accedere a Spreed WebRTC tramite un nome di dominio dal browser web.
Fase 3:abilitazione di HTTPS
Ora otteniamo un certificato TLS gratuito da Let's encrypt. Esegui i seguenti comandi per installare il client Let's Encrypt (certbot) dal PPA ufficiale di certbot.
sudo apt install certbot
Se usi Apache server web, quindi è necessario installare anche il plugin Certbot Apache.
sudo apt install python3-certbot-apache
Quindi emetti il seguente comando per ottenere un certificato TLS/SSL gratuito.
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d spreed.example.com
Se usi Nginx server web, quindi è necessario installare il plug-in Certbot Nginx.
sudo apt install python3-certbot-nginx
Quindi usa il plug-in Nginx per ottenere e installare il certificato eseguendo il comando seguente.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d spreed.example.com
Vedrai il seguente testo che indica che hai ottenuto con successo un certificato TLS.
Fase 4:installa un server TURN/STUN
WebRTC non funzionerà se gli utenti si trovano dietro dispositivi NAT diversi. Sarà bloccato. Per attraversare NAT, è necessario configurare un server TURN/STUN come inoltro tra i browser Web. TURNO sta per T raversal U canta R gira intorno a N A. Coturn è un server TURN e STUN gratuito e open source per VoIP e WebRTC.
Coturn è disponibile dal repository di Ubuntu, quindi installalo con il seguente comando:
sudo apt install coturn
Una volta installato, verrà avviato automaticamente. Puoi verificarne lo stato con:
systemctl status coturn
Esempio di output:
Se non è in esecuzione, avvialo manualmente con:
sudo systemctl start coturn
E abilita anche l'avvio automatico all'avvio:
sudo systemctl enable coturn
Fase 5:Configura Coturn per Spreed WebRTC
Modifica il file di configurazione principale.
sudo nano /etc/turnserver.conf
Per impostazione predefinita, tutte le righe in questo file sono commentate. Di seguito è riportato un esempio di configurazione che puoi copiare e incollare nel tuo file.
- Sostituisci
your-domain.com
con il nome di dominio del tuo NextCloud o Spreed WebRTC. - Sostituisci
12.34.56.78
con l'indirizzo IP pubblico del server. - Imposta un segreto di autenticazione lungo e sicuro. (Puoi usare il
openssl rand -base64 20
comando per generare una stringa casuale.)
# Run as TURN server only, all STUN requests will be ignored. no-stun # Specify listening port. Change to 80 or 443 to go around some strict NATs. listening-port=8443 tls-listening-port=5349 # Specify listening IP, if not set then Coturn listens on all system IPs. listening-ip=12.34.56.78 relay-ip=12.34.56.78 # These lines enable support for WebRTC fingerprint lt-cred-mech realm=your-domain.com # Authentication method use-auth-secret static-auth-secret=your-auth-secret total-quota=100 # Total bytes-per-second bandwidth the TURN server is allowed to allocate # for the sessions, combined (input and output network streams are treated separately). bps-capacity=0 # This line provides extra security. stale-nonce log-file=/var/log/turnserver/turn.log no-loopback-peers no-multicast-peers
Salva e chiudi il file. Quindi riavvia il server coturn con:
sudo systemctl restart coturn
Coturn funziona come turnserver
utente. Esegui il comando seguente e dovresti vedere che è in ascolto sulla porta 8443.
sudo ss -lnpt | grep turnserver
Ora modifichiamo il file di configurazione di Spreed WebRTC.
sudo nano /etc/spreed/server.conf
Aggiungi le seguenti due righe in [app]
sezione. Sostituisci il testo rosso di conseguenza.
turnURIs = turn:coturn-server-ip:8443?transport=udp turnSecret = your-auth-secrect
Salva e chiudi il file. Quindi riavvia il server Spreed WebRTC.
sudo systemctl restart spreed-webrtc
Dovresti aprire la porta TCP e UDP 8843 nel firewall affinché Coturn funzioni. Se utilizzi il firewall UFW, esegui i seguenti comandi.
sudo ufw allow 8443/tcp sudo ufw allow 8443/udp
Una volta che Coturn è in esecuzione e Spreed WebRTC è stato riavviato, gli utenti che si trovano dietro NAT dovrebbero essere in grado di utilizzare normalmente le chiamate audio/video.
Passaggio successivo
Spero che questo tutorial ti abbia aiutato a installare il server Spreed WebRTC su Ubuntu usando l'immagine Docker. Potresti anche voler integrare Spreed.Me con NextCloud.
- Come integrare Spreed Me WebRTC con NextCloud
Spero che questo tutorial ti abbia aiutato a installare il server Spreed WebRTC su Ubuntu 16.04. Come sempre, se hai trovato utile questo post, iscriviti alla nostra newsletter gratuita.