123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- # 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
- # ... 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:12-alpine
- # Change that password, of course!
- environment:
- - POSTGRES_USER=synapse
- - POSTGRES_PASSWORD=changeme
- # ensure the database gets created correctly
- # https://matrix-org.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
|