From Gentoo Wiki
Jump to:navigation Jump to:search
Warning, this page is a work in progress by MalakymR (talk | contribs). Treat its contents with caution.

Prosody is a modern XMPP communication server. It aims to be easy to set up and configure, and efficient with system resources. Additionally, for developers it aims to be easy to extend and give a flexible system on which to rapidly develop added functionality, or prototype new protocols.


USE flags

USE flags for net-im/prosody Prosody is a modern XMPP communication server

icu Enable ICU (Internationalization Components for Unicode) support, using dev-libs/icu
idn Enable support for Internationalized Domain Names
ldap Add LDAP support (Lightweight Directory Access Protocol)
libevent Use libevent for event handling
mysql Add mySQL Database support
postgres Add support for the postgresql database
selinux !!internal use only!! Security Enhanced Linux support, this must be set by the selinux profile or breakage will occur
sqlite Add support for sqlite - embedded sql database
ssl Add support for SSL/TLS connections (Secure Socket Layer / Transport Layer Security)
test Enable dependencies and/or preparations necessary to run tests (usually controlled by FEATURES=test but can be toggled independently)
zlib Add support for zlib compression


Install the software on the system.

root #emerge --ask net-im/prosody



By default prosody will allow in-band registration, it is important we turn this off unless required, otherwise the server may be used as a spam relay.

FILE /etc/jabber/prosody.cfg.lua
allow_registration = false;
--VirtualHost "localhost"
VirtualHost ""
        -- enabled = false -- Remove this line to enable this host


root #/etc/init.d/prosody start
root #rc-update add prosody default

Adding Users

root #prosodyctl adduser username@domain.tld
Enter new password:
Retype new password:

Add a second user for testing

root #prosodyctl adduser username2

This will produce a working setup that will allow communication between clients on this server only. Unless SRV records are setup client software will require the hostname of the server i.e.

Client Software

There are many clients to choose from, with varying levels of support for XEP modules.

  • Conversations - Requires SSL so will not work until a certificate is setup (self-signed okay)
  • Xabber - Android (missing file transfer modules)
  • net-im/pidgin - GUI Windows/Linux/Android
  • - curses based
  • net-irc/xmpp-irssi - Addon for curses based net-irc/irssi