services: synapse: image: matrixdotorg/synapse:latest container_name: matrix_synapse restart: unless-stopped ports: - "${SYNAPSE_PORT:-8008}:8008" volumes: - ./data:/data environment: - SYNAPSE_CONFIG_PATH=/data/homeserver.yaml - UID=1000 - GID=1000 - TZ=Europe/Berlin depends_on: - synapse_db synapse_db: image: postgres:16-alpine container_name: matrix_synapse_db restart: unless-stopped environment: POSTGRES_DB: ${POSTGRES_DB:-synapse} POSTGRES_USER: ${POSTGRES_USER:-synapse} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} PGDATA: /var/lib/postgresql/data/pgdata POSTGRES_INITDB_ARGS: "--locale=C --encoding=UTF8" volumes: - ./postgres_data:/var/lib/postgresql/data element: image: vectorim/element-web:latest container_name: matrix_element restart: unless-stopped ports: - "${ELEMENT_PORT:-8088}:80" volumes: - ./element-config.json:/app/config.json whatsapp: image: dock.mau.dev/mautrix/whatsapp:latest container_name: matrix_whatsapp restart: unless-stopped depends_on: - synapse volumes: - ./data/whatsapp:/data environment: - TZ=Europe/Berlin