2022-06-08 11:57:05 +02:00
|
|
|
# Unified Complement image for Synapse
|
|
|
|
|
|
|
|
This is an image for testing Synapse with [the *Complement* integration test suite][complement].
|
|
|
|
It contains some insecure defaults that are only suitable for testing purposes,
|
|
|
|
so **please don't use this image for a production server**.
|
|
|
|
|
|
|
|
This multi-purpose image is built on top of `Dockerfile-workers` in the parent directory
|
|
|
|
and can be switched using environment variables between the following configurations:
|
|
|
|
|
2022-06-16 13:12:26 +02:00
|
|
|
- Monolithic Synapse with SQLite (default, or `SYNAPSE_COMPLEMENT_DATABASE=sqlite`)
|
2022-06-08 11:57:05 +02:00
|
|
|
- Monolithic Synapse with Postgres (`SYNAPSE_COMPLEMENT_DATABASE=postgres`)
|
|
|
|
- Workerised Synapse with Postgres (`SYNAPSE_COMPLEMENT_DATABASE=postgres` and `SYNAPSE_COMPLEMENT_USE_WORKERS=true`)
|
|
|
|
|
|
|
|
The image is self-contained; it contains an integrated Postgres, Redis and Nginx.
|
|
|
|
|
|
|
|
|
|
|
|
## How to get Complement to pass the environment variables through
|
|
|
|
|
|
|
|
To pass these environment variables, use [Complement's `COMPLEMENT_SHARE_ENV_PREFIX`][complementEnv]
|
|
|
|
variable to configure an environment prefix to pass through, then prefix the above options
|
|
|
|
with that prefix.
|
|
|
|
|
|
|
|
Example:
|
|
|
|
```
|
|
|
|
COMPLEMENT_SHARE_ENV_PREFIX=PASS_ PASS_SYNAPSE_COMPLEMENT_DATABASE=postgres
|
|
|
|
```
|
|
|
|
|
|
|
|
Consult `scripts-dev/complement.sh` in the repository root for a real example.
|
|
|
|
|
|
|
|
|
|
|
|
[complement]: https://github.com/matrix-org/complement
|
|
|
|
[complementEnv]: https://github.com/matrix-org/complement/pull/382
|
2024-02-20 18:14:50 +01:00
|
|
|
|
|
|
|
## How to modify homeserver.yaml for Complement tests
|
|
|
|
|
|
|
|
It's common for MSCs to be gated behind a feature flag like this:
|
|
|
|
```yaml
|
|
|
|
experimental_features:
|
|
|
|
faster_joins: true
|
|
|
|
```
|
|
|
|
To modify this for the Complement image, modify `./conf/workers-shared-extra.yaml.j2`. Despite the name,
|
|
|
|
this will affect non-worker mode as well. Remember to _rebuild_ the image (so don't use `-e` if using
|
|
|
|
`complement.sh`).
|