--- services: synapse: image: ghcr.io/element-hq/synapse:latest restart: always environment: - SYNAPSE_CONFIG_PATH=/data/homeserver.yaml volumes: - ./config/synapse:/data - /etc/default/matrix_shared_secret:/etc/default/matrix_shared_secret:ro depends_on: - db networks: matrix_server: ipv4_address: 10.10.10.4 matrix_db: ports: - 8008:8008 db: image: docker.io/postgres:16-alpine environment: - POSTGRES_DB=synapse - POSTGRES_USER=matrix_synapse - POSTGRES_PASSWORD=PG_PASS - POSTGRES_INITDB_ARGS=--encoding=UTF8 --lc-collate=C --lc-ctype=C volumes: - ./db:/var/lib/postgresql/data networks: matrix_db: element: image: vectorim/element-web:latest restart: unless-stopped volumes: - ./config/element/element-config.json:/app/config.json networks: matrix_server: ipv4_address: 10.10.10.3 depends_on: - synapse sydent: image: matrixdotorg/sydent:latest restart: unless-stopped networks: matrix_server: ipv4_address: 10.10.10.5 depends_on: - synapse synapse-admin: image: awesometechnologies/synapse-admin:latest restart: unless-stopped networks: matrix_server: ipv4_address: 10.10.10.6 depends_on: - synapse sliding-sync: image: ghcr.io/matrix-org/sliding-sync:latest restart: always environment: - SYNCV3_BINDADDR=:8008 - SYNCV3_SERVER=https://DOMAIN - SYNCV3_SECRET=SLIDING_SYNC_KEY - SYNCV3_DB=user=matrix_synapse dbname=synapse sslmode=disable host=db password=PG_PASS networks: matrix_server: ipv4_address: 10.10.10.7 matrix_db: depends_on: - synapse hydrogen-web: image: ghcr.io/element-hq/hydrogen-web:latest restart: unless-stopped environment: - | CONFIG_OVERRIDE= { "push": { "appId": "io.element.hydrogen.web", "gatewayUrl": "https://matrix.org", "applicationServerKey": "BC-gpSdVHEXhvHSHS0AzzWrQoukv2BE7KzpoPO_FfPacqOo3l1pdqz7rSgmB04pZCWaHPz7XRe6fjLaC-WPDopM" }, "defaultHomeServer": "DOMAIN", "bugReportEndpointUrl": "https://element.io/bugreports/submit", "themeManifests": [ "assets/theme-element.json" ], "defaultTheme": { "light": "element-light", "dark": "element-dark" } } networks: matrix_server: ipv4_address: 10.10.10.8 networks: matrix_server: external: true matrix_db: external: false