services: element-call-auth-service: image: ghcr.io/element-hq/lk-jwt-service:0.3.0 container_name: element-call-jwt hostname: auth-server environment: - LK_JWT_PORT=8080 - LIVEKIT_URL=https://${LIVEKIT_DOMAIN}/livekit/sfu - LIVEKIT_KEY=devkey - LIVEKIT_SECRET=${LIVEKIT_SECRET_KEY} - LIVEKIT_FULL_ACCESS_HOMESERVERS=${MATRIX_DOMAIN} restart: always ports: - 8071:8080 element-call-livekit: image: livekit/livekit-server:v1.9.3 command: --config /etc/livekit.yaml ports: - "7880:7880/tcp" - "7881:7881/tcp" - "7882:7882/tcp" - "50100-50200:50100-50200/udp" restart: always volumes: - ${LIVEKIT_CONFIG_DIR}/config.yaml:/etc/livekit.yaml:ro mautrix-signal: container_name: mautrix-signal image: dock.mau.dev/mautrix/signal:v0.2511.0 restart: always volumes: - ${MAUTRIX_SIGNAL_DATA_DIR}:/data depends_on: shared-postgres: condition: service_healthy environment: # Configure database connection for mautrix-signal MAUTRIX_SIGNAL_DATABASE_TYPE: postgres MAUTRIX_SIGNAL_DATABASE_URI: postgresql://${MAUTRIX_SIGNAL_POSTGRES_USER}:${MAUTRIX_SIGNAL_POSTGRES_PASSWORD}@shared-postgres:5432/${MAUTRIX_SIGNAL_POSTGRES_DB}?sslmode=disable networks: - postgres-network mautrix-whatsapp: container_name: mautrix-whatsapp image: dock.mau.dev/mautrix/whatsapp:v0.2511.0 restart: always volumes: - ${MAUTRIX_WHATSAPP_DATA_DIR}:/data depends_on: shared-postgres: condition: service_healthy environment: # Configure database connection for mautrix-whatsapp MAUTRIX_WHATSAPP_DATABASE_TYPE: postgres MAUTRIX_WHATSAPP_DATABASE_URI: postgresql://${MAUTRIX_WHATSAPP_POSTGRES_USER}:${MAUTRIX_WHATSAPP_POSTGRES_PASSWORD}@shared-postgres:5432/${MAUTRIX_WHATSAPP_POSTGRES_DB}?sslmode=disable networks: - postgres-network mas: image: ghcr.io/element-hq/matrix-authentication-service:1.6.0 restart: always working_dir: /config volumes: - ${MAS_CONFIG_DIR}:/config environment: MAS_CONFIG: /config/config.yaml # Database connection will be configured in the MAS config file MAS_DATABASE_URL: postgresql://${MAS_POSTGRES_USER}:${MAS_POSTGRES_PASSWORD}@shared-postgres:5432/${MAS_POSTGRES_DB}?sslmode=disable ports: - "8090:8090" depends_on: shared-postgres: condition: service_healthy networks: - postgres-network synapse: container_name: synapse image: matrixdotorg/synapse:v1.142.1 restart: always volumes: - ${SYNAPSE_CONFIG_DIR}:/data ports: - "8008:8008" environment: # Synapse database connection will be configured in homeserver.yaml SYNAPSE_DATABASE_HOST: shared-postgres SYNAPSE_DATABASE_PORT: 5432 SYNAPSE_DATABASE_USER: ${SYNAPSE_POSTGRES_USER} SYNAPSE_DATABASE_PASSWORD: ${SYNAPSE_POSTGRES_PASSWORD} SYNAPSE_DATABASE_NAME: ${SYNAPSE_POSTGRES_DB} depends_on: shared-postgres: condition: service_healthy mas: condition: service_started mautrix-whatsapp: condition: service_started networks: - postgres-network networks: postgres-network: external: true