nextcloud:talk
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende Überarbeitung | |||
| nextcloud:talk [2026/10/30 09:34] – angelegt franz | nextcloud:talk [2026/10/30 09:38] (aktuell) – franz | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | ====== Nextcloud Talk – Hochleistungs-Backend ====== | + | |
| + | ====== Nextcloud Talk – Hochleistungs-Backend | ||
| ===== 1. Zielsetzung ===== | ===== 1. Zielsetzung ===== | ||
| - | Diese Anleitung beschreibt die Installation | + | Diese Anleitung beschreibt die Installation, Konfiguration, |
| - | ===== 2. Voraussetzungen ===== | + | Das Backend wird unabhängig von Nextcloud All-in-One als eigenes Docker-Compose-Projekt betrieben. Verwendet wird das offizielle AIO-Talk-Containerimage. |
| - | | + | **Technische Komponenten: |
| + | |||
| + | * Nextcloud Server mit Talk-App | ||
| + | * Docker Engine und Docker Compose v2 | ||
| + | * Nextcloud Talk Hochleistungs-Backend | ||
| + | * Signaling-Server | ||
| + | * Janus WebRTC-Medienserver | ||
| + | * Integrierter TURN-Server | ||
| + | * Apache2 als HTTPS-Reverse-Proxy | ||
| + | * Let's Encrypt für TLS-Zertifikate | ||
| + | |||
| + | **Wichtig: | ||
| + | |||
| + | ===== 2. Beispielumgebung ===== | ||
| + | |||
| + | ^ Komponente ^ Beispielwert ^ | ||
| + | | Betriebssystem | Ubuntu Server | ||
| + | | Docker | Docker Engine mit Compose v2 | | ||
| + | | Nextcloud-Domain | cloud.example.org | | ||
| + | | Talk-Domain | talk.example.org | | ||
| + | | Nextcloud-Projekt | / | ||
| + | | HPB-Projekt | / | ||
| + | | Backup-Verzeichnis | / | ||
| + | | Reverse-Proxy | Apache2 | | ||
| + | | HTTPS | 443/TCP | | ||
| + | | Signaling intern | 8081/TCP | | ||
| + | | TURN | 3478/TCP und UDP | | ||
| + | |||
| + | Alle Domains und Verzeichnisse müssen an die eigene Umgebung angepasst werden. | ||
| + | |||
| + | Der Signaling-Port wird ausschließlich an die lokale Loopback-Adresse gebunden. Der TURN-Port muss für externe Teilnehmer erreichbar sein. | ||
| + | |||
| + | ===== 3. Voraussetzungen ===== | ||
| + | |||
| + | ==== 3.1 Software ==== | ||
| + | |||
| + | Erforderlich sind: | ||
| + | |||
| + | * Funktionierende Nextcloud-Installation | ||
| + | * Installierte und aktivierte Nextcloud Talk-App | ||
| * Docker Engine | * Docker Engine | ||
| - | * Docker Compose | + | * Docker Compose |
| - | * Apache2 | + | * Apache2 |
| + | * Gültiges TLS-Zertifikat | ||
| + | * DNS-Eintrag für die Talk-Domain | ||
| - | ===== 3. Docker-Version | + | ==== 3.2 Docker prüfen ==== |
| <code bash> | <code bash> | ||
| docker --version | docker --version | ||
| docker compose version | docker compose version | ||
| + | docker info | ||
| </ | </ | ||
| + | |||
| + | ==== 3.3 Apache-Module prüfen ==== | ||
| + | |||
| + | <code bash> | ||
| + | sudo apache2ctl -M | grep -E ' | ||
| + | </ | ||
| + | |||
| + | Erforderliche Module aktivieren: | ||
| + | |||
| + | <code bash> | ||
| + | sudo a2enmod proxy proxy_http proxy_wstunnel ssl headers rewrite | ||
| + | sudo apache2ctl configtest | ||
| + | </ | ||
| + | |||
| + | ==== 3.4 DNS prüfen ==== | ||
| + | |||
| + | <code bash> | ||
| + | dig +short cloud.example.org | ||
| + | dig +short talk.example.org | ||
| + | </ | ||
| + | |||
| + | Beide Domains müssen korrekt aufgelöst werden. Die Talk-Domain muss auf den öffentlich erreichbaren Reverse-Proxy zeigen. | ||
| + | |||
| + | ==== 3.5 Ports prüfen ==== | ||
| + | |||
| + | <code bash> | ||
| + | sudo ss -tuln | grep -E ': | ||
| + | </ | ||
| + | |||
| + | Vor der Installation sicherstellen, | ||
| + | |||
| + | ===== 4. Verzeichnisstruktur erstellen ===== | ||
| + | |||
| + | <code bash> | ||
| + | sudo mkdir -p / | ||
| + | sudo mkdir -p / | ||
| + | |||
| + | sudo chmod 700 / | ||
| + | sudo chmod 700 / | ||
| + | |||
| + | cd / | ||
| + | </ | ||
| + | |||
| + | Die weiteren Befehle werden mit einem Benutzer ausgeführt, | ||
| + | |||
| + | ===== 5. Zugangsschlüssel erzeugen ===== | ||
| + | |||
| + | Das Hochleistungs-Backend benötigt drei unabhängige Schlüssel. | ||
| + | |||
| + | ^ Schlüssel ^ Zweck ^ | ||
| + | | TURN_SECRET | Authentifizierung der TURN-Verbindungen | | ||
| + | | SIGNALING_SECRET | Kommunikation zwischen Nextcloud und Signaling | | ||
| + | | INTERNAL_SECRET | Interne Authentifizierung der HPB-Komponenten | | ||
| + | |||
| + | Die Schlüssel werden bei der Erstinstallation erzeugt. | ||
| + | |||
| + | <code bash> | ||
| + | cd / | ||
| + | |||
| + | umask 077 | ||
| + | |||
| + | for name in turn signaling internal; do | ||
| + | file=" | ||
| + | if [ ! -e " | ||
| + | openssl rand -hex 32 > " | ||
| + | fi | ||
| + | done | ||
| + | |||
| + | chmod 700 secrets | ||
| + | chmod 600 secrets/* | ||
| + | </ | ||
| + | |||
| + | Kontrolle: | ||
| + | |||
| + | <code bash> | ||
| + | ls -l secrets/ | ||
| + | </ | ||
| + | |||
| + | **Wichtig: | ||
| + | |||
| + | * Bei Updates keine neuen Secrets generieren. | ||
| + | * Vorhandene Secrets unverändert weiterverwenden. | ||
| + | * Secrets nicht in Repositories oder öffentlichen Dokumentationen veröffentlichen. | ||
| + | |||
| + | ===== 6. Umgebungsdatei erstellen ===== | ||
| + | |||
| + | Die Datei '' | ||
| + | |||
| + | <code bash> | ||
| + | cd / | ||
| + | |||
| + | umask 077 | ||
| + | |||
| + | { | ||
| + | echo " | ||
| + | echo " | ||
| + | echo " | ||
| + | echo " | ||
| + | echo " | ||
| + | echo " | ||
| + | echo " | ||
| + | } > .env | ||
| + | |||
| + | chmod 600 .env | ||
| + | </ | ||
| + | |||
| + | **Achtung: | ||
| + | |||
| + | Bei bestehenden Installationen die '' | ||
| + | |||
| + | ===== 7. Docker Compose konfigurieren ===== | ||
| + | |||
| + | Datei: ''/ | ||
| + | |||
| + | <code yaml> | ||
| + | services: | ||
| + | talk-hpb: | ||
| + | image: ghcr.io/ | ||
| + | container_name: | ||
| + | restart: unless-stopped | ||
| + | init: true | ||
| + | |||
| + | env_file: | ||
| + | - .env | ||
| + | |||
| + | ports: | ||
| + | - " | ||
| + | - " | ||
| + | - " | ||
| + | </ | ||
| + | |||
| + | **Erläuterung: | ||
| + | |||
| + | * 8081/TCP ist ausschließlich über localhost erreichbar. | ||
| + | * 3478/TCP und UDP werden für den integrierten TURN-Server bereitgestellt. | ||
| + | * Die Secrets werden aus der geschützten '' | ||
| + | * Der Container startet nach einem Serverneustart automatisch neu. | ||
| + | |||
| + | Der Image-Tag '' | ||
| + | |||
| + | Für den langfristigen Produktionsbetrieb sollte nach erfolgreicher Prüfung ein festgelegter Image-Digest verwendet werden. Damit lassen sich Updates kontrolliert durchführen. | ||
| + | |||
| + | ==== 7.1 Docker-Konfiguration prüfen ==== | ||
| + | |||
| + | <code bash> | ||
| + | cd / | ||
| + | |||
| + | docker compose config --quiet | ||
| + | </ | ||
| + | |||
| + | Bei korrekter Syntax erscheint keine Fehlermeldung. | ||
| + | |||
| + | Die normale Ausgabe von '' | ||
| + | |||
| + | ==== 7.2 Container starten ==== | ||
| + | |||
| + | <code bash> | ||
| + | docker compose pull | ||
| + | docker compose up -d | ||
| + | </ | ||
| + | |||
| + | ==== 7.3 Containerstatus prüfen ==== | ||
| + | |||
| + | <code bash> | ||
| + | docker compose ps | ||
| + | </ | ||
| + | |||
| + | Der Container muss laufen. | ||
| + | |||
| + | Falls das verwendete Image einen Healthcheck bereitstellt, | ||
| + | |||
| + | ===== 8. Signaling-Server lokal testen ===== | ||
| + | |||
| + | <code bash> | ||
| + | curl -i http:// | ||
| + | </ | ||
| + | |||
| + | Erwartet wird HTTP 200 und eine JSON-Antwort ähnlich: | ||
| + | |||
| + | <code json> | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | Bei Problemen: | ||
| + | |||
| + | <code bash> | ||
| + | docker logs --tail 100 nextcloud-talk-hpb | ||
| + | </ | ||
| + | |||
| + | ===== 9. Apache-Reverse-Proxy einrichten ===== | ||
| + | |||
| + | Der Signaling-Server wird unter einer eigenen HTTPS-Domain veröffentlicht. | ||
| + | |||
| + | Beispiel: | ||
| + | |||
| + | '' | ||
| + | |||
| + | ==== 9.1 TLS-Zertifikat ==== | ||
| + | |||
| + | Mit Certbot kann ein Zertifikat beispielsweise so beantragt werden: | ||
| + | |||
| + | <code bash> | ||
| + | sudo certbot certonly --apache -d talk.example.org | ||
| + | </ | ||
| + | |||
| + | Alternativ kann ein bereits vorhandenes gültiges Wildcard-Zertifikat verwendet werden. | ||
| + | |||
| + | ==== 9.2 VirtualHost erstellen ==== | ||
| + | |||
| + | Datei: ''/ | ||
| + | |||
| + | <code apache> | ||
| + | < | ||
| + | ServerName talk.example.org | ||
| + | Redirect permanent / https:// | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | ServerName talk.example.org | ||
| + | |||
| + | SSLEngine on | ||
| + | |||
| + | SSLCertificateFile / | ||
| + | SSLCertificateKeyFile / | ||
| + | |||
| + | ProxyPreserveHost On | ||
| + | ProxyRequests Off | ||
| + | |||
| + | RequestHeader set X-Forwarded-Proto " | ||
| + | |||
| + | ProxyPass / http:// | ||
| + | ProxyPassReverse / http:// | ||
| + | |||
| + | ErrorLog ${APACHE_LOG_DIR}/ | ||
| + | CustomLog ${APACHE_LOG_DIR}/ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | Diese Konfiguration setzt eine Apache-Version mit entsprechender WebSocket-Upgrade-Unterstützung über '' | ||
| + | |||
| + | Die Zertifikatspfade müssen an die tatsächliche Installation angepasst werden. | ||
| + | |||
| + | ==== 9.3 Website aktivieren ==== | ||
| + | |||
| + | <code bash> | ||
| + | sudo a2ensite talk.example.org.conf | ||
| + | sudo apache2ctl configtest | ||
| + | sudo systemctl reload apache2 | ||
| + | </ | ||
| + | |||
| + | ==== 9.4 HTTPS testen ==== | ||
| + | |||
| + | <code bash> | ||
| + | curl -i https:// | ||
| + | </ | ||
| + | |||
| + | Erwartetes Ergebnis: HTTP 200. | ||
| + | |||
| + | ===== 10. WebSocket-Verbindung testen ===== | ||
| + | |||
| + | <code bash> | ||
| + | curl --http1.1 -i -N --max-time 5 \ | ||
| + | -H " | ||
| + | -H " | ||
| + | -H " | ||
| + | -H " | ||
| + | https:// | ||
| + | </ | ||
| + | |||
| + | Erwartetes Ergebnis: | ||
| + | |||
| + | < | ||
| + | HTTP/1.1 101 Switching Protocols | ||
| + | </ | ||
| + | |||
| + | Eine später auftretende Meldung '' | ||
| + | |||
| + | ===== 11. Hochleistungs-Backend in Nextcloud eintragen ===== | ||
| + | |||
| + | Als Administrator bei Nextcloud anmelden. | ||
| + | |||
| + | '' | ||
| + | |||
| + | Den Abschnitt **Hochleistungs-Backend** öffnen. | ||
| + | |||
| + | Einen neuen Backend-Server hinzufügen. | ||
| + | |||
| + | ^ Einstellung ^ Wert ^ | ||
| + | | Backend-URL | https:// | ||
| + | | Gemeinsames Geheimnis | Inhalt von signaling_secret | | ||
| + | | SSL-Zertifikat überprüfen | Aktiviert | | ||
| + | |||
| + | Den Signaling-Schlüssel lokal anzeigen: | ||
| + | |||
| + | <code bash> | ||
| + | cat / | ||
| + | </ | ||
| + | |||
| + | Den Schlüssel in Nextcloud eintragen und die Verbindung prüfen. | ||
| + | |||
| + | **Erwartetes Ergebnis:** | ||
| + | |||
| + | * Nextcloud erkennt das Hochleistungs-Backend. | ||
| + | * Die Verbindung ist erfolgreich. | ||
| + | * Die verfügbaren Signaling-Funktionen werden angezeigt. | ||
| + | |||
| + | Bei Warnungen über fehlende optionale Funktionen zuerst die Versionskompatibilität prüfen. | ||
| + | |||
| + | Ein funktionierendes Backend nicht ohne vorherige Prüfung durch eine ungeprüfte Entwicklungsversion ersetzen. | ||
| + | |||
| + | ===== 12. TURN-Server einrichten ===== | ||
| + | |||
| + | Das verwendete AIO-Talk-Image enthält bereits einen TURN-Server. | ||
| + | |||
| + | Ein zusätzlicher coturn-Container ist für diese Installationsvariante nicht erforderlich. | ||
| + | |||
| + | ==== 12.1 Firewall konfigurieren ==== | ||
| + | |||
| + | Bei Verwendung von UFW: | ||
| + | |||
| + | <code bash> | ||
| + | sudo ufw allow 3478/tcp | ||
| + | sudo ufw allow 3478/udp | ||
| + | sudo ufw status | ||
| + | </ | ||
| + | |||
| + | Die HTTPS-Verbindung auf Port 443 muss ebenfalls erreichbar sein. | ||
| + | |||
| + | ==== 12.2 Router-Portweiterleitung ==== | ||
| + | |||
| + | Bei einem Server hinter NAT müssen folgende Freigaben eingerichtet werden: | ||
| + | |||
| + | ^ Protokoll ^ Externer Port ^ Internes Ziel ^ | ||
| + | | TCP | 3478 | Docker-Host, | ||
| + | | UDP | 3478 | Docker-Host, | ||
| + | |||
| + | Beispiel FRITZ!Box: | ||
| + | |||
| + | - Benutzeroberfläche öffnen. | ||
| + | - Internet → Freigaben → Portfreigaben aufrufen. | ||
| + | - Den Docker-Host auswählen. | ||
| + | - Neue Portfreigabe für UDP 3478 erstellen. | ||
| + | - Zweite Portfreigabe für TCP 3478 erstellen. | ||
| + | - Einstellungen übernehmen. | ||
| + | |||
| + | Die vorhandene HTTPS-Portfreigabe für 443 bleibt unverändert. | ||
| + | |||
| + | **Port 8081 darf nicht öffentlich freigegeben werden.** | ||
| + | |||
| + | Bei vorhandenem IPv6 müssen die entsprechenden Firewallfreigaben separat geprüft werden. | ||
| + | |||
| + | ==== 12.3 TURN in Nextcloud konfigurieren ==== | ||
| + | |||
| + | In Nextcloud: | ||
| + | |||
| + | Administration → Talk → TURN-Server | ||
| + | |||
| + | ^ Einstellung ^ Wert ^ | ||
| + | | Protokoll | turn: | | ||
| + | | Server | talk.example.org: | ||
| + | | Gemeinsames Geheimnis | Inhalt von turn_secret | | ||
| + | | Transport | UDP und TCP | | ||
| + | |||
| + | TURN-Schlüssel anzeigen: | ||
| + | |||
| + | <code bash> | ||
| + | cat / | ||
| + | </ | ||
| + | |||
| + | Konfiguration speichern und über die Testfunktion prüfen. | ||
| + | |||
| + | Ein grüner Haken bestätigt den erfolgreichen Konfigurationstest. Er ersetzt jedoch keinen praktischen Verbindungstest. | ||
| + | |||
| + | ==== 12.4 STUN konfigurieren ==== | ||
| + | |||
| + | Optional kann der integrierte STUN-Dienst verwendet werden. | ||
| + | |||
| + | Beispiel: | ||
| + | |||
| + | '' | ||
| + | |||
| + | Ein bereits funktionierender STUN-Server muss nicht zwingend ersetzt werden. | ||
| + | |||
| + | ===== 13. Gesamtsystem prüfen ===== | ||
| + | |||
| + | ==== 13.1 Containerstatus ==== | ||
| + | |||
| + | <code bash> | ||
| + | cd / | ||
| + | |||
| + | docker compose ps | ||
| + | </ | ||
| + | |||
| + | ==== 13.2 Öffentlichen Signaling-Endpunkt prüfen ==== | ||
| + | |||
| + | <code bash> | ||
| + | curl -fsS https:// | ||
| + | </ | ||
| + | |||
| + | ==== 13.3 Verbindung aus Nextcloud prüfen ==== | ||
| + | |||
| + | Bei einem Nextcloud-Docker-Projekt mit dem Service '' | ||
| + | |||
| + | <code bash> | ||
| + | cd / | ||
| + | |||
| + | docker compose exec -T app \ | ||
| + | curl -fsS https:// | ||
| + | </ | ||
| + | |||
| + | ==== 13.4 TURN-Port prüfen ==== | ||
| + | |||
| + | <code bash> | ||
| + | sudo ss -tuln | grep ': | ||
| + | </ | ||
| + | |||
| + | Auch die Docker-Portzuordnung prüfen: | ||
| + | |||
| + | <code bash> | ||
| + | docker ps --format 'table {{.Names}}\t{{.Ports}}' | ||
| + | </ | ||
| + | |||
| + | ==== 13.5 Praxistest ==== | ||
| + | |||
| + | - Eine Testunterhaltung in Nextcloud Talk erstellen. | ||
| + | - Einen Videoanruf mit zwei Endgeräten starten. | ||
| + | - Mindestens ein Gerät über ein externes Netzwerk verbinden. | ||
| + | - Audio in beide Richtungen prüfen. | ||
| + | - Video in beide Richtungen prüfen. | ||
| + | - Anschließend einen Anruf mit mindestens drei Teilnehmern durchführen. | ||
| + | |||
| + | Der Test sollte auch mit unterschiedlichen Netzwerken erfolgen, beispielsweise LAN und Mobilfunk. | ||
| + | |||
| + | ===== 14. Updatekonzept ===== | ||
| + | |||
| + | Nextcloud Talk besteht aus mehreren unabhängig aktualisierbaren Komponenten. | ||
| + | |||
| + | ^ Komponente ^ Aktualisierung ^ | ||
| + | | Nextcloud Server | Nextcloud-Docker-Image | | ||
| + | | Nextcloud Talk-App | App-Update in Nextcloud | | ||
| + | | Talk HPB | AIO-Talk-Docker-Image | | ||
| + | | TURN | Bestandteil des HPB-Images | | ||
| + | | Apache2 | Paketverwaltung des Betriebssystems | | ||
| + | |||
| + | **Empfohlene Grundregeln: | ||
| + | |||
| + | * Sicherheitsupdates priorisieren. | ||
| + | * Vor Updates die Release Notes lesen. | ||
| + | * Versionskompatibilität kontrollieren. | ||
| + | * Vor Updates Backups erstellen. | ||
| + | * Während laufender Konferenzen keine Updates durchführen. | ||
| + | * Änderungen zuerst in einer Testumgebung prüfen. | ||
| + | * Nach jedem Update einen Funktionstest durchführen. | ||
| + | |||
| + | ==== 14.1 Kompatibilität prüfen ==== | ||
| + | |||
| + | Vor einem Upgrade kontrollieren: | ||
| + | |||
| + | * Unterstützt die Talk-App die installierte Nextcloud-Version? | ||
| + | * Unterstützt das HPB die benötigten Signaling-Funktionen? | ||
| + | * Gibt es bekannte Probleme mit dem neuen Image? | ||
| + | * Sind die erforderlichen Docker- und Apache-Versionen vorhanden? | ||
| + | * Sind weitere Nextcloud-Apps mit dem geplanten Serverupgrade kompatibel? | ||
| + | |||
| + | Nextcloud-Major-Versionen nicht überspringen. | ||
| + | |||
| + | ===== 15. HPB vor einem Update sichern ===== | ||
| + | |||
| + | ==== 15.1 Konfiguration sichern ==== | ||
| + | |||
| + | <code bash> | ||
| + | cd / | ||
| + | |||
| + | umask 077 | ||
| + | |||
| + | BACKUP="/ | ||
| + | |||
| + | tar -czf " | ||
| + | compose.yaml \ | ||
| + | .env \ | ||
| + | secrets | ||
| + | |||
| + | chmod 600 " | ||
| + | </ | ||
| + | |||
| + | Diese Sicherung enthält vertrauliche Schlüssel und muss besonders geschützt aufbewahrt werden. | ||
| + | |||
| + | ==== 15.2 Aktuelles Docker-Image dokumentieren ==== | ||
| + | |||
| + | <code bash> | ||
| + | docker inspect nextcloud-talk-hpb \ | ||
| + | --format ' | ||
| + | </ | ||
| + | |||
| + | Die Ausgabe enthält die ID des tatsächlich verwendeten Images. | ||
| + | |||
| + | Zusätzlich das konfigurierte Image anzeigen: | ||
| + | |||
| + | <code bash> | ||
| + | docker inspect nextcloud-talk-hpb \ | ||
| + | --format ' | ||
| + | </ | ||
| + | |||
| + | ==== 15.3 Aktuelles Image für Rollback sichern ==== | ||
| + | |||
| + | <code bash> | ||
| + | cd / | ||
| + | |||
| + | umask 077 | ||
| + | |||
| + | docker image save \ | ||
| + | -o / | ||
| + | ghcr.io/ | ||
| + | |||
| + | chmod 600 / | ||
| + | </ | ||
| + | |||
| + | Dieser Befehl setzt voraus, dass der bisherige Container tatsächlich mit dem lokal vorhandenen '' | ||
| + | |||
| + | ===== 16. Talk-HPB aktualisieren ===== | ||
| + | |||
| + | ==== 16.1 Neue Version prüfen ==== | ||
| + | |||
| + | Vor dem Update die offiziellen Veröffentlichungen kontrollieren. | ||
| + | |||
| + | * https:// | ||
| + | * https:// | ||
| + | * https:// | ||
| + | |||
| + | ==== 16.2 Image herunterladen ==== | ||
| + | |||
| + | <code bash> | ||
| + | cd / | ||
| + | |||
| + | docker compose pull | ||
| + | </ | ||
| + | |||
| + | ==== 16.3 Container aktualisieren ==== | ||
| + | |||
| + | <code bash> | ||
| + | docker compose up -d | ||
| + | </ | ||
| + | |||
| + | Docker Compose erstellt den Container bei geändertem Image neu. | ||
| + | |||
| + | Die Dateien '' | ||
| + | |||
| + | ==== 16.4 Update prüfen ==== | ||
| + | |||
| + | <code bash> | ||
| + | docker compose ps | ||
| + | </ | ||
| + | |||
| + | Anschließend: | ||
| + | |||
| + | <code bash> | ||
| + | docker logs --tail 100 nextcloud-talk-hpb | ||
| + | </ | ||
| + | |||
| + | Den öffentlichen Endpunkt testen: | ||
| + | |||
| + | <code bash> | ||
| + | curl -fsS https:// | ||
| + | </ | ||
| + | |||
| + | Abschließend in Nextcloud Administration → Talk die Verbindung prüfen und einen Videoanruf durchführen. | ||
| + | |||
| + | ===== 17. Rollback bei Problemen ===== | ||
| + | |||
| + | Wenn ein neues Image Probleme verursacht, kann auf das vorherige Image zurückgewechselt werden. | ||
| + | |||
| + | Voraussetzung ist, dass das vorherige Image beziehungsweise dessen Digest bekannt und verfügbar ist. | ||
| + | |||
| + | ==== 17.1 Vorheriges Image laden ==== | ||
| + | |||
| + | Wenn zuvor eine Image-Sicherung angelegt wurde: | ||
| + | |||
| + | <code bash> | ||
| + | docker image load \ | ||
| + | -i / | ||
| + | </ | ||
| + | |||
| + | ==== 17.2 Compose-Konfiguration zurücksetzen ==== | ||
| + | |||
| + | In '' | ||
| + | |||
| + | Keinen unveränderten '' | ||
| + | |||
| + | ==== 17.3 Container neu erstellen ==== | ||
| + | |||
| + | <code bash> | ||
| + | cd / | ||
| + | |||
| + | docker compose up -d --force-recreate | ||
| + | </ | ||
| + | |||
| + | ==== 17.4 Funktion prüfen ==== | ||
| + | |||
| + | <code bash> | ||
| + | docker compose ps | ||
| + | |||
| + | curl -fsS https:// | ||
| + | </ | ||
| + | |||
| + | Danach die Verbindung in Nextcloud Talk erneut testen. | ||
| + | |||
| + | ===== 18. Nextcloud Server und Talk-App aktualisieren ===== | ||
| + | |||
| + | Ein Nextcloud-Serverupgrade ist unabhängig vom HPB-Update durchzuführen. | ||
| + | |||
| + | Empfohlene Reihenfolge: | ||
| + | |||
| + | - Kompatibilität und Release Notes prüfen. | ||
| + | - Datenbank und Nextcloud-Daten sichern. | ||
| + | - Nextcloud-Serverimage aktualisieren. | ||
| + | - Datenbankmigration und Nextcloud-Upgrade durchführen. | ||
| + | - Nextcloud-Apps einschließlich Talk aktualisieren. | ||
| + | - Administrationsübersicht prüfen. | ||
| + | - HPB-Verbindung kontrollieren. | ||
| + | - TURN-Konfiguration prüfen. | ||
| + | - Testanruf durchführen. | ||
| + | |||
| + | Bei einer Docker-Installation erfolgt das eigentliche Serverupgrade nach dem Update des Images entsprechend der verwendeten Nextcloud-Docker-Konfiguration. | ||
| + | |||
| + | Die erforderlichen '' | ||
| + | |||
| + | ===== 19. Fehleranalyse ===== | ||
| + | |||
| + | ==== 19.1 Containerprotokolle ==== | ||
| + | |||
| + | <code bash> | ||
| + | docker logs --tail 200 nextcloud-talk-hpb | ||
| + | </ | ||
| + | |||
| + | ==== 19.2 Nur Fehler und Warnungen anzeigen ==== | ||
| + | |||
| + | <code bash> | ||
| + | docker logs --since 30m nextcloud-talk-hpb 2>&1 \ | ||
| + | | grep -Ei ' | ||
| + | </ | ||
| + | |||
| + | ==== 19.3 Apache prüfen ==== | ||
| + | |||
| + | <code bash> | ||
| + | sudo apache2ctl configtest | ||
| + | |||
| + | sudo tail -n 100 / | ||
| + | </ | ||
| + | |||
| + | ==== 19.4 Docker-Portzuordnung prüfen ==== | ||
| + | |||
| + | <code bash> | ||
| + | docker port nextcloud-talk-hpb | ||
| + | </ | ||
| + | |||
| + | ==== 19.5 Häufige Fehler ==== | ||
| + | |||
| + | ^ Symptom ^ Mögliche Ursache ^ | ||
| + | | HTTP 502 | Container nicht erreichbar oder falscher Proxy-Port | | ||
| + | | HTTP 404 | Falscher Proxy-Pfad | | ||
| + | | WebSocket-Verbindung schlägt fehl | Proxy-Konfiguration oder Upgrade-Unterstützung fehlerhaft | | ||
| + | | Nextcloud erkennt HPB nicht | Backend-URL, | ||
| + | | TURN-Test schlägt fehl | Portweiterleitung, | ||
| + | | Video funktioniert nur intern | TURN-Erreichbarkeit oder NAT-Konfiguration fehlerhaft | | ||
| + | | Container startet nicht | Fehlerhafte Umgebungsvariablen oder Portkonflikt | | ||
| + | |||
| + | ===== 20. Sicherheitsempfehlungen ===== | ||
| + | |||
| + | * Port 8081 ausschließlich lokal verfügbar machen. | ||
| + | * Port 3478 nur für die erforderlichen Protokolle freigeben. | ||
| + | * HTTPS mit gültigen Zertifikaten verwenden. | ||
| + | * Secrets mit restriktiven Dateiberechtigungen schützen. | ||
| + | * Docker-Images regelmäßig auf Sicherheitsupdates prüfen. | ||
| + | * Vor Änderungen Sicherungen erstellen. | ||
| + | * Nicht mehr benötigte Container und Images kontrolliert entfernen. | ||
| + | * Apache- und Docker-Protokolle regelmäßig prüfen. | ||
| + | * Keine Secrets oder vollständigen Umgebungsdateien in Tickets oder Wikis veröffentlichen. | ||
| + | |||
| + | ===== 21. Regelmäßige Wartung ===== | ||
| + | |||
| + | ^ Intervall ^ Tätigkeit ^ | ||
| + | | Wöchentlich | Containerstatus und relevante Logs prüfen | | ||
| + | | Wöchentlich | Sicherheitsmeldungen kontrollieren | | ||
| + | | Monatlich | Release Notes und verfügbare HPB-Updates prüfen | | ||
| + | | Monatlich | Backup und Wiederherstellbarkeit kontrollieren | | ||
| + | | Nach jedem Update | Signaling-Verbindung und Testanruf prüfen | | ||
| + | | Nach Netzwerkänderungen | TURN und externe Erreichbarkeit testen | | ||
| + | |||
| + | ===== 22. Offizielle Dokumentation ===== | ||
| + | |||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | |||
| + | ===== 23. Zusammenfassung ===== | ||
| + | |||
| + | Das Nextcloud Talk Hochleistungs-Backend wird als eigenständiges Docker-Compose-Projekt betrieben. | ||
| + | |||
| + | Die Trennung von Nextcloud Server, Talk-App und HPB ermöglicht eine kontrollierte Wartung und Aktualisierung der Komponenten. | ||
| + | |||
| + | Für einen zuverlässigen Betrieb sind insbesondere folgende Punkte entscheidend: | ||
| + | |||
| + | * Korrekte Signaling-Konfiguration | ||
| + | * Funktionierender Apache-Reverse-Proxy | ||
| + | * Erreichbarer TURN-Server | ||
| + | * Korrekte Portfreigaben | ||
| + | * Sichere Aufbewahrung der Zugangsschlüssel | ||
| + | * Regelmäßige Updates und Backups | ||
| + | * Praktische Tests mit mehreren Teilnehmern | ||
| + | |||
nextcloud/talk.txt · Zuletzt geändert: von franz