An open API service indexing awesome lists of open source software.

https://github.com/opusvl/prosody-docker

Dockerfile to build a Prosody XMPP server container image.
https://github.com/opusvl/prosody-docker

docker prosody xmpp

Last synced: 4 months ago
JSON representation

Dockerfile to build a Prosody XMPP server container image.

Awesome Lists containing this project

README

          

# prosody-docker
Dockerfile to build a Prosody XMPP server container image.

# Configuration

The base Prosody image does not come with any preconfigured virtual hosts other than `localhost`. Users are expected to write their own virtual host and component configuration files and then mount them into the container at `/etc/prosody/vhost.d/` and `/etc/prosody/cmpt.d/` respectively. There are however a number of environment variables available to modify the global configuration as desired, these are documented below.

## Environment

### `PROSODY_LOG_LEVEL`
Default value: `info`

Determines which log level to use for the console output, possible values are `info`, `warn`, `error` and `debug`.

### `PROSODY_MODULES_AVAILABLE`
Default value: `none`
Example: `-e PROSODY_MODULES_AVAILABLE='lastlog firewall swedishchef'`

A space-separated list of modules to symlink from `/opt/prosody-modules-available/`
to `/opt/prosody-modules-enabled/`, does not enable them by default however. You then
need to specify within `PROSODY_MODULES_ENABLED` if you'd like them loaded globally.

### `PROSODY_MODULES_ENABLED`
Default value: `none`
Example: `-e PROSODY_MODULES_ENABLED='websocket server_contact_info'`

A space-separated list of modules to enable within the global modules_enabled configurartion
block. This variable will also attempt to deduplicate any modules passed through.

### `PROSODY_MODULES_DISABLED`
Default value: `none`
Example: `-e PROSODY_MODULES_DISABLED='s2s carbons'`

A space-separated list of modules to disable, if they would be loaded
automatically by Prosody.

### `PROSODY_DEFAULT_STORAGE`
Default value: `internal`
Example: `-e PROSODY_DEFAULT_STORAGE='sql'`

### `PROSODY_STORAGE_`
Default value: `none`
Example: `-e PROSODY_STORAGE_ACCOUNTS='sql' -e PROSODY_STORAGE_ARCHIVE='sql'`

A dynamic variable used to construct the `storage` array within the main
Prosody configuration file. Allows for extremely granular control of your Prosody
data stores.

### `PROSODY_NETWORK_BACKEND`
Default value: `"epoll"`

### `PROSODY_ALLOW_REGISTRATION`
Default value: `false`

### `PROSODY_C2S_REQUIRE_ENCRYPTION`
Default value: `true`

### `PROSODY_S2S_REQUIRE_ENCRYPTION`
Default value: `true`

### `PROSODY_S2S_SECURE_AUTH`
Default value: `false`

### `PROSODY_S2S_INSECURE_DOMAINS`
Default value: `none`

A space-separated list of that will not be required to authenticate
using certificates.

### `PROSODY_S2S_SECURE_DOMAINS`
Default value: `none`

A space-separated list of domains which still require valid certificates
even if you leave `s2s_secure_auth` disabled.

## Database Storage Mode

If either `PROSODY_DEFAULT_STORAGE` or any of the `PROSODY_STORAGE_` variables are set to `sql`, the [entrypoint script](https://github.com/OpusVL/prosody-docker/blob/master/entrypoint.pl#L131) will automatically detect this and make available the configuration options to allow for database connections as environment variables. The base image contains all three drivers needed to connect to PostgreSQL, MySQL or SQLite3 databases.

### `PROSODY_DB_DRIVER`
Default value: `PostgreSQL`

### `PROSODY_DB_NAME`
Default value: `prosody`

### `PROSODY_DB_HOST`
Default value: `postgresql`

### `PROSODY_DB_PORT`
Default value: `5432`

### `PROSODY_DB_USERNAME`
Default value: `prosody`

### `PROSODY_DB_PASSWORD`
Default value: `none` (will `die` if not set)