XMPP-Server: Unterschied zwischen den Versionen

Aus bytewerk-Wiki
Zur Navigation springen Zur Suche springen
 
(131 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
==Ziel==
==Ziel==
Konkurrenzfähiger, zuverlässiger, selbst betriebener, erweiterbarer Instant Messanger mit allen derzeitig üblichen Funktionen.
Konkurrenzfähiger, zuverlässiger, selbst betriebener, erweiterbarer Instant Messenger mit allen derzeitig üblichen Funktionen.

Bingo-Mitglieder sollen automatisch einen Zugang erhalten.
Für Bytwerk-Mitglieder soll es Accounts mit Wunschnamen geben. Bestehende Bytewerk-Zugänge sollen erhalten bleiben.


==Verantwortlich==
==Verantwortlich==
* [[Benutzer:sqozz|sqozz]]
* [[Benutzer:Cfr34x|cfr34k]]
* [[Benutzer:Cfr34x|cfr34k]]
* [[Benutzer:citronalco|citronalco]]
* [[Benutzer:Geierb|Geierb]]


== Benutzerzugänge ==
==Ansatz==
XMPP (früher: Jabber) als Protokoll: Weit verbreitet, gute Clients verfügbar, Server ist Freie Software.


=== bingo-Mitglieder ===
Auf der VM "xmpp.bytewerk.org" läuft bereits Prosody. Dessen Konfiguration wird korrigiert und fehlende Funktionen eingetragen. DNS-Einträge werden geprüft und ergänzt. Für Jingle wird ein TURN-Server installiert.
Jedes bingo-Mitglied hat automatisch einen Account.


Die JID ("Jabber-ID") ist identisch zur Bingo-E-Mail-Adresse, das Passwort ist das Bingo-E-Mail-Passwort.
XMPP wird wie bisher auf der Domain "bytewerk.org" angeboten und zusätzlich auf "bingo-ev.de".


E-Mail-Aliase der Domains @bingo-ev.de und @bytewerk.org können ebenfalls als JIDs verwendet werden.
Accounts für die bytewerk.org-Domain werden, wie bisher auch, lokal angelegt und verwaltet.


Informationen für Anwender finden sich hier: https://xmpp.bytewerk.org/
Benutzer der bingo-ev.de-Domain sollen gegen den IMAP-Server "mail.bingo-ev.de" authentifiziert werden: Werden Benutzername und Passwort vom Mailserver bestätigt, so soll der Nutzer auch den XMPP-Server benutzen dürfen.


=== Nicht-bingo-Mitglieder ===
== Implementierung ==
Bingo-Mitglieder können im [https://dss.bingo-ev.de DSS] Einladungslinks erstellen und z.B. an Freunde und Bekannte weitergeben. Die Zugänge sind haben die Domain @ext.bingo-ev.de, der Benutzername kann frei gewählt werden.
Auf der VM '''xmpp.bytewerk.org''' laufen folgende Dienste:


Nicht benutzte Zugänge werden nach einem Jahr gelöscht.
* Prosody als XMPP-Server
* PostgreSQL als Datenbank
* Coturn für TURN und STUN (für Jingle/WebRTC, d.h. Audio-/Videotelefonie und Dateiübertragung von Client zu Client)


== Chaträume ==
==Benutzerzugänge==
Jeder kann nach Belieben Chaträume anlegen.
=== <wunschname>@bytewerk.org ===


=== Automatisch angelegte Chaträume ===
Accounts werden auf Zuruf erstellt.
Folgende Chaträume werden automatisch angelegt:
* [xmpp:bingo-users@conference.bingo-ev.de bingo-users@conference.bingo-ev.de] [https://conference.bingo-ev.de/muc_badge/bingo-users@conference.bingo-ev.de]
* [xmpp:bytewerk@conference.bytewerk.org bytewerk@conference.bytewerk.org] [https://conference.bytewerk.org/muc_badge/bytewerk@conference.bytewerk.org]


=== Badges ===
Das Passwort kann direkt im XMPP-Client geändert werden.
Badges für öffentliche Chaträume können über <nowiki>https://xmpp.bytewerk.org/muc_badge/</nowiki><MUC-JID> abgerufen werden.


Beispiele:
=== <Bingo-Benutzername>@bingo-ev.de ===
* Das Badge für [xmpp:bytewerk@conference.bytewerk.org bytewerk@conference.bytewerk.org] kann über die URL https://xmpp.bytewerk.org/muc_badge/bytewerk@conference.bytewerk.org abgerufen werden und sieht so aus: [[Datei:MUC badge bytewerk.png|frameless|caption]]
* Das Badge für [xmpp:bingo-users@conference.bingo-ev.de bingo-users@conference.bingo-ev.de] kann über die URL https://xmpp.bytewerk.org/muc_badge/bingo-users@conference.bingo-ev.de abgerufen werden und sieht so aus: [[Datei:MUC badge bingo-users.png|frameless|caption]]


=== IRC-Chat ===
Jedes Bingo-Mitglied hat automatisch einen Account.
Zum Betreten eines IRC-Chats einfach einen Gruppenchat mit dem Muster '''#CHANNEL%SERVER@irc.xmpp.bytewerk.org''' anlegen/beitreten.


'''Beispiel:'''
Passwort ist das Bingo-E-Mail-Passwort.


Um den Channel '''#pypy''' auf '''irc.libera.chat''' zu besuchen, einen neuen Chat mit der Adresse '''#pypy%irc.libera.chat@irc.xmpp.bytewerk.org''' starten.
Da zur Authentifizierung der Bingo-Mailserver benutzt wird kann das Passwort nicht im XMPP-Client geändert werden.


Im XMPP-Client werden dann automatisch der Channel und der IRC-Server als Gesprächspartner hinzugefügt.


Sollten die Nachrichten des IRC-Servers stören: Diesen einfach als Gesprächspartner blockieren.
== Empfehlenswerte Clients: ==
* Android: Conversations.im, Quicksy.im
* iOS: Monal.im
* Windows/Linux/BSD: Gajim
* macOS: PSI


== XMPP-Clients ==
Ein sehr einfacher Client (nur Text, keine Gruppenchats) ist in '''Thunderbird''' eingebaut ("Chat-Konto").
Es kann jeder XMPP-Client verwendet werden. Empfehlenswerte Clients für Android, iOS, Linux, Windows und MacOS sind auf https://xmpp.bytewerk.org/ aufgeführt.


=== Webclient ===
Für '''Nextcloud''' gibt es mit der ojsxc-App (https://apps.nextcloud.com/apps/ojsxc) einen sehr gut ausgestatteten webbasierten Client.
Auf xmpp.bytewerk.org ist Converse.js installiert: [https://xmpp.bytewerk.org/conversejs-bingo#converse/room?jid=bingo-users@conference.bingo-ev.de https://xmpp.bytewerk.org/conversejs-bingo]
=== Sonstige ===
In '''Thunderbird''' ist ein sehr einfacher Client (nur Text) integriert ("''Bearbeiten''", "''Konten-Einstellungen''", unten "''Konten-Aktionen''", "''Chat-Konto hinzufügen''").

In der [https://cloud.bingo-ev.de Bingo-Nextcloud] ist ein gut ausgestatteter, webbasierter Client eingebaut ([https://apps.nextcloud.com/apps/ojsxc ojsxc-App]).

== Unterstützte Funktionen ==
* Gruppen (öffentlich/privat/mit Einladung, moderiert/unmoderiert)
* Audio- und Videotelefonie
* Sprach- und Videonachrichten
* Ende-zu-Ende-Verschlüsselung
* Dateiup- und Download (wird auch für Fotos, Sprach- und Videonachrichten verwendet) - Dateigröße pro Upload derzeit limitiert auf 100 MByte.
* Gleichzeitiges Verwenden mehrerer Clients
* Push
* IRC
* Invites (nur Domain ext.bingo-ev.de)

[https://compliance.conversations.im/live/bytewerk.org/ 100% Compliance] zu Conversations

Dateien und Chatverläufe werden nach einem Monat vom Server gelöscht.

=== Die Kosten der Freiheit ===
Die bei der Kommunikation mit einem bestimmten Gesprächspartner zur Verfügung stehenden Funktionen ergeben sich aus der Schnittmenge des Funktionsumfangs der beteiligten XMPP-Server und der XMPP-Clients ergeben :)

Beispiel: Ist mein Gesprächspartner ein Shellskript, das mir eine Nachricht schickt wenn die Waschmaschine fertig ist, dann werde ich mit diesem kein Videotelefonat führen können, selbst wenn es mein XMPP-Client und der Server unterstützt.

Wichtig bei der '''gleichzeitigen Verwendung von mehreren Clients''': Eine Nachricht gilt als zugestellt, wenn sie an EINEM Client des Empfängers angekommen ist. Das kann bei wackeliger Internetverbindung dazu führen, dass Nachrichten scheinbar nicht zugestellt wurden - sie landen dann nur bei dem Gerät, dass gerade online ist. Zwar prüfen die meisten XMPP-Clients beim Wieder-Online-Gehen, ob in der Zwischenzeit Nachrichten eingetroffen sind, aber eben nicht alle.

Ebenso ist undefiniert, was passiert, wenn ein Videoanruf gestartet werden soll, der Gesprächspartner aber mit mehreren Clients online ist, von denen nicht alle Videotelefonie unterstützen.

Threema, Whatsapp usw. machen es sich einfach: Die verbieten schlicht die parallele Nutzung sowie Fremd-Clients.


== Fortschritt ==
== Fortschritt ==
;2021-01: Neukonfiguration des bestehenden XMPP-Servers mit Korrektur der DNS-Einträge und Installation zusätzlicher benötigter Dienste
2021-01: Neukonfiguration des bestehenden XMPP-Servers mit Korrektur der DNS-Einträge und Installation zusätzlicher benötigter Dienste
;2021-02: Implementierung abgeschlossen: Bei [https://compliance.conversations.im/server/bytewerk.org/ compliance.conversations.im] statt 52% jetzt 100% "XMPP Specifications compliance".
;2021-02: Bingo-Domäne mit IMAP-Authentifizierung hinzugefügt


2021-02: Implementierung abgeschlossen: Statt 52% jetzt 100% "XMPP Specifications compliance" beim Conversations.im-Compliance-Test, A-Scores beim IM Observatory Client- und Server-Test
==Probleme==
* Plattenplatz sehr gering
* keine IPv6-Unterstützung: Die Prosody-VM hat zwar eine IPv6-Adresse, diese ist aber nicht öffentlich erreichbar
* <del>Wenn Coturn als TURN-Server statt "nur" als STUN-Server durch Prosody benutzt wird, funktioniert Audio- und Videotelefonie nur noch mit bytewerk.org-Usern und nicht mehr mit Externen.</del>
* XMPP-Webclient unter https://jabber.bytewerk.org funktioniert nicht mehr.


2021-02: Bingo-Domäne mit IMAP-Authentifizierung hinzugefügt, Conversejs aktualisiert
==ToDo==
* Testen!
* Mehr Plattenplatz
* Backup
* Monitoring


2021-08: Serverkonfiguration auf Ansible umgestellt, dabei kleine Fehler behoben, neue Funktionen hinzugefügt, Conversejs aktualisiert.
==Verwandte Artikel==


2022-08: Push-Services für Monal IM aktiviert


2022-09: IRC-Transport
==Files==


2025-04: Umzug von Suse auf Debian, XMPP-Invites


==Files==
Das Ansible-Playbook samt Inventory befinden sich hier: https://git.bingo-ev.de/infrastructure/xmpp
[[Category:Projekt]]
[[Category:Projekt]]

Aktuelle Version vom 7. April 2025, 18:36 Uhr

Ziel

Konkurrenzfähiger, zuverlässiger, selbst betriebener, erweiterbarer Instant Messenger mit allen derzeitig üblichen Funktionen.

Verantwortlich

Benutzerzugänge

bingo-Mitglieder

Jedes bingo-Mitglied hat automatisch einen Account.

Die JID ("Jabber-ID") ist identisch zur Bingo-E-Mail-Adresse, das Passwort ist das Bingo-E-Mail-Passwort.

E-Mail-Aliase der Domains @bingo-ev.de und @bytewerk.org können ebenfalls als JIDs verwendet werden.

Informationen für Anwender finden sich hier: https://xmpp.bytewerk.org/

Nicht-bingo-Mitglieder

Bingo-Mitglieder können im DSS Einladungslinks erstellen und z.B. an Freunde und Bekannte weitergeben. Die Zugänge sind haben die Domain @ext.bingo-ev.de, der Benutzername kann frei gewählt werden.

Nicht benutzte Zugänge werden nach einem Jahr gelöscht.

Chaträume

Jeder kann nach Belieben Chaträume anlegen.

Automatisch angelegte Chaträume

Folgende Chaträume werden automatisch angelegt:

Badges

Badges für öffentliche Chaträume können über https://xmpp.bytewerk.org/muc_badge/<MUC-JID> abgerufen werden.

Beispiele:

IRC-Chat

Zum Betreten eines IRC-Chats einfach einen Gruppenchat mit dem Muster #CHANNEL%SERVER@irc.xmpp.bytewerk.org anlegen/beitreten.

Beispiel:

Um den Channel #pypy auf irc.libera.chat zu besuchen, einen neuen Chat mit der Adresse #pypy%irc.libera.chat@irc.xmpp.bytewerk.org starten.

Im XMPP-Client werden dann automatisch der Channel und der IRC-Server als Gesprächspartner hinzugefügt.

Sollten die Nachrichten des IRC-Servers stören: Diesen einfach als Gesprächspartner blockieren.

XMPP-Clients

Es kann jeder XMPP-Client verwendet werden. Empfehlenswerte Clients für Android, iOS, Linux, Windows und MacOS sind auf https://xmpp.bytewerk.org/ aufgeführt.

Webclient

Auf xmpp.bytewerk.org ist Converse.js installiert: https://xmpp.bytewerk.org/conversejs-bingo

Sonstige

In Thunderbird ist ein sehr einfacher Client (nur Text) integriert ("Bearbeiten", "Konten-Einstellungen", unten "Konten-Aktionen", "Chat-Konto hinzufügen").

In der Bingo-Nextcloud ist ein gut ausgestatteter, webbasierter Client eingebaut (ojsxc-App).

Unterstützte Funktionen

  • Gruppen (öffentlich/privat/mit Einladung, moderiert/unmoderiert)
  • Audio- und Videotelefonie
  • Sprach- und Videonachrichten
  • Ende-zu-Ende-Verschlüsselung
  • Dateiup- und Download (wird auch für Fotos, Sprach- und Videonachrichten verwendet) - Dateigröße pro Upload derzeit limitiert auf 100 MByte.
  • Gleichzeitiges Verwenden mehrerer Clients
  • Push
  • IRC
  • Invites (nur Domain ext.bingo-ev.de)

100% Compliance zu Conversations

Dateien und Chatverläufe werden nach einem Monat vom Server gelöscht.

Die Kosten der Freiheit

Die bei der Kommunikation mit einem bestimmten Gesprächspartner zur Verfügung stehenden Funktionen ergeben sich aus der Schnittmenge des Funktionsumfangs der beteiligten XMPP-Server und der XMPP-Clients ergeben :)

Beispiel: Ist mein Gesprächspartner ein Shellskript, das mir eine Nachricht schickt wenn die Waschmaschine fertig ist, dann werde ich mit diesem kein Videotelefonat führen können, selbst wenn es mein XMPP-Client und der Server unterstützt.

Wichtig bei der gleichzeitigen Verwendung von mehreren Clients: Eine Nachricht gilt als zugestellt, wenn sie an EINEM Client des Empfängers angekommen ist. Das kann bei wackeliger Internetverbindung dazu führen, dass Nachrichten scheinbar nicht zugestellt wurden - sie landen dann nur bei dem Gerät, dass gerade online ist. Zwar prüfen die meisten XMPP-Clients beim Wieder-Online-Gehen, ob in der Zwischenzeit Nachrichten eingetroffen sind, aber eben nicht alle.

Ebenso ist undefiniert, was passiert, wenn ein Videoanruf gestartet werden soll, der Gesprächspartner aber mit mehreren Clients online ist, von denen nicht alle Videotelefonie unterstützen.

Threema, Whatsapp usw. machen es sich einfach: Die verbieten schlicht die parallele Nutzung sowie Fremd-Clients.

Fortschritt

2021-01: Neukonfiguration des bestehenden XMPP-Servers mit Korrektur der DNS-Einträge und Installation zusätzlicher benötigter Dienste

2021-02: Implementierung abgeschlossen: Statt 52% jetzt 100% "XMPP Specifications compliance" beim Conversations.im-Compliance-Test, A-Scores beim IM Observatory Client- und Server-Test

2021-02: Bingo-Domäne mit IMAP-Authentifizierung hinzugefügt, Conversejs aktualisiert

2021-08: Serverkonfiguration auf Ansible umgestellt, dabei kleine Fehler behoben, neue Funktionen hinzugefügt, Conversejs aktualisiert.

2022-08: Push-Services für Monal IM aktiviert

2022-09: IRC-Transport

2025-04: Umzug von Suse auf Debian, XMPP-Invites

Files

Das Ansible-Playbook samt Inventory befinden sich hier: https://git.bingo-ev.de/infrastructure/xmpp