mirror of
https://github.com/element-hq/element-docker-demo.git
synced 2026-01-25 06:26:58 +03:00
4a69cef1c7b423d33bd4fe1c48d70df982b22885
element-docker-demo
WIP of a docker-compose Matrix 2.0 stack to show off EW + EC + EX + Synapse + MAS + livekit.
Not remotely intended for serious production usage, but just to be the simplest possible way to get a hacker-friendly Matrix 2.0 stack up and running without requiring any k8s.
In future, ESS will support migrating from this (which should be trivial, in terms of copying the env vars and secrets into their ESS counterparts, and rehoming the postgres).
To run
# pick a domain name:
DOMAIN=shadowfax.local
# grab a TLS certificate for the server:
brew install mkcert || apt-get install mkcert
mkcert -install
mkcert $DOMAIN '*.'$DOMAIN
mkdir -p data/nginx/ssl
mv ${DOMAIN}+1.pem data/nginx/ssl/cert.pem
mv ${DOMAIN}+1-key.pem data/nginx/ssl/key.pem
cp "$(mkcert -CAROOT)"/rootCA.pem data/nginx/ssl
# make an .env to configure your environment
cp .env-sample .env
sed -ir s/example.com/$DOMAIN/ .env
docker compose up
To admin
# To register a user
docker compose exec mas mas-cli -c /data/config.yaml manage register-user
# if you change the OIDC clients in MAS:
docker compose exec mas mas-cli -c /data/config.yaml config sync --prune
Diagnostics
# check that OIDC is working - useful for debugging TLS problems
docker compose exec mas mas-cli -c /data/config.yaml doctor
Todo
- sort out the networking
- make nginx do something useful when running on a local workstation
- hook up letsencrypt to nginx properly
- hook up livekit properly
- make it work
Languages
Shell
98.7%
Dockerfile
1.3%