prosody - jbruechert/freetz.org GitHub Wiki
"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!
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
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
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";
}
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.
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]
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"
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/
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
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
Damit diese Änderung
beim Neustart erhalten bleibt müssen diese gespeichert werden:
modsave all
Prosody kann auch manuell gestartet werden mit:
prosodyctl start