Archived
1
0
Fork 0
This repository has been archived on 2024-01-27. You can view files and clone it, but cannot push or open issues or pull requests.
dockerfiles/prosody-0.11
2018-11-22 19:24:05 +01:00
..
assets prosody: Add mod_profile to example config 2018-11-22 19:12:11 +01:00
Dockerfile Rename prosody to prosody-0.11 2018-11-22 19:11:30 +01:00
README.md prosody: Change acme examples in README.MD 2018-11-22 19:24:05 +01:00

Prosody Docker image

Create an image for running prosody XMPP server version 0.11 http://prosody.im/ on Alpine Linux.

HINT: This is not an official image. Builds might not happen regularly.

You will need to configure a vhost inside the config volume (prosody.cfg.lua).

The certificate generation with prosodyctl does not work. However, certificates can be put into the config volume or be linked in from an other volume (like letsencrypt). I suggest acme.sh for communication with Letsencrypt. https://github.com/Neilpang/acme.sh/wiki/Run-acme.sh-in-docker You need to configure the certificates location inside prosodys config.

IPORTANT: You really should add TLS.

Usage

Start the container with volumes for config, database and maybe additional certificates. Do not forget to customize your configuration!

$ docker run -d \
    -p 5000:5000 \
    -p 5222:5222 \
    -p 5269:5269 \
    -p 5280:5280 \
    -p 5281:5281 \
    --restart always \
    --name prosody \
    -v /etc/localtime:/etc/localtime:ro \
    -v prosody-cfg:/usr/local/etc/prosody:ro \
    -v prosody-data:/usr/local/var/lib/prosody \
    elfrinjo/prosody

To create the first user, exec into the running container and use prosodyctl.

$ docker exec -ti prosody bash
/ $ prosodyctl adduser JID

To Create a certificate for you host:

$ docker pull neilpang/acme.sh
$ docker run --rm  -it \
    --volume prosody-acme:/acme.sh \
    --net=host \
    neilpang/acme.sh --issue  \
                      -d example.com \
                      -d conference.example.com \
                     --standalone

To renew the certificate:

$ docker pull neilpang/acme.sh
$ docker run --rm  -it \
    --volume prosody-acme:/acme.sh \
    --net=host \
    neilpang/acme.sh --cron --standalone
$ docker run --rm \
    -v prosody-acme:/acme.sh \
    -v prosody-cfg:/target \
    neilpang/acme.sh --install-cert \
                      -d example.com \
                     --key-file /target/certs/example.com/example.com.key \
                     --fullchain-file /target/certs/example.com/fullchain.cer