Creating accounts

The first thing you will normally want to do after installing Prosody is to create yourself (and possibly others) accounts, or allow them to create accounts.

There are multiple ways you can create accounts:

In-band registration

In-band registration in Jabber is a way for clients to ask the server to create an account. Obviously enabling such a protocol on the open internet can lead your server open to abuse, so in the default configuration registration is disabled.

To allow registration for a host, make sure mod_register is loaded (that you have "register" in modules_enabled) and add this line:

  allow_registration = true

It is possible to secure account registration a bit by restricting it to particular IP addresses, or limiting how often an IP address can register an account. These options are described on our configuration page.


On all platforms except for Windows (currently) Prosody has a command-line utility called prosodyctl. This can be used to add a user account like so:

 prosodyctl adduser

Prosody will then prompt you for a password, and you will be able to log into your account using your client.

For batch registration of accounts consider the 'prosodyctl register' command, which allows you to specify everything on one line:

 prosodyctl register me mypassword

Importing from ejabberd

Prosody has a tools to convert ejabberd database dumps to Prosody's own data format. These tools currently aren't supplied with any packages (we're working on it) but if you have the Prosody source package then you can do the following:

First, export data from ejabberd using:

sudo ejabberdctl dump ejabberd_dumpt.txt

Then, convert it using ejabberd2prosody.lua:

./tools/ejabberd2prosody.lua ejabberd_dump.txt

If you're using ejabberd with a MySQL backend, you may use ejabberdsql2prosody in the following way

./tools/ejabberdsql2prosody.lua filename.sql hostname

…where filename.sql is a MySQL dump created by e.g. "mysqldump db_name > filename.sql"

After running either tool, you may need to move the produced data into place, eg $PWD/data/var/lib/prosody.

⚠️ Note: If you get the 0.8 sources, you may need to cd into the tools directory first. This bug has been fixed in 0.9 and later.