aboutsummaryrefslogtreecommitdiffstats
path: root/terminaldweller.com/matrix/docker-compose.yml
diff options
context:
space:
mode:
Diffstat (limited to 'terminaldweller.com/matrix/docker-compose.yml')
-rw-r--r--terminaldweller.com/matrix/docker-compose.yml51
1 files changed, 51 insertions, 0 deletions
diff --git a/terminaldweller.com/matrix/docker-compose.yml b/terminaldweller.com/matrix/docker-compose.yml
new file mode 100644
index 0000000..66d692e
--- /dev/null
+++ b/terminaldweller.com/matrix/docker-compose.yml
@@ -0,0 +1,51 @@
+version: "3.4"
+services:
+ postgresql:
+ image: postgres:15.2-alpine
+ restart: unless-stopped
+ volumes:
+ - db-data:/var/lib/postgresql/data
+ environment:
+ - POSTGRES_PASSWORD= #pragma: allowlist secret
+ - POSTGRES_USER=synapse
+ - POSTGRES_INITDB_ARGS=--encoding=UTF-8 --lc-collate=C --lc-ctype=C
+ synapse:
+ image: matrixdotorg/synapse:v1.80.0
+ restart: unless-stopped
+ volumes:
+ - synapse-data:/data/
+ depends_on:
+ - postgresql
+ environment:
+ - SYNAPSE_CONFIG_PATH=/data/homeserver.yaml
+ labels:
+ - traefik.enable=true
+ - traefik.http.routers.synapse.entrypoints=websecure
+ - traefik.http.routers.synapse.rule=Host(`matrix.terminaldweller.com`)
+ - traefik.http.routers.synapse.tls=true
+ - traefik.http.routers.synapse.tls.certresolver=letls
+ traefik:
+ image: traefik:v2.9.9
+ restart: unless-stopped
+ command:
+ - "--api=true"
+ - "--providers.docker=true"
+ - "--providers.docker.exposedbydefault=false"
+ - "--entrypoints.web.address=:80"
+ - "--entrypoints.websecure.address=:443"
+ - "--certificatesresolvers.letls.acme.email=devi@terminaldweller.com"
+ - "--certificatesresolvers.letls.acme.storage=/certs/acme.json"
+ - "--certificatesresolvers.letls.acme.httpchallenge=true"
+ - "--certificatesresolvers.letls.acme.httpchallenge.entrypoint=web"
+ ports:
+ - "443:443"
+ - "80:80"
+ volumes:
+ - /var/run/docker.sock:/var/run/docker.sock:ro
+ - traefik_certs:/certs
+volumes:
+ db-data:
+ synapse-data:
+ traefik_certs:
+
+# https://matrix.org/docs/guides/understanding-synapse-hosting