Ako nainštalovať server Spreed WebRTC pomocou obrázka Docker
Spreed je bezplatný server pre audio/video hovory a konferencie WebRTC s otvoreným zdrojom (AGPL) navrhnutý s ohľadom na súkromie. WebRTC je bezplatná a otvorená technológia, ktorá umožňuje prehliadačom komunikovať medzi sebou spôsobom peer-to-peer. Server Spreed WebRTC používa end-to-end šifrovanie na ochranu súkromia a bezpečnosti používateľov.
Spreed WebRTC vám umožňuje robiť nasledujúce veci.
- Zabezpečený audio, video a textový chat
- Webové konferencie
- Individuálny videorozhovor
V predchádzajúcom návode sme diskutovali o tom, ako nainštalovať server Spreed WebRTC na Ubuntu 16.04 pomocou oficiálneho PPA. Tento tutoriál vám ukáže, ako nainštalovať server Spreed WebRTC na Ubuntu pomocou obrazu Docker.
Prečo používať Docker? Spreed PPA funguje iba na Ubuntu 16.04, takže ak používate Ubuntu 20.04, 18.04 alebo akúkoľvek inú distribúciu, nemôžete použiť PPA. Výhodou Dockeru je, že nezáleží na tom, či používate Debian, Ubuntu, CentOS, Redhat, SUSE alebo čokoľvek iné, pokiaľ vaša distribúcia dokáže spustiť Docker engine, môžete si na ňu nainštalovať Spreed WebRTC.
Krok 1: Nainštalujte Docker na Ubuntu
Ak chcete najnovšiu verziu Docker, môžete si nainštalovať Docker z úložiska APT Docker. Pre jednoduchosť tento návod nainštaluje Docker z predvoleného úložiska softvéru Ubuntu.
sudo apt update
sudo apt install docker.io
Po nainštalovaní by sa mal démon Docker automaticky spustiť. Jeho stav môžete skontrolovať pomocou:
systemctl status dockerTip: Ak sa vyššie uvedený príkaz neskončí okamžite, môžete ho ukončiť stlačením klávesu
Q.
Ak nie je spustený, spustite démona týmto príkazom:
sudo systemctl start dockerA povoliť automatické spustenie pri štarte:
sudo systemctl enable dockerKrok 2: Nainštalujte Spreed WebRTC Server na Ubuntu pomocou Docker Image
Po nainštalovaní Dockera spustite nasledujúci príkaz na vytvorenie adresára pre Spreed WebRTC a do tohto adresára stiahnite súbor server.conf. Tento súbor vám umožňuje poskytnúť prispôsobené parametre serveru Spreed WebRTC pri spustení obrazu Docker.
sudo mkdir /etc/spreed/
cd /etc/spreed/
sudo wget https://raw.githubusercontent.com/strukturag/spreed-webrtc/master/server.conf.in -O server.confPotom súbor upravte pomocou textového editora príkazového riadka, ako je napríklad Nano.
sudo nano /etc/spreed/server.confNájdite nasledujúci riadok.
listen = 127.0.0.1:8080Spreed potrebuje počúvať 0.0.0.0:8080 v kontajneri Docker, aby mohol prijímať požiadavky od hostiteľa.
listen = 0.0.0.0:8080Uložte a zatvorte súbor.
Pred spustením kontajnera Spreed WebRTC Docker musíme vytvoriť dostatok entropie na generovanie tajných informácií servera. na vytvorenie entropie môžeme použiť rng-tools.
sudo apt install rng-tools
Po nainštalovaní spustite
sudo rngd -r /dev/urandomPotom zadaním nasledujúceho príkazu spustite obrázok ukotvenia spreed/webrtc so súborom server.conf.
sudo docker run -d --name my-spreed-webrtc -p 127.0.0.1:8080:8080 -v /etc/spreed:/etc/spreed -i -t spreed/webrtc -c /etc/spreed/server.confKde :
-d: Oddelený režim spôsobí, že kontajner beží na pozadí.--name: Priraďte svojmu kontajneru Docker vlastný názov.-p: Zverejní port kontajnera na hostiteľovi. Prvý port, ak je hostiteľský port, druhý je port kontajnera. Spreed tiež počúva na porte 8443 v kontajneri Docker pre požiadavku HTTPS, ale na ukončenie pripojenia TLS použijeme Apache/Nginx, takže nemusíme zverejniť port 8443 hostiteľovi.-v: Vytvorenie pripojenia väzby. Docker viaže pripojenia/etc/spreed/v hostiteľovi na/etc/spreed/v kontajneri Docker.-t: Pridelenie pseudo-TTY.-c: Prepíše predvolený súbor/etc/spreed/server.confv kontajneri Docker.
Teraz server Spreed WebRTC počúva na 127.0.0.1:8080, ako je možné vidieť na:
sudo ss -lnpt | grep dockerKrok 3: Nastavte reverzný proxy
Aby sme mohli pristupovať k webovému rozhraniu Spreed prostredníctvom názvu domény, musíme preň nastaviť reverzný proxy server pomocou Apache alebo Nginx. Umožní vám tiež povoliť HTTPS, takže pripojenie môže byť šifrované.
Apache
Nainštalujte webový server Apache na Ubuntu.
sudo apt install apache2Potom vytvorte súbor virtuálneho hostiteľa pre Spreed.
sudo nano /etc/apache2/sites-available/spreed-webrtc.confVložte nasledujúci text do súboru. Nahraďte spreed.example.com preferovaným názvom hostiteľa a nezabudnite pre tento názov hostiteľa nastaviť záznam DNS A.
<VirtualHost *:80>
ServerName spreed.example.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 zatvorte súbor. Potom musíme povoliť modul proxy_http.
sudo a2enmod proxy_httpĎalej povoľte tohto virtuálneho hostiteľa.
sudo a2ensite spreed-webrtc.confOtestujte konfigurácie a znova načítajte Apache
sudo apachectl configtest
sudo systemctl reload apache2Teraz by ste mali mať prístup k Spreed WebRTC cez http://spreed.example.com vo webovom prehliadači.
Nginx
Najprv nainštalujte Nginx na Ubuntu.
sudo apt install nginxPotom vytvorte súbor bloku servera pre Spreed WebRTC.
sudo nano /etc/nginx/conf.d/spreed-webrtc.confVložte nasledujúci text do súboru. Nahraďte spreed.example.com preferovaným názvom hostiteľa a nezabudnite pre tento názov hostiteľa nastaviť záznam DNS A.
server {
listen 80;
listen [::]:80;
server_name spreed.example.com;
error_log /var/log/nginx/spreed.error;
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 zatvorte súbor. Potom otestujte konfigurácie Nginx a znova načítajte.
sudo nginx -t
sudo systemctl reload nginxTeraz by ste mali mať prístup k Spreed WebRTC cez http://spreed.example.com vo webovom prehliadači.
Krok 4: Získajte a nainštalujte certifikát TLS
Teraz získajme bezplatný certifikát TLS od spoločnosti Let's encrypt. Spustite nasledujúce príkazy na inštaláciu klienta Let’s Encrypt (certbot) z oficiálneho certbota PPA.
sudo apt install certbotAk používate webový server Apache, musíte si nainštalovať aj doplnok Certbot Apache.
sudo apt install python3-certbot-apachePotom zadajte nasledujúci príkaz na získanie bezplatného certifikátu TLS/SSL.
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email -d spreed.example.comAk používate webový server Nginx, musíte si nainštalovať doplnok Certbot Nginx.
sudo apt install python3-certbot-nginxPotom použite doplnok Nginx na získanie a inštaláciu certifikátu spustením nasledujúceho príkazu.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email -d spreed.example.comZobrazí sa nasledujúci text označujúci, že ste úspešne získali certifikát TLS.
Krok 5: Nainštalujte server TURN/STUN
WebRTC nebude fungovať, ak sú používatelia za rôznymi zariadeniami NAT. Bude zablokovaný. Aby sme mohli prejsť NAT, musíme nastaviť server TURN/STUN ako relé medzi webovými prehliadačmi. TURN znamená Traversal Using Relays around NAT. Coturn je bezplatný a open source server TURN a STUN pre VoIP a WebRTC.
Coturn je k dispozícii z úložiska Ubuntu, takže ho nainštalujte pomocou nasledujúceho príkazu:
sudo apt install coturnPo nainštalovaní sa automaticky spustí. Jeho stav môžete skontrolovať pomocou:
systemctl status coturnUkážkový výstup:
Ak nie je spustený, spustite ho manuálne pomocou:
sudo systemctl start coturnA tiež povoliť automatické spustenie pri štarte:
sudo systemctl enable coturnKrok 6: Nakonfigurujte Coturn pre Spreed WebRTC
Upravte hlavný konfiguračný súbor.
sudo nano /etc/turnserver.confŠtandardne sú všetky riadky v tomto súbore zakomentované. Nižšie je uvedený príklad konfigurácie, ktorú môžete skopírovať a vložiť do svojho súboru.
- Nahraďte
vaša-domena.comnázvom domény vášho NextCloud alebo Spreed WebRTC. - Nahraďte
12.34.56.78verejnou IP adresou servera. - Nastavte dlhé a bezpečné overovacie tajomstvo. (Na vygenerovanie náhodného reťazca môžete použiť príkaz
openssl rand -base64 20.)
# 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-peersUložte a zatvorte súbor. Potom reštartujte server coturn pomocou:
sudo systemctl restart coturnCoturn beží ako používateľ turnserver. Spustite nasledujúci príkaz a mali by ste vidieť, že počúva na porte 8443.
sudo ss -lnpt | grep turnserverTeraz upravme konfiguračný súbor Spreed WebRTC.
sudo nano /etc/spreed/server.confDo sekcie [aplikácia] pridajte nasledujúce dva riadky. Podľa toho nahraďte červený text.
turnURIs = turn:coturn-server-ip:8443?transport=udp
turnSecret = your-auth-secrectUložte a zatvorte súbor. Potom reštartujte kontajner dokovacieho zariadenia Spreed WebRTC pomocou
sudo docker restart my-spreed-webrtcAby Coturn fungoval, mali by ste otvoriť port TCP a UDP 8843 vo firewalle. Ak používate bránu firewall UFW, spustite nasledujúce príkazy.
sudo ufw allow 8443/tcp
sudo ufw allow 8443/udpPo spustení Coturn a reštarte Spreed WebRTC by používatelia, ktorí sú za NAT, mali mať možnosť normálne používať audio/video hovory.
Ďalši krok
Dúfam, že vám tento návod pomohol nainštalovať server Spreed WebRTC na Ubuntu pomocou obrazu Docker. Môžete tiež chcieť integrovať Spreed.Me s NextCloud.
- Ako integrovať Spreed Me WebRTC s NextCloud
Ako vždy, ak ste považovali tento príspevok za užitočný, prihláste sa na odber nášho bezplatného bulletinu.





