# This compose file is compatible with Compose itself, it might need some # adjustments to run properly with stack. version: '3' services: synapse: # Use docker.io/matrixdotorg/synapse:latest if you want the official image (without the Mjolnir module). image: docker pull ghcr.io/tommytran732/synapse:latest # Since synapse does not retry to connect to the database, restart upon # failure restart: unless-stopped container_name: synapse # Comment out the next line if you are using the official image. user: "991:991" # 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: - ./files:/data:Z # Uncomment if you want to install appservices. The registration files should go into ./bridges, and in your homeserver.yaml specify that it should install the appservices in /bridges. # - ./bridges:/bridges:Z depends_on: - postgres networks: - matrix security_opt: - no-new-privileges:true cap_drop: - ALL postgres: image: docker.io/postgres:alpine restart: unless-stopped container_name: postgres # Change that password, of course! environment: - POSTGRES_USER=synapse - POSTGRES_PASSWORD=changeme - POSTGRES_INITDB_ARGS=--encoding=UTF-8 --lc-collate=C --lc-ctype=C volumes: - ./schemas:/var/lib/postgresql/data:Z networks: - matrix element: image: vectorim/element-web:latest restart: unless-stopped container_name: element volumes: - ./element-config.json:/app/config.json:Z networks: - matrix security_opt: - no-new-privileges:true cap_drop: - ALL cap_add: - CHOWN - SETGID - SETUID swag: image: ghcr.io/linuxserver/swag restart: unless-stopped container_name: swag cap_add: - NET_ADMIN environment: - PUID=1000 - PGID=1000 - URL=yourdomain.tld - SUBDOMAINS=synapse,element - VALIDATION=http - EMAIL=changeme@yourdomain.tld - ONLY_SUBDOMAINS=true volumes: - ./swag:/config:Z - /etc/localtime:/etc/localtime:ro ports: - 443:443 - 80:80 networks: - matrix pantalaimon: image: matrixdotorg/pantalaimon:latest container_name: pantalaimon restart: unless-stopped volumes: - ./pantalaimon:/data:Z depends_on: - synapse networks: - matrix security_opt: - no-new-privileges:true cap_drop: - ALL mjolnir: image: matrixdotorg/mjolnir:latest container_name: mjolnir restart: unless-stopped volumes: - ./mjolnir:/data:Z depends_on: - pantalaimon networks: - matrix security_opt: - no-new-privileges:true cap_drop: - ALL networks: matrix: