Nextcloud/Talk/HPB: Unterschied zwischen den Versionen

Aus Foxwiki
K Textersetzung - „== Einzelnachweise ==↵<references />“ durch „“
 
(49 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 2: Zeile 2:


= Beschreibung =
= Beschreibung =
== Komponenten ==
; Komponenten
{| class="wikitable sortable"  
{| class="wikitable sortable"  
|-  
|-  
! Aufgabe !! Komponenten !! Link !! Beschreibung
! Komponente !! Aufgabe !! Link !! Beschreibung
|-  
|-  
| WebRTC Gateway || Janus  || [[Nextcloud:Talk:HPB:Janus]] ||  
| Janus || WebRTC Gateway || [[Nextcloud/Talk:HPB:Janus]] ||  
|-   
|-   
| Messaging Server || NATS  || [[Nextcloud:Talk:HPB:NATS]] ||  
| NATS || Messaging Server || [[Nextcloud/Talk:HPB:NATS]] ||  
|-   
|-   
| Signaling-Servern || head  || [[Nextcloud:Talk:HPB:Signaling-Server]] ||  
| Signaling-Servern || Signaling-Servern || [[Nextcloud/Talk:HPB:Signaling-Server]] ||  
|}
|-
 
| Webserver Frontend  || Webserver Frontend || [[Nextcloud/Talk:HPB:Apache]] ||
 
|}
WebRTC gateway
* siehe '''[[Nextcloud:Talk:HPB:Janus]]'''
 
NATS messaging server
Der NATS-Server (https://nats.io/) ermöglicht es Anwendungen und Diensten Daten auszutauschen, die in Nachrichten unterteilt sind. Clients stellen über eine URL eine Verbindung zum NATS-Server her und können anschließend Nachrichten zu einem bestimmten Betreff abonnieren oder veröffentlichen.
* siehe '''[[Nextcloud:Talk:HPB:NATS]]'''
 
Signaling-Server
Der Signaling-Server (https://github.com/strukturag/nextcloud-spreed-signaling) ermöglicht Clients, die eine direkte Verbindung zueinander aufbauen wollen, den Austausch von Informationen, die dies gewährleisten. Möchte sich ein Client A mit einem Client B verbinden, '''signalisiert''' er dies dem Signaling-Server. Sollte Client B der Verbindungsanfrage zustimmen, übermittelt dieser seine Verbindungsinformationen an den Signaling-Server, der diese an Client A weiterreicht. Daraufhin erfolgt der direkte Verbindungsaufbau zwischen den Clients A und B.
* siehe '''[[Nextcloud:Talk:HPB:Signaling-Server]]'''
 
<!-- '''TODO: ''' Grafische Darstellung der Kooperation der verwendeten Dienste -->


= Installation =
= Installation =
== Vorbereitung ==
=== Schlüssel (keys) erstellen ===
;<api-Key> für Janus
$ '''openssl rand -base64 16'''
;Hash-Key
$ '''openssl rand -hex 16'''
;Block-Key
$ '''openssl rand -hex 16'''
;Secret Key für die Nextcloud
$ '''openssl rand -hex 16'''
; openssl
* Option '''rand''' Pseudozufallszeichenketten einer bestimmten Kodierung und der angegebenen Länge erzeugt werden.
* Option '''base64'''
** wird eine Zeichenkette aus Zahlen, Groß- & Kleinbuchstaben, sowie den Zeichen '+' und '/' generiert
* Option '''hex''' eine Zeichenkette aus Hexadezimalzahlen erzeugt wird.
== Server-Daten ==
== Server-Daten ==
'''Nextcloud-Server:''' cloud.foxtom.de
'''TURN-Server:'''      cloud.foxtom.de:5349
'''Signaling Server:''' signaling.foxtom.de


<!--
{| class="wikitable sortable"
TODO
|-
* Was machen und bedeuten die folgenden Kommandos?
! Server !! URL
* Warum brauchen wir diese Schlüssel?
|-  
* Sind die vorgeschlagenen Einstellungen sicher genug?
| Nextcloud-Server || cloud.foxtom.de
* Wie ist mit diesen Daten umzugehen?
|- 
-->
| TURN-Server || turn.foxtom.de:5349
|- 
| Signaling Server || signaling.foxtom.de
|}


= Konfiguration =
= Konfiguration =
== Dateien ==
== Schlüssel (keys) erstellen ==
 
{| class="wikitable sortable"  
= Anwendungen =
|-  
[[Category:Nextcloud:Verwaltung]]
! Aufgabe !! Befehl
 
|-  
= Sicherheit =
| Api-Key für Janus  || openssl rand -base64 16
= Dokumentation =
|-
== Projekt-Homepage ==
| Hash-Key  || openssl rand -hex 16
 
|-
= Links =
| Block-Key  || openssl rand -hex 16
== Siehe auch ==
|-
== Weblinks ==
| Secret Key für die Nextcloud || openssl rand -hex 16
<!-- '''TODO: ''' Linke beschreiben und ich Gruppen aufteilen -->
|}
# https://github.com/strukturag/nextcloud-spreed-signaling
# https://de.wikipedia.org/wiki/WebRTC
# https://decatec.de/home-server/nextcloud-talk-mit-eigenem-signaling-server-high-performance-backend/
# https://decatec.de/home-server/nextcloud-auf-ubuntu-server-20-04-lts-mit-nginx-mariadb-php-lets-encrypt-redis-und-fail2ban/
# https://decatec.de/home-server/nextcloud-talk-mit-eigenem-turn-server-coturn/
# https://decatec.de/linux/lets-encrypt-zertifikate-mit-acme-sh-und-nginx/
# https://decatec.de/home-server/rsa-und-ecdsa-zertifikate-mit-nginx-hybrid-loesung/
# https://decatec.de/home-server/tlsv1-3-unter-ubuntu-server-18-04-lts-mit-nginx/
# https://decatec.de/home-server/docker-auf-ubuntu-server/
 
== Einzelnachweise ==
<references />
 
= Testfragen =
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 1''
<div class="mw-collapsible-content">'''Antwort1'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 2''
<div class="mw-collapsible-content">'''Antwort2'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 3''
<div class="mw-collapsible-content">'''Antwort3'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 4''
<div class="mw-collapsible-content">'''Antwort4'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 5''
<div class="mw-collapsible-content">'''Antwort5'''</div>
</div>


;siehe auch '''[[Openssl]]'''


= Firewall konfigurieren =
== Einbinden in Nextcloud Talk ==
siehe '''[[Nextcloud/Talk:HPB:Einbinden in Nextcloud Talk]]'''


<!-- '''TODO:''' Welche Ports müssen geöffnet sein? -->
== Firewall konfigurieren ==
# apt install ufw


<!-- '''TODO:''' Welche Schritte sind notwendig, um dies mit ufw zu tun? -->
# ufw allow http
# ufw allow https
# ufw allow ssh
# ufw allow 5349/tcp
# ufw allow 5349/udp


<!-- '''TODO:''' Wie kann die Konfiguration geprüft werden? -->
# ufw enable


  $ sudo apt install ufw
  # ufw status
 
$ sudo ufw allow http
$ sudo ufw allow https
$ sudo ufw allow ssh
$ sudo ufw allow 5349/tcp
$ sudo ufw allow 5349/udp
 
$ sudo ufw enable
 
$ sudo ufw status
  Status: active
  Status: active
   
   
Zeile 147: Zeile 77:
  5349/udp (v6)              ALLOW      Anywhere (v6)
  5349/udp (v6)              ALLOW      Anywhere (v6)


= Einbinden in Nextcloud Talk =
== Dateien ==
* Dies geschieht unter ''Einstellungen'' > ''Talk''.
* Ganz unten wird nun ein Signaling Server mit dem Plus-Zeichen hinzugefügt.
* Die Domain lautet hierfür ''https://signaling.meinedomain.de/standalone-signaling''.
* Unter ''Gemeinsames Geheimnis'' wird nun der Nextcloud Secret Key hinterlegt, den wir ganz am Anfang erzeugt haben:


Hinterlegen des Signaling Servers in der Nextcloud Talk Konfiguration
= Anwendung =


Die Option'' SSL Zertifikat überprüfen'' sollte hier aktiviert werden, wenn der Signaling Server über ein valides Zertifikat verfügt (zum Beispiel Let’s Encrypt).
= Sicherheit =
= Dokumentation =
== Projekt ==
# https://github.com/strukturag/nextcloud-spreed-signaling


= Links =
== Siehe auch ==
# https://de.wikipedia.org/wiki/WebRTC


Quelle: https://nichteinschalten.de/signalisierungsserver-fuer-nextcloud-aufsetzen-how-to/
== Weblinks ==
 
# https://decatec.de/home-server/nextcloud-talk-mit-eigenem-signaling-server-high-performance-backend/
netstat -tulpen | grep 8080
# https://decatec.de/home-server/nextcloud-auf-ubuntu-server-20-04-lts-mit-nginx-mariadb-php-lets-encrypt-redis-und-fail2ban/
 
# https://decatec.de/home-server/nextcloud-talk-mit-eigenem-turn-server-coturn/  
[http://nats.io/documentation/tutorials/gnatsd-install/ http://nats.io/documentation/tutorials/gnatsd-install/]
# https://decatec.de/linux/lets-encrypt-zertifikate-mit-acme-sh-und-nginx/  
 
# https://decatec.de/home-server/rsa-und-ecdsa-zertifikate-mit-nginx-hybrid-loesung/
 
# https://decatec.de/home-server/tlsv1-3-unter-ubuntu-server-18-04-lts-mit-nginx/
[https://github.com/meetecho/janus-gateway https://github.com/meetecho/janus-gateway]) can be used to act as a WebRTC gateway. See the documentation of Janus on how to configure and run the server. At least the <tt>VideoRoom</tt> plugin and the websocket transport of Janus must be enabled.
# https://decatec.de/home-server/docker-auf-ubuntu-server/
 
The signaling server uses the <tt>VideoRoom</tt> plugin of Janus to manage sessions. All gateway details are hidden from the clients, all messages are sent through the signaling server. Only WebRTC media is exchanged directly between the gateway and the clients.


Edit the <tt>server.conf</tt> and enter the URL to the websocket endpoint of Janus in the section <tt>[mcu]</tt> and key <tt>url</tt>. During startup, the signaling server will connect to Janus and log information of the gateway.


The maximum bandwidth per publishing stream can also be configured in the section <tt>[mcu]</tt>, see properties <tt>maxstreambitrate</tt> and <tt>maxscreenbitrate</tt>.


== Schlüssel für den TURN-Server ==
* Talk-Einstellungen der Nextcloud
<!-- '''TODO:''' Beschreibung des Klickwegs als Text -->


<!-- '''TODO:''' Screenshot hinzufügen -->


Sofern bereits ein TURN-Server installiert ist, kann der benötigte Schlüssel im Administrator-Bereich der Nextcloud ausgelesen werden: Einstellungen >> Talk.
[[Kategorie:Nextcloud/Talk]]
Über den Link: https://cloud.foxtom.de/settings/admin/talk gelangt man direkt zu den Einstellungen. Der Schlüssel findet sich auch in der Datei /etc/turnserver.conf (static-auth-secret=<Schlüssel>).
{|
| [[Datei:TURN-Server-Key.png | links | 800px | TURN-Server-Konfiguration im Administrator-Bereich der Nextcloud-Talk-App]]
|}

Aktuelle Version vom 2. Juni 2024, 09:45 Uhr

Nextcloud Talk High Performance Backend

Beschreibung

Komponenten
Komponente Aufgabe Link Beschreibung
Janus WebRTC Gateway Nextcloud/Talk:HPB:Janus
NATS Messaging Server Nextcloud/Talk:HPB:NATS
Signaling-Servern Signaling-Servern Nextcloud/Talk:HPB:Signaling-Server
Webserver Frontend Webserver Frontend Nextcloud/Talk:HPB:Apache

Installation

Server-Daten

Server URL
Nextcloud-Server cloud.foxtom.de
TURN-Server turn.foxtom.de:5349
Signaling Server signaling.foxtom.de

Konfiguration

Schlüssel (keys) erstellen

Aufgabe Befehl
Api-Key für Janus openssl rand -base64 16
Hash-Key openssl rand -hex 16
Block-Key openssl rand -hex 16
Secret Key für die Nextcloud openssl rand -hex 16
siehe auch Openssl

Einbinden in Nextcloud Talk

siehe Nextcloud/Talk:HPB:Einbinden in Nextcloud Talk

Firewall konfigurieren

# apt install ufw
# ufw allow http
# ufw allow https
# ufw allow ssh
# ufw allow 5349/tcp
# ufw allow 5349/udp
# ufw enable
# ufw status
Status: active

To                         Action      From
--                         ------      ----
80/tcp                     ALLOW       Anywhere                  
443/tcp                    ALLOW       Anywhere                  
22/tcp                     ALLOW       Anywhere                  
5349/tcp                   ALLOW       Anywhere                  
5349/udp                   ALLOW       Anywhere                  
80/tcp (v6)                ALLOW       Anywhere (v6)             
443/tcp (v6)               ALLOW       Anywhere (v6)             
22/tcp (v6)                ALLOW       Anywhere (v6)             
5349/tcp (v6)              ALLOW       Anywhere (v6)             
5349/udp (v6)              ALLOW       Anywhere (v6)

Dateien

Anwendung

Sicherheit

Dokumentation

Projekt

  1. https://github.com/strukturag/nextcloud-spreed-signaling

Links

Siehe auch

  1. https://de.wikipedia.org/wiki/WebRTC

Weblinks

  1. https://decatec.de/home-server/nextcloud-talk-mit-eigenem-signaling-server-high-performance-backend/
  2. https://decatec.de/home-server/nextcloud-auf-ubuntu-server-20-04-lts-mit-nginx-mariadb-php-lets-encrypt-redis-und-fail2ban/
  3. https://decatec.de/home-server/nextcloud-talk-mit-eigenem-turn-server-coturn/
  4. https://decatec.de/linux/lets-encrypt-zertifikate-mit-acme-sh-und-nginx/
  5. https://decatec.de/home-server/rsa-und-ecdsa-zertifikate-mit-nginx-hybrid-loesung/
  6. https://decatec.de/home-server/tlsv1-3-unter-ubuntu-server-18-04-lts-mit-nginx/
  7. https://decatec.de/home-server/docker-auf-ubuntu-server/