Spreed no es como cualquier otra plataforma de video chat, es mucho mejor y poderosa en todos los sentidos. Es un servidor de llamadas de audio / video gratuito y de código abierto diseñado pensando en la privacidad. Spreed utiliza WebRTC (comunicación web en tiempo real), que permite que los navegadores web y las aplicaciones móviles se comuniquen en tiempo real a través de API (interfaces de programación de aplicaciones). WebRTC permite la comunicación entre pares, lo que hace posible que el audio y el video funcionen dentro de las páginas web.
Además, Spreed WebRTC utiliza cifrado de extremo a extremo, lo que garantiza la máxima privacidad y seguridad de los datos de los usuarios.
Algunas de las tareas que puede realizar con Spreed incluyen:
- Llamadas de audio / video seguras y chat de texto
- Videoconferencia
- Chat de video uno a uno
Instalación del servidor Spreed WebRTC en Ubuntu
Si se pregunta cómo empezar con Spreed, estará en el camino correcto. Esta publicación le brindará una guía paso a paso sobre cómo instalar y comenzar con Spreed WebRTC Server en Ubuntu. Vamos a sumergirnos!
Paso 1. Instalar Spreed en Ubuntu
Veremos dos formas que puede utilizar para instalar Spreed.
- Instalar Spreed desde el PPA oficial
- Instalar Spreed a través de Snap
Nota: La instalación de Spreed a través del PPA solo funcionará en Ubuntu 16.04. Si está en Ubuntu 18.04, Ubuntu 20.04, o cualquier otra variante de Ubuntu, deberá usar Snap.
-
Instale Spreed desde el PPA oficial
Inicie la Terminal (Ctrl + Alt + T) y ejecute los siguientes comandos en la Terminal.
sudo apt-add-repository ppa: strukturag / spreed-webrtc sudo apt update sudo apt install spreed-webrtc
-
Instalar Spreed a través de Snap
Para comenzar, primero instale Snap con los siguientes comandos.
sudo apt update sudo apt install snapd
Una vez que haya instalado Snap en su sistema, proceda a instalar Spreed WebRTC con el siguiente comando:
sudo snap instalar spreed-webrtc-snap
Una vez que haya instalado con éxito Spreed-WebRTC a través de Snap, iniciará su servidor web integrado a través de localhost en el puerto 8084 (127.0.0: 8084). Puede confirmar su estado si se está ejecutando con el siguiente comando.
información de snap spreed-webrtc-snap
Si no se está ejecutando, puede iniciar Spreed snap con el siguiente comando:
sudo snap start spreed-webrtc-snap
También puede habilitar Spreed para que se inicie automáticamente cuando el sistema se inicie con el siguiente comando:
sudo snap start: habilita spreed-webrtc-snap
Puede confirmar si el servidor web Spreed se está ejecutando buscando la dirección 127.0.01: 8084 en el navegador web. Debería ver la página web de Spreed como se muestra en la imagen a continuación.
Paso 2: configuración del proxy inverso
Como puede ver en la información anterior, Spreed-WebRTC, de forma predeterminada, solo es accesible a través de localhost. Por lo tanto, otro usuario de una red diferente a la suya no accederá a Spreed-WebRTC. Para solucionar este problema, deberá configurar un proxy inverso.
Consejo: Un proxy inverso es un servidor proxy que solicita recursos de red en nombre de un cliente desde el servidor backend apropiado.
Veremos cómo configurar un proxy inverso usando Nginx y Apache. Puedes usar cualquiera de ellos.
-
Nginx
Para instalar Nginx en Ubuntu, ejecute el siguiente comando:
sudo apt install nginx
Una vez que el comando se ejecuta correctamente, proceda a crear un bloque de servidor para Spreed-WebRTC en Nginx. Ejecute el siguiente comando para crear spreed-webrtc.conf archivo con el editor nano.
sudo nano / etc / nginx / conf.d / spreed-webrtc.conf
Ahora, copie el contenido a continuación y péguelo en el editor nano. Recuerde reemplazar el dominio spreed.ejemplo.com con su nombre de dominio preferido. Además, no olvide configurar un registro A.
Consejo: Un registro DNS-A apunta al subdominio o nombre de dominio a una dirección IP.
servidor escuchar 80; nombre_servidor spreed.ejemplo.com; ubicación / proxy_pass http: // 127.0.0.1: 8080; proxy_http_version 1.1; actualización de proxy_set_header $ http_upgrade; proxy_set_header Conexión "actualización"; proxy_set_header X-Fordered-Proto $ esquema; proxy_set_header Host $ http_host; proxy_set_header X-Real-IP $ remote_addr; proxy_set_header X-Fordered-For $ proxy_add_x_fordered_for; proxy_buffering activado; 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 invalido_header http_502 http_503 http_504; ubicación ~ /.bien conocido / acme-challenge root / usr / share / nginx / spreed /; permitir todo;
Guarde y cierre el archivo. (Ctrl + O luego Enter para guardar, Ctrl + X para salir).
Ahora puede probar sus configuraciones y volver a cargar Nginx con los siguientes comandos.
sudo nginx -t sudo systemctl recargar nginx
Ahora, se debería poder acceder a Spreed-WebRTC a través de un navegador web a través del dominio asignado. Vea la imagen a continuación.
-
apache
Si desea utilizar Apache, comience por instalarlo primero con el siguiente comando:
sudo apt instalar apache2
Una vez hecho esto, al igual que hicimos con Nginx, cree un archivo de bloque del servidor Spreed-WebRTC. Ejecute el comando para crear y abrir el archivo con nano editor.
sudo nano / etc / apache2 / sites-available / spreed-webrtc.conf
Ahora, copie el contenido a continuación y péguelo en el editor nano. Recuerde reemplazar el dominio spreed.ejemplo.com con su nombre de dominio preferido. Además, no olvide configurar un registro A.
ServerName spreed.ejemplo.com ProxyPass http: // 127.0.0.1: 8080 / ProxyPassReverse http: // 127.0.0.1: 8080 / ProxyPass ws: // 127.0.0.1: 8080 / ProxyVia en ProxyPreserveHost en
Guarde y cierre el archivo. (Ctrl + O luego Enter para guardar, Ctrl + X para salir).
A continuación, necesitamos habilitar proxy_http
Ejecute el siguiente comando:
sudo a2enmod proxy_http
Una vez hecho esto, habilite el host virtual. Ejecute el siguiente comando:
sudo a2ensite spreed-webrtc.conf
Puede proceder a probar sus configuraciones y volver a cargar su servidor Apache.
sudo apachectl configtest sudo systemctl recargar apache2
Ahora, Spreed-WebRTC debería ser accesible a través de un navegador web a través del dominio asignado. Vea la imagen a continuación.
Paso 3: habilita HTTPS
Hasta ahora, solo se puede acceder a nuestro servidor Spreed-WebRTC a través de HTTP, lo que puede generar algunos problemas de seguridad. Para habilitar HTTPS, necesitaremos obtener un certificado SSL / TLS.
Este tutorial utilizará Let's Encrypt para obtener un certificado TLS gratuito. Ejecute los siguientes comandos para instalar el cliente Let's Encrypt -Certbot- del PPA oficial.
sudo apt instalar certbot
Para los usuarios de Apache, se le pedirá que instale el complemento Certbot Apache con el siguiente comando:
sudo apt instalar python3-certbot-apache
Para los usuarios de Nginx, instale el complemento Certbot Nginx con el siguiente comando:
sudo apt instalar python3-certbot-nginx
Para obtener el certificado TLS para el servidor Apache, ejecute el siguiente comando:
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email you @ example.com -d spreed.ejemplo.com
Para obtener un certificado TLS para el servidor Nginx, ejecute el siguiente comando:
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email you @ example.com -d spreed.ejemplo.com
Nota: Con los dos comandos anteriores, recuerde reemplazar tu @ ejemplo.com
con su correo electrónico oficial para registrarse y juerga.ejemplo.com
con el nombre de dominio que usó para su Spreed-WebRTC.
Debería recibir el mensaje a continuación si obtuvo con éxito el certificado.
Paso 4: Instale un servidor TURN / STUN
El servidor Spreed-WebRTC está bien configurado y accesible en línea hasta este momento. Sin embargo, hay un problema que debemos resolver. Si tiene usuarios detrás de una red NAT, se bloquearán y WebRTC no funcionará. Para superar esto, configuraremos un servidor TURN / STUN, que actuará como un relé entre los navegadores web. TURN son las siglas de Traversal Using Relays around NAT, y STUN son las siglas de Session Traversal Utilities.
Usaremos el servidor Coturn, que facilita las llamadas y conferencias de video / audio mediante la implementación de los protocolos TURN y STUN.
Para comenzar, instale Coturn con el siguiente comando:
sudo apt install coturn
Una vez que el comando se ejecuta correctamente, el servicio coturn se iniciará automáticamente. Puede verificar el estado con el siguiente comando:
systemctl status coturn
Si coturn no se está ejecutando, inícielo con el siguiente comando:
sudo systemctl start coturn
Además, para mayor comodidad, puede configurarlo para que se inicie automáticamente al arrancar con el siguiente comando:
sudo systemctl enable coturn
Paso 5: configurar Coturn
Con Coturn instalado y en ejecución, podemos configurarlo para Spreed-WebRTC.
Ejecute el siguiente comando para editar el turnerver
archivo de configuración.
sudo nano / etc / turnerver.conf
Notarás que todas las líneas están comentadas a partir de la salida que obtienes. Como se muestra en la siguiente imagen:
Para hacer su trabajo mucho más fácil, copie el contenido a continuación y péguelo al final de su configuración turnerver
expediente. Sin embargo, recuerde realizar los cambios a continuación:
- Reemplazar ejemplo.com con el nombre de dominio que asignó a Spreed-WebRTC.
- Reemplazar la dirección IP
10.dieciséis.1.1
con la dirección IP pública de su servidor. - Reemplazar
muestra-auth-secreto
contigo mismo. Hágalo largo y seguro, preferiblemente una cadena generada aleatoriamente.
# Especifique el puerto de escucha. Cambie a 80 o 443 para evitar algunas NAT estrictas. listening-port = 8443 tls-listening-port = 5349 # Especifique la IP de escucha, si no está configurada, Coturn escucha en todas las IP del sistema. escucha-ip = 10.dieciséis.1.1 relé-ip = 10.dieciséis.1.1 # Estas líneas habilitan el soporte para WebRTC fingerprint lt-cred-mech realm = example.com # Método de autenticación use-auth-secret static-auth-secret = sample-auth-secret total-quota = 100 # Ancho de banda total de bytes por segundo que el servidor TURN puede asignar # para las sesiones, combinadas (entrada y salida los flujos de red se tratan por separado). bps-capacity = 0 # Esta línea proporciona seguridad adicional. archivo de registro stale-nonce = / var / log / turnerver / turn.log no-loopback-peers no-multicast-peers
Guarde el archivo de configuración y reinicie coturn con el siguiente comando:
sudo systemctl reiniciar coturn
Ahora, necesitaremos configurar Spreed-WEbRTC para Coturn. Ejecute el siguiente comando para abrir el archivo de configuración del servidor.
Si instaló Spreed a través de PPA, use el siguiente comando:
sudo nano / etc / spreed / server.conf
Si instaló Spreed a través de Snap, use el siguiente comando:
sudo nano / var / snap / spreed-webrtc-snap / common / server.conf
Busque la sección de la aplicación y agregue las líneas a continuación. Recuerde reemplazar el texto resaltado en consecuencia.
turnURIs = turn: coturn-server-ip: 8443?transporte = udp turnSecret = ejemplo-auth-secreto
Guarde y cierre el archivo. Una vez más, reinicie el servidor Spreed-WebRTC con el siguiente comando:
Si instaló Spreed a través de PPA, use el siguiente comando:
sudo systemctl reiniciar spreed-webrtc
Si instaló Spreed a través de Snap, use el siguiente comando:
sudo snap reiniciar spreed-webrtc-snap
El último paso que debe hacer es habilitar el puerto 8843 en su Firewall. Eso es porque Coturn escucha en el puerto 8843. Ejecute los comandos para el cortafuegos UFW.
sudo ufw permitir 8443 / tcp sudo ufw permitir 8443 / udp
Ahora, con la configuración de Coturn y Spreed-WebRTC, incluso los usuarios detrás de una red NAT deberían poder realizar llamadas de audio / video e incluso realizar conferencias en línea.
Espero que esta publicación le haya brindado una guía clara sobre la instalación del servidor Spreed WebRTC en Ubuntu. Algunas configuraciones como Establecer un registro DNS A pueden ser bastante desafiantes para los principiantes, pero creo que hay artículos de guía en el sitio donde compró su dominio. En caso de que encuentre algún problema, no dude en dejar un comentario a continuación.