7d6461dd3c
* Server key API (works for monolith but not for polylith yet) * Re-enable caching on server key API component * Groundwork for HTTP APIs for server key API * Hopefully implement HTTP for server key API * Simplify public key request marshalling from map keys * Update gomatrixserverlib * go mod tidy * Common -> internal * remove keyring.go * Update Docker Hub for server key API * YAML is funny about indentation * Wire in new server key API into hybrid monolith mode * Create maps * Route server key API endpoints on internal API mux * Fix server key API URLs * Add fetcher behaviour into server key API implementation * Return error if we failed to fetch some keys * Return results anyway * Move things about a bit * Remove unused code * Fix comments, don't use federation sender URL in polylith mode * Add server_key_api to sample config * Review comments * HTTP API to cache keys that have been requested * Overwrite server_key_api listen in monolith hybrid mode |
||
---|---|---|
.. | ||
config | ||
docker-compose.deps.yml | ||
docker-compose.monolith.yml | ||
docker-compose.polylith.yml | ||
Dockerfile | ||
Dockerfile.component | ||
images-build.sh | ||
images-push.sh | ||
README.md |
Docker Hub images
These are Docker Hub-friendly images for Dendrite.
Dockerfiles
The Dockerfile
builds the base image which contains all of the Dendrite
components. The Dockerfile.*
files take components 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.deps.yml
which runs the Postgres and Kafka prerequisitesdocker-compose.monolith.yml
which runs a monolith Dendrite deploymentdocker-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 (based on the sampledendrite-config.yaml
in thedocker/hub/config
folder in the Dendrite repositorymatrix_key.pem
server key, as generated usingcmd/generate-keys
server.crt
certificate fileserver.key
private key file for the above certificate
To generate keys:
go run github.com/matrix-org/dendrite/cmd/generate-keys \
--private-key=matrix_key.pem \
--tls-cert=server.crt \
--tls-key=server.key
Starting Dendrite
Once in place, start the dependencies:
docker-compose -f docker-compose.deps.yml up
Wait a few seconds for Kafka and Postgres to finish starting up, and then start a monolith:
docker-compose -f docker-compose.monolith.yml up
... or start the polylith components:
docker-compose -f docker-compose.polylith.yml up
Building the images
The docker/hub/images-build.sh
script will build all of the component images.
The docker/hub/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
.