Differences between revisions 3 and 4
Revision 3 as of 2017-04-30 07:38:00
Size: 2097
Editor: ?Russell Coker
Comment: Link to JabberClients page instead of InstantMessaging
Revision 4 as of 2017-04-30 09:25:20
Size: 2096
Editor: ?Russell Coker
Comment: Fixed a copy/paste error
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
= Installing OpenDKIM = = Installing Prosody =

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.


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"