Prosody
Prosody ist ein in LUA geschriebener plattformunabhängiger und leichtgewichtiger XMPP-Server. Das selbsterklärte Ziel der Entwickler ist die einfache Bedienbarkeit, geringe Systemauslastung, und Erweiterbarkeit.
Prosody ist somit eine gute Alternative zu ejabberd und lässt sich sowohl für kleinere als auch für größere Umgebungen und Anforderungen nutzen.
Installation
Prosody befindet sich im „community“-Repository und kann mittels Pacman installiert werden.
pacman -S prosody
Konfiguration
Prosody wird über die Datei
/etc/prosody/prosody.cfg.lua
konfiguriert.
Die Konfigurationsdatei ist übersichtlich und gut strukturiert sowie kommentiert. Alle Optionen hier aufzuführen würde den Rahmen sprengen, daher sei hier auf die gut dokumentierte Konfigurationsdatei und configuring prosody verwiesen.
Host hinzufügen
Als erstes sollte man seinen zu benutzenden host hinzufügen. Dazu sollte man die Datei
/etc/prosody/prosody.cfg.lua
ändern:
VirtualHost "meine-domain.de" enabled = true -- Remove this line to enable this host -- Assign this host a certificate for TLS, otherwise it would use the one -- set in the global section (if any). -- Note that old-style SSL on port 5223 only supports one certificate, and will always -- use the global one. ssl = { key = "/etc/prosody/certs/meine-domain.de.key"; certificate = "/etc/prosody/certs/meine-domain.de.crt"; }
Benutzer hinzufügen
Ein neuer Benutzer kann einfach über das Kommandozeilen-Tool prosodyctl hinzugefügt werden.
prosodyctl adduser benutzername@meine-domain.de
Es wird dann nach einem Passwort für den soeben angelegten Benutzer gefragt.
Administrator festlegen
In der Konfigurationsdatei lässt sich der Admin-Account des Servers festlegen:
-- This is a (by default, empty) list of accounts that are admins -- for the server. Note that you must create the accounts separately -- (see http://prosody.im/doc/creating_accounts for info) -- Example: admins = { "user1@example.com", "user2@example.net" } admins = { "benutzername@meine-domain.de" }
öffentliche Registrierung
Wenn man den Server öffentlich betreiben und anderen die Registrierung per Client erlauben möchte, muss folgendes geändert werden:
allow_registration = true;
Multi-User Chat einrichten
In der Konfigurationsdatei ab ca. Zeile 126 (die **--** sind zu entfernen):
---Set up a MUC (multi-user chat) room server on conference.example.com: Component "conference.meine-domain.de" "Chat"
Firewall/Ports
Damit der Server einwandfrei funktioniert, müssen mindestens folgende TCP-Ports ungefiltert und erreichbar sein:
- 5222 eingehend, für Client-Verbindungen unverschlüsselt oder TLS-verschlüsselt
- 5223 eingehend, für SSL-verschlüsselte Clientverbindungen (veraltet)
- 5269 ein- und ausgehend, für Verbindungen zu anderen Servern
- 5280 eingehend, für Client-Verbindungen über HTTP-Polling (nützlich für Webapplikationen)