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

Prosody on wikipedia


CategorySoftware CategoryNetwork CategoryXmpp