My friends are open to leaving Discord which has finally given me a reason to look into Element/Matrix. I found the install instructions and am immediately put off. Is this it? No official docker compose? 😞
Forget about synapse and the “official” method. Install Continuwuity a matrix server written in rust, much much more efficient than synapse.
I took some notes while installing it here https://wiki.gardiol.org/doku.php?id=matrix%3Aconduwuit
I didn’t use docker but directly installation is very easy, it’s a single executable.
I’ll look into it, thanks.
I’m still in the information gathering phase. Do you know if the element client works with the continuwuity server? Is it as easy as entering the domain, user, and password in the client?
Any client should be compatible with any server, if both are fairly up to date. Though, I never found a client nor server that are actually fully feature complete. The closest to that are synapse and element
Yes both element and elementx and actually any matrix client. That’s the beauty of having standards
But its a pain because all clients from matrix. Org will push you to matrix. Org and need manual taps&clicks to select a different server when you sign up the first time. A bit annoying IMHO and maybe even fraudolent.
Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I’ve seen in this thread:
Fewer Letters More Letters CSAM Child Sexual Abuse Material Git Popular version control system, primarily for code HTTP Hypertext Transfer Protocol, the Web IP Internet Protocol LVM (Linux) Logical Volume Manager for filesystem mapping SSL Secure Sockets Layer, for transparent encryption TLS Transport Layer Security, supersedes SSL VPS Virtual Private Server (opposed to shared hosting) XMPP Extensible Messaging and Presence Protocol (‘Jabber’) for open instant messaging k8s Kubernetes container management package nginx Popular HTTP server
9 acronyms in this thread; the most compressed thread commented on today has 7 acronyms.
[Thread #85 for this comm, first seen 12th Feb 2026, 01:20] [FAQ] [Full list] [Contact] [Source code]
If you’re proficient it’s 30minutes
Something like this for server.
generate config
docker run -it --rm \ -v <your-data-path>:/data \ -e SYNAPSE_SERVER_NAME=<your-public-address-subdomain> \ -e SYNAPSE_REPORT_STATS=no \ matrixdotorg/synapse:v1.136.0 generaterun
docker run -d \ --restart=always \ --name synapse \ -e SYNAPSE_REPORT_STATS=no \ -v <your-data-path>:/data \ -p 8008:8008 matrixdotorg/synapse:v1.136.0register user
docker exec -ti synapse register_new_matrix_user http://localhost:8008/ -c /data/homeserver.yaml -u <username> -p <password> --exists-okProxy it using ex. openresty / nginx
location / { proxy_pass http://127.0.0.1:8008/; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-for $remote_addr; proxy_connect_timeout 600; proxy_read_timeout 86400; }For UI if you want element on your domain, download and unpack tar.gz from.
https://github.com/element-hq/element-web/releasesPoint this location to your proxy server ex. openresty / nginx
location / { root /opt/element-v1.11.109; index index.html; }Modify
config.jsoninside/opt/element-v1.11.109to point location to<your-public-address-subdomain>By default it’s using sqlite if you want postgres or other database then modify
homeserver.yamlto use postgresIf you like compose files: https://www.composerize.com/
docker run -it --rm -v <your-data-path>:/data -e SYNAPSE_SERVER_NAME=<your-public-address-subdomain> -e SYNAPSE_REPORT_STATS=no matrixdotorg/synapse:v1.136.0 generate:name: <your project name> services: synapse: stdin_open: true tty: true volumes: - <your-data-path>:/data environment: - SYNAPSE_SERVER_NAME=<your-public-address-subdomain> - SYNAPSE_REPORT_STATS=no image: matrixdotorg/synapse:v1.136.0 command: generatedocker run -d --restart=always --name synapse -e SYNAPSE_REPORT_STATS=no -v <your-data-path>:/data -p 8008:8008 matrixdotorg/synapse:v1.136.0:name: <your project name> services: synapse: restart: always container_name: synapse environment: - SYNAPSE_REPORT_STATS=no volumes: - <your-data-path>:/data ports: - 8008:8008 image: matrixdotorg/synapse:v1.136.0I don’t like compose files :)
How do you manage your containers?
I have a git repo with some directory convention and bash scripts. Ex stop is just
#!/bin/bash name=synapse docker stop $name docker rm $nameetc. depending on what actions I need to do against container I have bash script for that and if I need to perform same action against other container I just copy paste this file and change name variable. I pull this repo to my containers host and just type ./bin/synapse/stop and I stop synapse.
Hope that makes sense.
Have you considered replace the name with input from stdin? So instead of
name=synapseyou could doname=$1and have one script to use for all containers.



