forked from moved to arch base and always latest stable prosody version
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Rob Loranger 5b175dc35f
event is in aur, maybe later
5 months ago
.github Create Dependabot config file (#15) 2 years ago
Dockerfile event is in aur, maybe later 5 months ago
LICENSE Initial commit 4 years ago update dockerhub link 8 months ago Initial commit 4 years ago
prosody.cfg.lua enable limits by default 5 months ago


On DockerHub

What is Prosody?

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.


# docker run -d \
    --name prosody
    -p 5222:5222 \
    -p 5269:5269 \
    -e LOCAL=romeo \
    -e DOMAIN=shakespeare.lit \
    -e PASSWORD=juliet4ever \
    -v /data/prosody/vhosts:/etc/prosody/conf.d \
    -v /data/prosody/modules:/usr/local/lib/prosody/modules \


The default Prosody configuration file can be overwritten entirely (/etc/prosody/prosody.cfg.lua) or extended by adding configuration snippets into the /etc/prosody/conf.d/ directory.

Virtual hosts

New domains can be added by placing configuration snippets with the virtual host definitions to /etc/prosody/conf.d/.i

Minimal example:

# cat vhosts/example-org.cfg.lua
VirtualHost ""
    enable = true
# docker run -d \
    --name prosody
    -p 5222:5222 \
    -p 5269:5269 \
    -v /data/prosody/vhosts:/etc/prosody/conf.d \

Creating a user

This Docker image supports creating a single user on startup by providing the following environment variables:

  • LOCAL: local part of the JID
  • DOMAIN: domain part of the JID
  • PASSWORD: plaintext password of the user

For example, the environment variables LOCAL=foobar,, PASSWORD=supersecret would create a user named "" with the password "supersecret".

Other than that, users can be created using prosodyctl in a running container:

# docker exec -it prosody prosodyctl register foobar supersecret

Prosody modules

Additional modules, e. g. from the Prosody Community Modules, can be added by putting the Lua files into the /usr/local/lib/prosody/modules/ directory.

Persistent data

Prosody only writes data into two locations, which have to be persisted in Docker volumes to survive a container restart:

  • /var/lib/prosody/: The Prosody data_path
  • /var/run/prosody/ The Prosody pidfile.


This Docker image is partly based on joschi/prosody-alpine Docker image.


This Docker image is licensed under the MIT license, see LICENSE.