dendrite/build/docker
Sebastian Spaeth 1783496423
remove obsolete config entry "federation_certificates" (#2318)
* Remove all federation_certificates occurencs

This configuration value has not been used since 2019 apparently, and indeed
it is never really used in the code base. So remove all traces of it from
the various configuration files.

Also remove the unused variable FederationCertificatePaths

Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>

* setup/config/config_test.go: remove federation_sender config snippet

The federation_sender: section was folded into the federation_api some
time ago, and this seems to be the only leftover in the code base.
So remove it.
2022-04-04 17:31:41 +01:00
..
config remove obsolete config entry "federation_certificates" (#2318) 2022-04-04 17:31:41 +01:00
postgres Remove references to userapi_devices (fixes #2259) 2022-03-09 16:38:50 +00:00
DendriteJS.Dockerfile Fix DendriteJS dockerfile 2022-02-08 16:18:16 +00:00
docker-compose.monolith.yml Add NATS JetStream support (#1866) 2022-01-05 17:44:49 +00:00
docker-compose.polylith.yml Remove eduserver (#2306) 2022-03-29 14:14:35 +02:00
Dockerfile.monolith Upload Docker images for releases to both Docker Hub and GitHub Container Registry (#2299) 2022-03-24 15:22:06 +00:00
Dockerfile.polylith Upload Docker images for releases to both Docker Hub and GitHub Container Registry (#2299) 2022-03-24 15:22:06 +00:00
images-build.sh Update GHA Docker Hub builds 2021-01-18 12:24:23 +00:00
images-pull.sh Multi-personality polylith binary (#1552) 2020-10-20 16:11:24 +01:00
images-push.sh Multi-personality polylith binary (#1552) 2020-10-20 16:11:24 +01:00
README.md Add NATS JetStream support (#1866) 2022-01-05 17:44:49 +00:00

Docker images

These are Docker images for Dendrite!

They can be found on Docker Hub:

Dockerfiles

The Dockerfile builds the base image which contains all of the Dendrite components. The Dockerfile.component file takes the given component, as specified with --buildarg component= from the base image and produce smaller component-specific images, which are substantially smaller and do not contain the Go toolchain etc.

Compose files

There are three sample docker-compose files:

  • docker-compose.monolith.yml which runs a monolith Dendrite deployment
  • docker-compose.polylith.yml which runs a polylith Dendrite deployment

Configuration

The docker-compose files refer to the /etc/dendrite volume as where the runtime config should come from. The mounted folder must contain:

  • dendrite.yaml configuration file (from the Docker config folder sample in the build/docker/config folder of this repository.)
  • matrix_key.pem server key, as generated using cmd/generate-keys
  • server.crt certificate file
  • server.key private key file for the above certificate

To generate keys:

docker run --rm --entrypoint="" \
  -v $(pwd):/mnt \
  matrixdotorg/dendrite-monolith:latest \
  /usr/bin/generate-keys \
  -private-key /mnt/matrix_key.pem \
  -tls-cert /mnt/server.crt \
  -tls-key /mnt/server.key

The key files will now exist in your current working directory, and can be mounted into place.

Starting Dendrite as a monolith deployment

Create your config based on the dendrite.yaml configuration file in the build/docker/config folder of this repository.

Then start the deployment:

docker-compose -f docker-compose.monolith.yml up

Starting Dendrite as a polylith deployment

Create your config based on the dendrite-config.yaml configuration file in the build/docker/config folder of this repository.

Then start the deployment:

docker-compose -f docker-compose.polylith.yml up

Building the images

The build/docker/images-build.sh script will build the base image, followed by all of the component images.

The build/docker/images-push.sh script will push them to Docker Hub (subject to permissions).

If you wish to build and push your own images, rename matrixdotorg/dendrite to the name of another Docker Hub repository in images-build.sh and images-push.sh.