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 (the daemon that talks to the MTA and does the work) and opendkim-tools (for creating new keys and lots of other things).

apt-get install prosody

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" }

Setup SSL certificates (see the Lets Encrypt page for the easiest and quickest way of doing this) and then configure the ssl section with something similar to the following:

ssl = {
        key = "/etc/letsencrypt/live/www.example.com-0001/privkey.pem";
        certificate = "/etc/letsencrypt/live/www.example.com-0001/fullchain.pem";
}

Setup "virtualhosts" for domains that you use (make sure you have a valid SSL certificate for each one):

VirtualHost "example.com"
VirtualHost "example.net"

Restart the daemon:

/etc/init.d/prosody restart

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 "lua5.1 /usr/bin/prosody" (IE lua5.1 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 JabberClients page lists some XMPP clients that can talk to Prosody.

Spam

Prosody has no built-in anti-spam or blacklist measures. The Prosody modules repository has some blacklist modules. But if you just want to block domains that send spam the easiest way is to add virtualhost entries for them:

VirtualHost "spam.example.com"