Wiki:packages/prosody

Prosody IM

"Prosody ist ein flexibler Jabber/XMPP-Server, geschrieben in der Skriptsprache Lua. Die Ziele von Prosody sind einfache Bedienbarkeit und geringe Systemauslastung."

Dieses Paket ist in Arbeit!

Konfiguration

Zunächst kopieren wir uns die Beispielkonfiguration aus /var/mod/etc/:

cp /var/mod/etc/prosody.cfg.lua /var/tmp/flash/mod/prosody.cfg.lua

Diese können wir dann mit vi bearbeiten:

vi /var/tmp/flash/mod/prosody.cfg.lua

VirtualHost hinzufügen

Zunächst sollte man einen VirtualHost konfigurieren, dazu verändert man man die "example.com" in die gewünschte Domain und entfernt das enabled = false

VirtualHost "example.com"
        enabled = false -- Remove this line to enable this host

SSL verwenden

Wenn man SSL verwenden möchte, benötigt man eine Zertifikat und einen Schlüssel, diese kann man mit OpenSSL erstellen und auf ein externes Speichermedium (z.B. USB-Stick) auf die FritzBox übertragen.

Die Pfade dazu müssen in der prosody.cfg.lua entsprechend verändert werden:

ssl = {
        key = "/var/media/ftp/uStor01/certs/localhost.key";
                certificate = "/var/media/ftp/uStor01/certs/localhost.crt";
                }

Ins Internet freigeben

Damit der Prosodyserver auch im Internet verfügbar ist, muss man nun noch die entsprechenden Ports auf die FritzBox weiterleiten. Dazu fügt man in der AVM-Firewall die Einträge für den TCP-Port 5222 (für client-zu-server) und 5269 (server-zu-server) auf die IP der entsprechenden FritzBox (meist 0.0.0.0) hinzu.

Benutzer hinzufügen

Das Hinzufügen von Benutzern ist standardmäßig aus Sicherheitsgründen deaktiviert. Dies kann man in der prosody.lua.cfg temporär ändern, indem man false bei Allow registration auf true setzt. Danach kann man sich mit einem XMPP-Client registrieren.

Alternativ kann man mit der Shell Benutzer erstellen:

prosodyctl adduser [Benutzer]@[Domain]

POSIX aktivieren

Damit man prosody als Hintergrundprozess ausführen kann und damit man logging aktivieren kann, muss POSIX aktiviert werden.

Zunächst aktiviert man das Modul in der prosody.cfg.lua:

   modules_enabled = {
        -- andere Module
        "posix"; -- mod_posix aktivieren
    }

Zusätzlich wird noch ein pid-File benötigt, dazu fügen wir in der prosody.cfg.lua an:

pidfile = "/var/tmp/flash/mod/prosody.pid"

Daten extern speichern

Damit die Benutzerdateien nicht auf der FritzBox sondern auf einem externen Medium gespeichert werden, erstellt man eine symbolische Verlinkung:

ln -s /var/media/ftp/uStor01/prosody/data /var/tmp/flash/mod/prosody/

Benutzer hinzufügen

Damit prosody nicht mit root-Rechten geöffnet werden muss, wird ein anderer Benutzer benötigt. Diesen kann man mithilfe der Shell erstellen:

addgroup prosody
adduser -G prosody prosody
chown -R prosody:prosody /var/mod/home/prosody

Bei Systemstart ausführen

Wenn man die Daten nicht extern speichert, reicht es, wenn mit vi /tmp/flash/mod/rc.custom folgendes hinzufügt:

prosodyctl start

Wenn man die Daten extern speichert, sollte man in das Verzeichnis /var/tmp/flash/mod wechseln und dort die folgenden Dateien anlegen:

root@fritz:/var/tmp/flash/mod# vi rc.prosody
#!/bin/sh

start() {
        /usr/bin/prosodyctl start
}

stop() {
        /usr/bin/prosodyctl stop
}

case $1 in
        ""|start)
                start
                ;;
        stop)
                stop
                ;;
        *)
                echo "Usage: $0 [start|stop]" 1>&2
                exit 1
                ;;
esac

exit 0
root@fritz:/var/tmp/flash/mod# vi rc.external
#!/bin/sh
case $1 in
        load)
                ;;
        unload)
                sh /etc/init.d/rc.ngircd stop
                sh /etc/init.d/rc.prosody stop
                ;;
esac

eventadd 1 "Running custom rc.external done."

root@fritz:/var/tmp/flash/mod# vi /var/tmp/flash/onlinechanged-cgi
case "$1" in
 start)
   # Kommandos beim Start des Routers
   # ggf. sollten hier die Entraege von online) stehen
   ;;
 online)
   # Kommandos wenn der Router online geht (zB Zwangstrennung)
   #
      sleep 2;
      /var/tmp/flash/mod/rc.prosody start;
   ;;
 offline)
   # Kommandos wenn der Router offline geht (zB Zwangstrennung)
     /var/tmp/flash/mod/rc.prosody stop;
     sleep 2;
   ;;
esac

Änderungen speichern

/!\ Damit diese Änderung beim Neustart erhalten bleibt müssen diese gespeichert werden:

modsave all

Prosody ausführen

Prosody kann auch manuell gestartet werden mit:

prosodyctl start