Spreed ist ein kostenloser Open-Source (AGPL) WebRTC-Server für Audio-/Videoanrufe und Konferenzen, der unter Berücksichtigung des Datenschutzes entwickelt wurde. WebRTC ist eine kostenlose und offene Technologie, die es Browsern ermöglicht, auf Peer-to-Peer-Weise miteinander zu kommunizieren. Der Spreed WebRTC-Server verwendet Ende-zu-Ende-Verschlüsselung, um die Privatsphäre und Sicherheit der Benutzer zu schützen.
Mit Spreed WebRTC können Sie Folgendes tun.
- Sicherer Audio-, Video- und Text-Chat
- Webkonferenzen
- Eins-zu-eins-Video-Chat
Dieses Tutorial zeigt Ihnen, wie Sie den Spreed WebRTC-Server auf Ubuntu 16.04 VPS oder einem dedizierten Server installieren.
Schritt 1:Spreed WebRTC Server auf Ubuntu 16.04 vom offiziellen PPA installieren
Wir können den Spreed WebRTC-Server ganz einfach vom offiziellen PPA auf Ubuntu 16.04 installieren.
sudo apt-add-repository ppa:strukturag/spreed-webrtc sudo apt update sudo apt install spreed-webrtc
Einmal installiert, spreed-webtrc
wird automatisch gestartet und sein eingebauter Webserver lauscht auf 127.0.0.1:8080
. Sie können den Status überprüfen mit:
systemctl status spreed-webrtc
Ausgabe:
● 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
Wenn es nicht läuft, starten Sie es manuell mit:
sudo systemctl start spreed-webrtc
Und aktivieren Sie auch den automatischen Start beim Booten:
sudo systemctl enable spreed-webrtc
Die Hauptkonfigurationsdatei ist /etc/spreed/webrtc.conf
.
Schritt 2:Reverse-Proxy einrichten
Spreed WebRTC lauscht standardmäßig auf localhost. Um über einen Browser auf die Weboberfläche zuzugreifen, müssen wir mit Nginx oder Apache einen Reverse-Proxy dafür einrichten.
Nginx
Wenn Sie Nginx verwenden, befolgen Sie diese Anweisungen.
Installieren Sie zuerst Nginx.
sudo apt install nginx
Erstellen Sie dann eine Serverblockdatei für Spreed WebRTC.
sudo nano /etc/nginx/conf.d/spreed-webrtc.conf
Fügen Sie den folgenden Text in die Datei ein. Ersetzen Sie spreed.your-domain.com
mit Ihrem bevorzugten Domainnamen und vergessen Sie nicht, einen A-Eintrag festzulegen.
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; } }
Speichern und schließen Sie die Datei. Testen Sie dann die Nginx-Konfigurationen und laden Sie neu.
sudo nginx -t sudo systemctl reload nginx
Jetzt sollten Sie über einen Domainnamen vom Webbrowser aus auf Spreed WebRTC zugreifen können.
Apache
Wenn Sie Apache verwenden, befolgen Sie diese Anweisungen.
Installieren Sie den Apache-Webserver.
sudo apt install apache2
Erstellen Sie dann eine virtuelle Hostdatei für Spreed.
sudo nano /etc/apache2/sites-available/spreed-webrtc.conf
Fügen Sie den folgenden Text in die Datei ein. Ersetzen Sie spreed.your-domain.com
mit Ihrem bevorzugten Domainnamen und vergessen Sie nicht, einen A-Eintrag festzulegen.
<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>
Speichern und schließen Sie die Datei. Dann müssen wir proxy_http
aktivieren Modul.
sudo a2enmod proxy_http
Als nächstes aktivieren Sie diesen virtuellen Host.
sudo a2ensite spreed-webrtc.conf
Konfigurationen testen und Apache neu laden
sudo apachectl configtest sudo systemctl reload apache2
Jetzt sollten Sie über einen Domainnamen vom Webbrowser aus auf Spreed WebRTC zugreifen können.
Schritt 3:HTTPS aktivieren
Lassen Sie uns nun ein kostenloses TLS-Zertifikat von Let’s encrypt erhalten. Führen Sie die folgenden Befehle aus, um den Let’s Encrypt-Client (certbot) vom offiziellen certbot-PPA zu installieren.
sudo apt install certbot
Wenn Sie Apache verwenden Webserver, dann müssen Sie auch das Certbot Apache Plugin installieren.
sudo apt install python3-certbot-apache
Geben Sie dann den folgenden Befehl aus, um ein kostenloses TLS/SSL-Zertifikat zu erhalten.
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d spreed.example.com
Wenn Sie Nginx verwenden Webserver, dann müssen Sie das Certbot Nginx-Plugin installieren.
sudo apt install python3-certbot-nginx
Verwenden Sie dann das Nginx-Plugin, um das Zertifikat abzurufen und zu installieren, indem Sie den folgenden Befehl ausführen.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d spreed.example.com
Sie sehen den folgenden Text, der anzeigt, dass Sie erfolgreich ein TLS-Zertifikat erhalten haben.
Schritt 4:Installieren Sie einen TURN/STUN-Server
WebRTC funktioniert nicht, wenn sich Benutzer hinter verschiedenen NAT-Geräten befinden. Es wird gesperrt. Um NAT zu durchlaufen, müssen wir einen TURN/STUN-Server als Relais zwischen Webbrowsern einrichten. DREHEN steht für T raversal U Sing R Relais um N BEIM. Coturn ist ein kostenloser Open-Source-TURN- und STUN-Server für VoIP und WebRTC.
Coturn ist im Ubuntu-Repository verfügbar, also installieren Sie es mit dem folgenden Befehl:
sudo apt install coturn
Sobald es installiert ist, wird es automatisch gestartet. Sie können den Status überprüfen mit:
systemctl status coturn
Beispielausgabe:
Wenn es nicht läuft, starten Sie es manuell mit:
sudo systemctl start coturn
Und aktivieren Sie auch den automatischen Start beim Booten:
sudo systemctl enable coturn
Schritt 5:Coturn für Spreed WebRTC konfigurieren
Bearbeiten Sie die Hauptkonfigurationsdatei.
sudo nano /etc/turnserver.conf
Standardmäßig sind alle Zeilen in dieser Datei auskommentiert. Nachfolgend finden Sie eine Beispielkonfiguration, die Sie kopieren und in Ihre Datei einfügen können.
- Ersetzen Sie
your-domain.com
mit dem Domainnamen für Ihr NextCloud oder Spreed WebRTC. - Ersetzen Sie
12.34.56.78
mit der öffentlichen IP-Adresse des Servers. - Legen Sie ein langes und sicheres Authentifizierungsgeheimnis fest. (Sie können den
openssl rand -base64 20
verwenden Befehl zum Generieren einer zufälligen Zeichenfolge.)
# 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
Speichern und schließen Sie die Datei. Starten Sie dann den Coturn-Server neu mit:
sudo systemctl restart coturn
Coturn läuft als turnserver
Benutzer. Führen Sie den folgenden Befehl aus und Sie sollten sehen, dass er auf Port 8443 lauscht.
sudo ss -lnpt | grep turnserver
Lassen Sie uns nun die Spreed WebRTC-Konfigurationsdatei bearbeiten.
sudo nano /etc/spreed/server.conf
Fügen Sie die folgenden zwei Zeilen in [app]
hinzu Sektion. Roten Text entsprechend ersetzen.
turnURIs = turn:coturn-server-ip:8443?transport=udp turnSecret = your-auth-secrect
Speichern und schließen Sie die Datei. Starten Sie anschließend den Spreed WebRTC-Server neu.
sudo systemctl restart spreed-webrtc
Sie sollten den TCP- und UDP-Port 8843 in der Firewall öffnen, damit Coturn funktioniert. Wenn Sie die UFW-Firewall verwenden, führen Sie die folgenden Befehle aus.
sudo ufw allow 8443/tcp sudo ufw allow 8443/udp
Sobald Coturn läuft und Spreed WebRTC neu gestartet wird, sollten Benutzer hinter NAT in der Lage sein, Audio-/Videoanrufe normal zu verwenden.
Nächster Schritt
Ich hoffe, dieses Tutorial hat Ihnen geholfen, den Spreed WebRTC-Server unter Ubuntu mit dem Docker-Image zu installieren. Vielleicht möchten Sie Spreed.Me auch mit NextCloud integrieren.
- So integrieren Sie Spreed Me WebRTC mit NextCloud
Ich hoffe, dieses Tutorial hat Ihnen geholfen, den Spreed WebRTC-Server auf Ubuntu 16.04 zu installieren. Wenn Sie diesen Beitrag nützlich fanden, abonnieren Sie wie immer unseren kostenlosen Newsletter.