commit 99e4b3e19a5039e52bea7a88922a6a52984f0c67
Author: minerva-jupiter <contact@minervajuppiter.net>
Date: Sun, 9 Nov 2025 04:17:08 +0000
init commit
Diffstat:
1 file changed, 67 insertions(+), 0 deletions(-)
diff --git a/docker-compose.yaml b/docker-compose.yaml
@@ -0,0 +1,67 @@
+# This compose file is compatible with Compose itself, it might need some
+# adjustments to run properly with stack.
+
+version: '3'
+
+services:
+
+ synapse:
+ build:
+ context: ../..
+ dockerfile: docker/Dockerfile
+ image: docker.io/matrixdotorg/synapse:latest
+ # Since synapse does not retry to connect to the database, restart upon
+ # failure
+ restart: unless-stopped
+ # See the readme for a full documentation of the environment settings
+ # NOTE: You must edit homeserver.yaml to use postgres, it defaults to sqlite
+ environment:
+ - SYNAPSE_CONFIG_PATH=/data/homeserver.yaml
+ volumes:
+ # You may either store all the files in a local folder
+ - ./files:/data
+ # .. or you may split this between different storage points
+ # - ./files:/data
+ # - /path/to/ssd:/data/uploads
+ # - /path/to/large_hdd:/data/media
+ depends_on:
+ - db
+ # In order to expose Synapse, remove one of the following, you might for
+ # instance expose the TLS port directly:
+ ports:
+ - 8448:8448/tcp
+ - 8008:8008/tcp
+ # ... or use a reverse proxy, here is an example for traefik:
+# labels:
+# # The following lines are valid for Traefik version 1.x:
+# - traefik.enable=true
+# - traefik.frontend.rule=Host:my.matrix.Host
+# - traefik.port=8008
+# # Alternatively, for Traefik version 2.0:
+# - traefik.enable=true
+# - traefik.http.routers.http-synapse.entryPoints=http
+# - traefik.http.routers.http-synapse.rule=Host(`my.matrix.host`)
+# - traefik.http.middlewares.https_redirect.redirectscheme.scheme=https
+# - traefik.http.middlewares.https_redirect.redirectscheme.permanent=true
+# - traefik.http.routers.http-synapse.middlewares=https_redirect
+# - traefik.http.routers.https-synapse.entryPoints=https
+# - traefik.http.routers.https-synapse.rule=Host(`my.matrix.host`)
+# - traefik.http.routers.https-synapse.service=synapse
+# - traefik.http.routers.https-synapse.tls=true
+# - traefik.http.services.synapse.loadbalancer.server.port=8008
+# - traefik.http.routers.https-synapse.tls.certResolver=le-ssl
+
+ db:
+ image: docker.io/postgres:15-alpine
+ # Change that password, of course!
+ environment:
+ - POSTGRES_USER=synapse_user
+ - POSTGRES_PASSWORD=password
+ # ensure the database gets created correctly
+ # https://element-hq.github.io/synapse/latest/postgres.html#set-up-database
+ - POSTGRES_INITDB_ARGS=--encoding=UTF-8 --lc-collate=C --lc-ctype=C
+ volumes:
+ # You may store the database tables in a local folder..
+ - ./schemas:/var/lib/postgresql/data
+ # .. or store them on some high performance storage for better results
+ # - /path/to/ssd/storage:/var/lib/postgresql/data