0.9.0 Release Notes

Released: 2013-08-20

⚠️ This release requires configuration changes to some existing Prosody installations, and breaks compatibility with some modules. Please read the section on upgrading below.

A summary of changes in this release:

  • IPv6 support for c2s, s2s and all other services (e.g. HTTP)
  • Server-to-server authentication using certificates (SASL EXTERNAL)
  • A new HTTP subsystem, supporting virtual hosts, and fully reloadable modules
  • Client and server connections are now handled by modules: mod_c2s, mod_s2s
  • mod_pubsub: Basic pubsub service (some features not yet implemented)
  • prosodyctl about - show information about a Prosody installation
  • prosodyctl cert - command to generate XMPP certificates and CSRs
  • Many very nice enhancements to our module API
  • MUC: Configurable per-room history length
  • MUC: Plugins can now extend the room configuration form


Module compatibility

Prosody 0.9 breaks compatibility with some modules (something we very rarely do), by removing some APIs that have been replaced. All modules in prosody-modules should be working if you have the latest versions. Please let us know if you have any problems.

We are also happy to help with the porting of other modules, it is usually quite straightforward.

The APIs that have been removed are:

  • net.connlisteners (used for opening ports), use the new API for network services.
  • net.httpserver (used by all modules accepting HTTP requests), use the new HTTP API.

Configuration changes

Due to the above, we have changed (for the better!) our config format for some things. If you encounter any issues not listed here then please, PLEASE let us know!

We want to help make the upgrade as smooth as possible for everyone, but we need your help to report issues, even if you manage to work them out yourself.

HTTP configuration

All HTTP modules that had config options with names ending in '_ports' are replaced by new HTTP configuration. There are only two options for controlling HTTP ports now, http_ports and https_ports. These default to { 5280 } and { 5281 } respectively, and all HTTP modules can be accessed via both.

Also note that Prosody no longer ignores virtual hosts specified in requests! This could lead to some setups no longer working, especially where reverse proxies (such as an external web server forwarding requests) are involved. See our documentation on HTTP virtual hosts for more information.

Finally, mod_httpserver was renamed to mod_http_files to clarify that it is for serving static files only, and is unrelated to other Prosody HTTP services.

Port multiplexing

If you are using the ports or ssl_ports options, you now need to add "net_multiplex" to modules_enabled in your config file.


The disallow_s2s option has been deprecated, and in particular it no longer affects anonymous users, who are still prevented from sending stanzas to remote servers by default. To re-enable access to remote servers for anonymous users see Allowing anonymous users access to remote servers.


In previous versions mod_proxy65 allowed ports to be specified per-host. As of 0.9 this is no longer possible, proxy65_ports may only be set in the global section of the config file, like all other network and port configuration.


For packages, please see our download page.


You can grab a tarball of prosody-0.9.0.tar.gz (OpenPGP signed), or grab the latest 0.9 source from Mercurial with:

hg clone https://hg.prosody.im/0.9 prosody-0.9

More information on dealing with Prosody's source can be found at these links: