--- # Matrix # Privacy focused messaging platform # Created by matrix.org # ↳ https://github.com/matrix-org services: synapse: image: docker.io/matrixdotorg/synapse:latest container_name: matrix-synapse restart: unless-stopped depends_on: - synapse_db networks: - proxy environment: SYNAPSE_CONFIG_PATH: "/data/homeserver.yaml" volumes: - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro - synapse-data:/data synapse_db: image: docker.io/postgres:17.5 container_name: matrix-db restart: unless-stopped networks: - proxy environment: POSTGRES_USER: "synapse" POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} POSTGRES_INITDB_ARGS: "--encoding=UTF-8 --lc-collate=C --lc-ctype=C" volumes: - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro - synapse-db:/var/lib/postgresql/data nginx: image: nginx:stable container_name: matrix-web restart: "always" networks: - proxy # ports: # - 80:80 # - 443:443 volumes: - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro - matrix-nginx:/etc/nginx/conf.d coturn: image: instrumentisto/coturn:latest container_name: matrix-coturn restart: unless-stopped networks: - proxy # ports: # - 49160-49200:49160-49200/udp # - 3478:3478 # - 5349:5349 volumes: - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro - matrix-coturn:/etc/coturn element: image: vectorim/element-web:latest container_name: matrix-element restart: unless-stopped networks: - proxy volumes: - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro - matrix-element:/app networks: proxy: external: true volumes: synapse-data: driver: local synapse-db: driver: local matrix-nginx: driver: local matrix-element: driver: local matrix-coturn: driver: local # Documentation available at https://matrix.org/docs/chat_basics/matrix-for-im/