services: postgres: image: postgres:16 restart: unless-stopped networks: default: ipv4_address: 10.10.10.2 volumes: - matrix_postgres_data:/var/lib/postgresql/data environment: - POSTGRES_DB=synapse - POSTGRES_USER=synapse - POSTGRES_PASSWORD=STRONGPASSWORD123 ports: - "5432:5432" mas-postgres: image: postgres:16 restart: unless-stopped networks: default: ipv4_address: 10.10.10.14 volumes: - mas_postgres_data:/var/lib/postgresql/data environment: - POSTGRES_DB=mas - POSTGRES_USER=mas_user - POSTGRES_PASSWORD=mas_password element: image: vectorim/element-web:latest restart: unless-stopped volumes: - ./element-config.json:/app/config.json:ro networks: default: ipv4_address: 10.10.10.3 ports: - "8081:80" synapse: image: matrixdotorg/synapse:latest restart: unless-stopped networks: default: ipv4_address: 10.10.10.4 volumes: - ./synapse_data:/data depends_on: - postgres user: "0:0" environment: - UID=1000 - GID=1000 # synapse-admin removed 2026-05-24 — replaced by custom admin panel (issue 0163) # synapse-admin: # image: awesometechnologies/synapse-admin:latest # restart: unless-stopped # networks: # default: # ipv4_address: 10.10.10.5 # ports: # - "8082:80" # depends_on: # - synapse mas: image: ghcr.io/element-hq/matrix-authentication-service:latest restart: unless-stopped depends_on: - mas-postgres - synapse networks: default: ipv4_address: 10.10.10.15 volumes: - ./mas/config.yaml:/etc/mas/config.yaml:ro - ./mas/secrets:/run/mas/secrets:ro - ./mas/keys:/run/mas/keys:ro environment: - MAS_CONFIG=/etc/mas/config.yaml command: ["server", "--config", "/etc/mas/config.yaml"] ports: - "8083:8080" wellknown: image: nginx:alpine restart: unless-stopped networks: default: ipv4_address: 10.10.10.12 volumes: - ./configs/well-known:/var/www/well-known:ro - ./configs/nginx/well-known.conf:/etc/nginx/conf.d/default.conf:ro element-call-web: image: nginx:alpine restart: unless-stopped networks: default: ipv4_address: 10.10.10.13 volumes: - ./element-call/dist:/usr/share/nginx/html:ro volumes: matrix_postgres_data: external: true name: matrix_postgres_data mas_postgres_data: driver: local networks: default: name: matrix_net external: true