Skip to content

Docker Setup

Zendrite provides an example Docker compose file in build/docker/docker-compose.yaml, which needs some preparation to start successfully. Please note that this compose file only has Postgres as a dependency, and you need to configure a reverse proxy.

Docker images are available from:

First we’ll generate a private key, which is used to sign events. The following will create one in ./config:

mkdir -p ./config
docker run --rm --entrypoint="/usr/bin/generate-keys" \
  -v $(pwd)/config:/mnt \
  pats22/zendrite:latest \
  -private-key /mnt/matrix_key.pem

(NOTE: This only needs to be executed once, as you otherwise overwrite the key)

Similar to the command above, we can generate a config to be used, which will use the correct paths as specified in the example docker-compose file. Change server to your domain and db according to your changes to the docker-compose file (services.postgres.environment values):

mkdir -p ./config
docker run --rm --entrypoint="/bin/sh" \
  -v $(pwd)/config:/mnt \
  pats22/zendrite:latest \
  -c "/usr/bin/generate-config \
    -dir /var/zendrite/ \
    -db postgres://zendrite:itsasecret@postgres/zendrite?sslmode=disable \
    -server YourDomainHere > /mnt/zendrite.yaml"

You can then change config/zendrite.yaml to your liking.

Once you’re done changing the config, you can now start up Zendrite with

docker compose up