GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo instalar el servidor Spreed WebRTC en Ubuntu 16.04

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.


Ubuntu
  1. Cómo instalar MySQL en Ubuntu 18.04

  2. Cómo instalar el servidor de Minecraft en Ubuntu 18.04

  3. Cómo instalar Nginx en Ubuntu 20.04

  4. Cómo instalar MariaDB en Ubuntu 20.04

  5. Cómo instalar Zimbra 8.6 en el servidor Ubuntu 14.04

Cómo instalar Cockpit en Ubuntu 20.04

Cómo instalar el servidor VNC en Ubuntu 20.04

Cómo instalar el servidor HTTrack en Ubuntu 20.04

Cómo instalar Snappass en Ubuntu

Cómo instalar Virtualmin en Ubuntu 20.04

Cómo instalar el servidor TeamSpeak en Ubuntu 20.04