Spreed es un servidor gratuito de conferencias y llamadas de audio/video WebRTC de código abierto (AGPL) diseñado teniendo en cuenta la privacidad. WebRTC es una tecnología gratuita y abierta que permite que los navegadores se comuniquen entre sí de forma punto a punto. El servidor Spreed WebRTC utiliza cifrado de extremo a extremo para proteger la privacidad y la seguridad de los usuarios.
Spreed WebRTC le permite hacer las siguientes cosas.
- Chat seguro de audio, video y texto
- Conferencias web
- Chat de video uno a uno
Este tutorial le mostrará cómo instalar el servidor Spreed WebRTC en Ubuntu 16.04 VPS o servidor dedicado.
Paso 1:Instale el servidor Spreed WebRTC en Ubuntu 16.04 desde el PPA oficial
Podemos instalar fácilmente el servidor Spreed WebRTC desde el PPA oficial en Ubuntu 16.04.
sudo apt-add-repository ppa:strukturag/spreed-webrtc sudo apt update sudo apt install spreed-webrtc
Una vez instalado, spreed-webtrc
se iniciará automáticamente y su servidor web integrado escucha en 127.0.0.1:8080
. Puede comprobar su estado con:
systemctl status spreed-webrtc
Salida:
● 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
Si no se está ejecutando, inícielo manualmente con:
sudo systemctl start spreed-webrtc
Y también habilite el inicio automático en el momento del arranque:
sudo systemctl enable spreed-webrtc
El archivo de configuración principal es /etc/spreed/webrtc.conf
.
Paso 2:Configuración del proxy inverso
Spreed WebRTC por defecto escucha en localhost. Para acceder a la interfaz web desde un navegador, debemos configurar un proxy inverso mediante Nginx o Apache.
Nginx
Si usa Nginx, siga estas instrucciones.
Primero, instala Nginx.
sudo apt install nginx
Luego cree un archivo de bloque de servidor para Spreed WebRTC.
sudo nano /etc/nginx/conf.d/spreed-webrtc.conf
Coloque el siguiente texto en el archivo. Reemplace spreed.your-domain.com
con su nombre de dominio preferido y no olvide establecer un registro 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; } }
Guarde y cierre el archivo. Luego pruebe las configuraciones de Nginx y vuelva a cargar.
sudo nginx -t sudo systemctl reload nginx
Ahora debería poder acceder a Spreed WebRTC a través de un nombre de dominio desde el navegador web.
Apache
Si usa Apache, siga estas instrucciones.
Instale el servidor web Apache.
sudo apt install apache2
A continuación, cree un archivo de host virtual para Spreed.
sudo nano /etc/apache2/sites-available/spreed-webrtc.conf
Coloque el siguiente texto en el archivo. Reemplace spreed.your-domain.com
con su nombre de dominio preferido y no olvide establecer un registro 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>
Guarde y cierre el archivo. Luego necesitamos habilitar proxy_http
módulo.
sudo a2enmod proxy_http
A continuación, habilite este host virtual.
sudo a2ensite spreed-webrtc.conf
Probar configuraciones y recargar Apache
sudo apachectl configtest sudo systemctl reload apache2
Ahora debería poder acceder a Spreed WebRTC a través de un nombre de dominio desde el navegador web.
Paso 3:habilitar HTTPS
Ahora obtengamos un certificado TLS gratuito de Let's encrypt. Ejecute los siguientes comandos para instalar el cliente Let's Encrypt (certbot) desde el PPA oficial de certbot.
sudo apt install certbot
Si usa Apache servidor web, entonces también necesita instalar el complemento Certbot Apache.
sudo apt install python3-certbot-apache
Luego emita el siguiente comando para obtener un certificado TLS/SSL gratuito.
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d spreed.example.com
Si usa Nginx servidor web, entonces necesita instalar el complemento Certbot Nginx.
sudo apt install python3-certbot-nginx
Luego use el complemento Nginx para obtener e instalar el certificado ejecutando el siguiente comando.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d spreed.example.com
Verá el siguiente texto que indica que ha obtenido correctamente un certificado TLS.
Paso 4:Instale un servidor TURN/STUN
WebRTC no funcionará si los usuarios están detrás de diferentes dispositivos NAT. Será bloqueado. Para atravesar NAT, necesitamos configurar un servidor TURN/STUN como retransmisión entre los navegadores web. GIRO significa T Raversal U canta R eloys alrededor de N EN. Coturn es un servidor TURN y STUN gratuito y de código abierto para VoIP y WebRTC.
Coturn está disponible desde el repositorio de Ubuntu, así que instálelo con el siguiente comando:
sudo apt install coturn
Una vez instalado, se iniciará automáticamente. Puede comprobar su estado con:
systemctl status coturn
Salida de muestra:
Si no se está ejecutando, inícielo manualmente con:
sudo systemctl start coturn
Y también habilite el inicio automático en el momento del arranque:
sudo systemctl enable coturn
Paso 5:Configurar Coturn para Spreed WebRTC
Edite el archivo de configuración principal.
sudo nano /etc/turnserver.conf
De forma predeterminada, todas las líneas de este archivo están comentadas. A continuación se muestra una configuración de ejemplo que puede copiar y pegar en su archivo.
- Reemplace
your-domain.com
con el nombre de dominio para su NextCloud o Spreed WebRTC. - Reemplazar
12.34.56.78
con la dirección IP pública del servidor. - Establezca un secreto de autenticación largo y seguro. (Puede usar
openssl rand -base64 20
comando para generar una cadena aleatoria.)
# 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
Guarde y cierre el archivo. Luego reinicie el servidor coturn con:
sudo systemctl restart coturn
Coturn se ejecuta como turnserver
usuario. Ejecute el siguiente comando y debería ver que está escuchando en el puerto 8443.
sudo ss -lnpt | grep turnserver
Ahora editemos el archivo de configuración de Spreed WebRTC.
sudo nano /etc/spreed/server.conf
Agregue las siguientes dos líneas en [app]
sección. Reemplace el texto rojo según corresponda.
turnURIs = turn:coturn-server-ip:8443?transport=udp turnSecret = your-auth-secrect
Guarde y cierre el archivo. Luego reinicie el servidor Spreed WebRTC.
sudo systemctl restart spreed-webrtc
Debe abrir el puerto TCP y UDP 8843 en el firewall para que Coturn funcione. Si usa el firewall UFW, ejecute los siguientes comandos.
sudo ufw allow 8443/tcp sudo ufw allow 8443/udp
Una vez que se ejecuta Coturn y se reinicia Spreed WebRTC, los usuarios que están detrás de NAT deberían poder usar las llamadas de audio/video con normalidad.
Siguiente paso
Espero que este tutorial te haya ayudado a instalar el servidor Spreed WebRTC en Ubuntu usando la imagen de Docker. También puede integrar Spreed.Me con NextCloud.
- Cómo integrar Spreed Me WebRTC con NextCloud
Espero que este tutorial te haya ayudado a instalar el servidor Spreed WebRTC en Ubuntu 16.04. Como siempre, si esta publicación le resultó útil, suscríbase a nuestro boletín gratuito.