version: '2.4' services: db: image: postgres:16-alpine container_name: matrix-db restart: unless-stopped volumes: - ./postgres-data:/var/lib/postgresql/data environment: POSTGRES_DB: synapse POSTGRES_USER: synapse POSTGRES_PASSWORD: SynapseDB_2026_secure POSTGRES_INITDB_ARGS: "--encoding=UTF-8 --lc-collate=C --lc-ctype=C" healthcheck: test: ["CMD-SHELL", "pg_isready -U synapse"] interval: 5s timeout: 5s retries: 5 networks: - matrix synapse: image: matrixdotorg/synapse:latest container_name: matrix-synapse restart: unless-stopped volumes: - ./synapse-data:/data ports: - "127.0.0.1:8008:8008" depends_on: db: condition: service_healthy environment: TZ: Europe/Moscow networks: - matrix element: image: vectorim/element-web:latest container_name: matrix-element restart: unless-stopped volumes: - ./element-config.json:/app/config.json:ro ports: - "127.0.0.1:3082:80" networks: - matrix networks: matrix: driver: bridge