rewrite readme

This commit is contained in:
Matthew Hodgson
2024-11-08 20:24:10 +00:00
parent 485a2cf5fd
commit 94de667e98

View File

@@ -1,15 +1,31 @@
# element-docker-demo
WIP of a docker-compose Matrix 2.0 stack to show off EW + EC + EX + Synapse + MAS + livekit.
element-docker-demo is a minimal example of how to rapidly stand up a Matrix 2.0 stack using Docker, featuring:
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.
* Element Web
* Element Call
* Synapse
* Matrix Authentication Service
* LiveKit
* Postgres
* nginx + letsencrypt / mkcert for TLS.
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).
This is **not** intended for serious production usage, but instead as a tool for curious sysadmins to easily experiment
with Matrix 2.0 in a simple docker compose environment. As of Nov 2024, it's considered beta.
In particular, this has:
* No support or maintenance guarantees whatsoever
* No high availability, horizontal scalability, elastic scaling, clustering, backup etc.
* No admin interface
* No UDP traffic or TURN for LiveKit (all traffic is tunnelled over TCP for simplicity)
* No integration manager, integrations, or identity lookup server
For production-grade Matrix from Element, please see https://element.io/server-suite (ESS).
## To run
Install [Docker Compose](https://docs.docker.com/compose/install/). Then:
```
./setup.sh
docker compose up
@@ -17,6 +33,15 @@ docker compose up
![Screenshot 2024-11-04 at 03 05 28](https://github.com/user-attachments/assets/c3127f3c-ae0c-43cb-bfe9-88f4be56e0af)
## To configure
Check the .env file, or customise the templates in `/data-templates` and then `docker compose down && docker compose up -d`.
In particular, you may wish to:
* Point at your own SMTP server rather than mailhog
* Use your own reverse proxy rather than the provided nginx
* Use your own database cluster
## To admin
```
@@ -24,23 +49,9 @@ docker compose up
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
* [x] sort out the networking
* [x] make nginx do something useful when running on a local workstation
* [x] hook up letsencrypt to nginx properly
* [x] hook up livekit properly
* [x] make it work