version: '3.1' services: synapse: image: matrixdotorg/synapse:latest restart: always logging: driver: journald volumes: - synapse_data:/data - ./homeserver.yaml:/data/homeserver.yaml:ro - ./{{synapse_domain}}.log.config:/data/{{synapse_domain}}.log.config:ro environment: - SYNAPSE_SERVER_NAME={{synapse_domain}} - SYNAPSE_REPORT_STATS=no ports: - "127.0.0.1:{{synapse_http_port}}:8008" depends_on: - database database: logging: driver: journald image: postgres:16 restart: unless-stopped volumes: - database:/var/lib/postgresql/data environment: - POSTGRES_DB=matrix - POSTGRES_USER=matrix - POSTGRES_PASSWORD={{matrix_database_password}} - POSTGRES_INITDB_ARGS=--encoding=UTF8 --locale=C healthcheck: test: ["CMD-SHELL", "pg_isready -U matrix"] interval: 10s timeout: 5s retries: 6 element: image: vectorim/element-web:latest restart: unless-stopped volumes: - ./element-config.json:/app/config.json ports: - "127.0.0.1:{{element_http_port}}:80" # bridges #mautrix-telegram: # container_name: mautrix-telegram # image: dock.mau.dev/mautrix/telegram: # restart: unless-stopped # volumes: # - telegram_bridge_data:/data #mautrix-whatsapp: # container_name: mautrix-whatsapp # image: dock.mau.dev/mautrix/whatsapp: # restart: unless-stopped # volumes: # - whatsapp_bridge_data:/data #mautrix-facebook: # container_name: mautrix-facebook # image: dock.mau.dev/mautrix/facebook: # restart: unless-stopped # volumes: # - facebook_bridge_data:/data #mautrix-instagram: # container_name: mautrix-instagram # image: dock.mau.dev/mautrix/instagram: # restart: unless-stopped # volumes: # - instagram_bridge_data:/data volumes: database: synapse_data: #telegram_bridge_data: #whatsapp_bridge_data: #facebook_bridge_data: #instagram_bridge_data: networks: default: driver: bridge