Released: 2017-10-02


See our blog post for a full overview of the release features.

  • Rewritten SQL storage module with archive support
  • prosodyctl check
  • Statistics
  • Improved TLS configuration
  • Lua 5.2 support
  • mod_blocklist (XEP-0191)
  • mod_carbons (XEP-0280)
  • Pluggable connection timeout handling
  • mod_websocket (RFC 7395)
  • mod_mam (XEP-0313)

Note: Making packages for Prosody on your platform? We have a dedicated page of info for packagers!

Upgrade notes

There are some changes that users running previous versions of Prosody should be aware of:

mod_mam archive change

There are two versions of mod_mam available: a version in prosody-modules, and a version distributed with 0.10. The primary difference is that the version in prosody-modules supports older versions of XEP-0313 that some clients still use.

If you decide to move away from the prosody-modules version and use the 0.10 one, you need to be aware that the modules use different stores. There is currently no simple way to move the data from one store to another.

The prosody-modules version stores its data in "archive2", and the 0.10 version stores its data in "archive".

As a workaround, you can tell 0.10 to use "archive2" for storing the data instead:

    archive_store = "archive2" -- Use the same data store as prosody-modules mod_mam

Note: If you continue to use prosody-modules, no change is needed.

MySQL schema upgrade

On a number of platforms the MySQL table was created by Prosody with the wrong encoding. This caused unicode data to show incorrectly when using other applications with the same database as Prosody. This had no effect on Prosody, and Prosody is unaffected by the issue (storing and retrieving unicode data worked ok). However in this release Prosody will now insist that you fix the schema by running the following command:

    prosodyctl mod_storage_sql upgrade

Debian and Ubuntu dependency issues

If you encounter a dependency error when trying to install the 0.10 package, it is probably caused by old versions of lua-socket and lua-sec. The fix is very simple:

    apt install lua-socket lua-sec

And then install the 0.10 package again. If you still have problems, please let us know and we can help.


You may want to consider using our new automatic certificate configuration, or see our article on Let's Encrypt.


mod_privacy has been removed (XEP-0016: Privacy lists). It has been replaced by mod_blocklist, which implements XEP-0191, a simpler more modern protocol for blocking remote JIDs.

If you have mod_privacy in your config, an error will be logged at startup and mod_blocklist will be loaded automatically.

If you still need XEP-0016 functionality, please look at mod_privacy_lists from prosody-modules.


Due to performance and security concerns with this module, it is no longer bundled with Prosody. It is still available in prosody-modules as 'mod_compression_unsafe'.


mod_offline now uses archive storage for offline messages. If you are using the default internal storage driver then you don't need to do anything, since the data is compatible. However, if you for example use SQL storage then it will look for offline messages there, leaving those in the old file based store inaccessible.

You can restore the previous behavior with the following configuration:

-- storage = "sql" -- comment this out for now
default_storage = "sql"
storage = {
  offline = "internal";

The built-in migrator does unfortunately not support migrating this data yet, but the community module mod_migrate can be used for this.