Spreed je bezplatný webový server pro audio/video hovory a konference s otevřeným zdrojovým kódem (AGPL) navržený s ohledem na soukromí. WebRTC je bezplatná a otevřená technologie, která umožňuje prohlížečům komunikovat mezi sebou způsobem peer-to-peer. Server Spreed WebRTC používá end-to-end šifrování k ochraně soukromí a bezpečnosti uživatelů.
Spreed WebRTC vám umožňuje provádět následující věci.
- Zabezpečený audio, video a textový chat
- Webové konference
- Osobní videochat
Tento tutoriál vám ukáže, jak nainstalovat server Spreed WebRTC na Ubuntu 16.04 VPS nebo dedikovaný server.
Krok 1:Nainstalujte Spreed WebRTC Server na Ubuntu 16.04 z oficiálního PPA
Můžeme snadno nainstalovat server Spreed WebRTC z oficiálního PPA na Ubuntu 16.04.
sudo apt-add-repository ppa:strukturag/spreed-webrtc sudo apt update sudo apt install spreed-webrtc
Po instalaci spreed-webtrc
se automaticky spustí a jeho vestavěný webový server naslouchá na 127.0.0.1:8080
. Jeho stav můžete zkontrolovat pomocí:
systemctl status spreed-webrtc
Výstup:
● 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
Pokud neběží, spusťte jej ručně pomocí:
sudo systemctl start spreed-webrtc
A také povolit automatické spuštění při spouštění:
sudo systemctl enable spreed-webrtc
Hlavní konfigurační soubor je /etc/spreed/webrtc.conf
.
Krok 2:Nastavení reverzního proxy
Spreed WebRTC ve výchozím nastavení naslouchá na localhost. Pro přístup k webovému rozhraní z prohlížeče musíme pro něj nastavit reverzní proxy pomocí Nginx nebo Apache.
Nginx
Pokud používáte Nginx, postupujte podle těchto pokynů.
Nejprve nainstalujte Nginx.
sudo apt install nginx
Poté vytvořte soubor bloku serveru pro Spreed WebRTC.
sudo nano /etc/nginx/conf.d/spreed-webrtc.conf
Do souboru vložte následující text. Nahraďte spreed.your-domain.com
s vaším preferovaným názvem domény a nezapomeňte nastavit záznam 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; } }
Uložte a zavřete soubor. Poté otestujte konfigurace Nginx a znovu načtěte.
sudo nginx -t sudo systemctl reload nginx
Nyní byste měli mít přístup ke Spreed WebRTC prostřednictvím názvu domény z webového prohlížeče.
Apache
Pokud používáte Apache, postupujte podle těchto pokynů.
Nainstalujte webový server Apache.
sudo apt install apache2
Poté vytvořte soubor virtuálního hostitele pro Spreed.
sudo nano /etc/apache2/sites-available/spreed-webrtc.conf
Do souboru vložte následující text. Nahraďte spreed.your-domain.com
s vaším preferovaným názvem domény a nezapomeňte nastavit záznam 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>
Uložte a zavřete soubor. Potom musíme povolit proxy_http
modul.
sudo a2enmod proxy_http
Dále povolte tohoto virtuálního hostitele.
sudo a2ensite spreed-webrtc.conf
Otestujte konfigurace a znovu načtěte Apache
sudo apachectl configtest sudo systemctl reload apache2
Nyní byste měli mít přístup ke Spreed WebRTC prostřednictvím názvu domény z webového prohlížeče.
Krok 3:Povolení HTTPS
Nyní získáme bezplatný certifikát TLS od společnosti Let’s encrypt. Spuštěním následujících příkazů nainstalujte klienta Let’s Encrypt (certbot) z oficiálního certbota PPA.
sudo apt install certbot
Pokud používáte Apache webový server, musíte také nainstalovat plugin Certbot Apache.
sudo apt install python3-certbot-apache
Poté zadejte následující příkaz, abyste získali bezplatný certifikát TLS/SSL.
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d spreed.example.com
Pokud používáte Nginx webový server, musíte nainstalovat plugin Certbot Nginx.
sudo apt install python3-certbot-nginx
Poté pomocí pluginu Nginx získejte a nainstalujte certifikát spuštěním následujícího příkazu.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d spreed.example.com
Zobrazí se následující text označující, že jste úspěšně získali certifikát TLS.
Krok 4:Instalace serveru TURN/STUN
WebRTC nebude fungovat, pokud jsou uživatelé za různými zařízeními NAT. Bude zablokováno. Abychom mohli projít NAT, musíme nastavit server TURN/STUN jako přenos mezi webovými prohlížeči. OTOČIT znamená T raversal U zpívat R zpoždění kolem N V. Coturn je bezplatný a open-source server TURN a STUN pro VoIP a WebRTC.
Coturn je k dispozici z úložiště Ubuntu, takže jej nainstalujte pomocí následujícího příkazu:
sudo apt install coturn
Jakmile je nainstalován, automaticky se spustí. Jeho stav můžete zkontrolovat pomocí:
systemctl status coturn
Ukázkový výstup:
Pokud neběží, spusťte jej ručně pomocí:
sudo systemctl start coturn
A také povolit automatické spouštění při spouštění:
sudo systemctl enable coturn
Krok 5:Nakonfigurujte Coturn pro Spreed WebRTC
Upravte hlavní konfigurační soubor.
sudo nano /etc/turnserver.conf
Ve výchozím nastavení jsou všechny řádky v tomto souboru zakomentovány. Níže je uveden příklad konfigurace, kterou můžete zkopírovat a vložit do svého souboru.
- Nahraďte
your-domain.com
s názvem domény vašeho NextCloud nebo Spreed WebRTC. - Nahraďte
12.34.56.78
s veřejnou IP adresou serveru. - Nastavte dlouhé a bezpečné ověřovací tajemství. (Můžete použít
openssl rand -base64 20
příkaz ke generování náhodného řetězce.)
# 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
Uložte a zavřete soubor. Poté restartujte server coturn pomocí:
sudo systemctl restart coturn
Coturn běží jako turnserver
uživatel. Spusťte následující příkaz a měli byste vidět, že naslouchá na portu 8443.
sudo ss -lnpt | grep turnserver
Nyní upravme konfigurační soubor Spreed WebRTC.
sudo nano /etc/spreed/server.conf
Přidejte následující dva řádky do [app]
sekce. Nahraďte odpovídajícím způsobem červený text.
turnURIs = turn:coturn-server-ip:8443?transport=udp turnSecret = your-auth-secrect
Uložte a zavřete soubor. Poté restartujte server Spreed WebRTC.
sudo systemctl restart spreed-webrtc
Aby Coturn fungoval, měli byste otevřít TCP a UDP port 8843 ve bráně firewall. Pokud používáte firewall UFW, spusťte následující příkazy.
sudo ufw allow 8443/tcp sudo ufw allow 8443/udp
Jakmile Coturn běží a Spreed WebRTC je restartován, uživatelé, kteří jsou za NAT, by měli mít možnost normálně používat audio/video hovory.
Další krok
Doufám, že vám tento tutoriál pomohl nainstalovat server Spreed WebRTC na Ubuntu pomocí obrazu Docker. Můžete také chtít integrovat Spreed.Me s NextCloud.
- Jak integrovat Spreed Me WebRTC s NextCloud
Doufám, že vám tento návod pomohl nainstalovat server Spreed WebRTC na Ubuntu 16.04. Jako vždy, pokud pro vás byl tento příspěvek užitečný, přihlaste se k odběru našeho bezplatného zpravodaje.