services: db: image: postgres:15 restart: unless-stopped environment: - POSTGRES_USER=matrix - POSTGRES_DB=synapse - POSTGRES_PASSWORD_FILE=/run/secrets/db_password - POSTGRES_INITDB_ARGS=--lc-collate=C --lc-ctype=C --encoding=UTF-8 secrets: - db_password volumes: - ./postgres:/var/lib/postgresql/data synapse: image: matrixdotorg/synapse:latest restart: unless-stopped environment: - SYNAPSE_SERVER_NAME=matrix.greif.life-maps.com - SYNAPSE_REPORT_STATS=no volumes: - ./synapse:/data depends_on: - db element: image: vectorim/element-web:latest restart: unless-stopped volumes: - ./element/config.json:/app/config.json:ro element-admin: image: awesometechnologies/synapse-admin:latest restart: unless-stopped caddy: image: caddy:2-alpine restart: unless-stopped ports: - "80:80" - "443:443" volumes: - ./caddy/Caddyfile:/etc/caddy/Caddyfile:ro - ./caddy/data:/data - ./caddy/config:/config - ./matrix-landing:/var/www/html:ro depends_on: - synapse - element - element-admin secrets: db_password: file: ./secrets/db_password.txt