Prosody is a Jabber (XMPP) server in Debian. It is easy to configure and uses text config files for everything.
Installing Prosody
Daemon Installation
Install the packages prosody and prosody-modules:
apt-get install prosody prosody-modules
Edit /etc/prosody/prosody.cfg.lua and firstly set the administrator address to be the XMPP address of the primary administrator.
admins = { "russell@example.com" }
For each domain that you want to serve, add "virtual hosts" (you will need a valid SSL certificate for each one):
VirtualHost "example.com" VirtualHost "example.net"
Next, obtain your SSL certificates (see the Lets Encrypt page for the easiest and quickest way of doing this) and then import them to Prosody using a command like:
prosodyctl --root cert import /etc/letsencrypt/live
Set this command to run as a renewal hook, or simply run it daily via cron or systemd timers. You can find some advice for this on the Prosody Let's Encrypt documentation.
Run a quick check that your configuration seems sensible:
prosodyctl check
If all looks good, it's time to restart Prosody to apply all your changes:
systemctl restart prosody
Add the administrative user:
prosodyctl adduser russell@example.com
Managing Prosody
The command prosodyctl is used for adding, removing, and changing passwords of users. See prosodyctl(1).
Configure your process monitoring system to make sure exactly one process matches "lua /usr/bin/prosody" (IE lua running the prosody program).
Testing Prosody
The package sendxmpp is very useful for testing an XMPP server and also for configuring scripts and network monitoring systems to send alerts via xmpp.
The XMPP page lists some applications that can connect to your Prosody account. Dino and Gajim are popular choices on desktop, poezio and profanity are popular terminal clients.
Spam
Like any popular communication network, it is possible to receive spam via XMPP.
Prosody does not come bundled with many tools to tackle spam. However, if you receive spam to your server then there are some things you can do. Begin by reviewing the advice on Prosody blog about XMPP anti-spam measures.
You can also contribute to the network's anti-spam effort by reporting spam you receive.
Blocking servers
As a last resort, you may consider blocking some servers entirely. The Prosody modules repository has some modules that can help with this, such as mod_firewall (also available in the 'prosody-modules' package). But one easy trick to block a remote domain is to just add VirtualHost entries for them:
VirtualHost "spam.example.com"
Debian-specific information
Upstream-specific information
Other information