version: '3' services: synapse: image: matrixdotorg/synapse:latest restart: unless-stopped environment: - SYNAPSE_CONFIG_PATH=/data/homeserver.yaml - SERVERNAME=${homeServerFQDN} - PUBLICBASEURL=${synapseFQDN} - ELEMENTWEB=${elementWebFQDN} - DBNAME=${dbname} - DBHOST=${dbhost} - DBUSER=${dbuser} - DBPASSWORD=${dbpassword} - REDISHOST=${redishost} - REDISPORT=${redisport} - TURNPORT=${turnport} - TURNHOST=${turnhost} - TURNSECRET=${turnsecret} network_mode: "host" volumes: - ./synapse:/data entrypoint: sh -c "/data/homeserver.yaml.sh && chmod -R 777 /data && /start.py" element: image: vectorim/element-web:latest restart: unless-stopped environment: - SERVERNAME=${homeServerFQDN} - PUBLICBASEURL=${synapseFQDN} - ELEMENTWEB=${elementWebFQDN} volumes: - ./element/config.json.sh:/app/config.json.sh - ./element/element.conf.sh:/app/element.conf.sh - ./element/redirector.conf.sh:/app/redirector.conf.sh - ./element/synapse.conf.sh:/app/synapse.conf.sh - ./conf:/etc/nginx/conf.d - ./etcletsencrypt:/etc/letsencrypt - ./dconf/nginx.conf:/etc/nginx/nginx.conf command: sh -c "/app/config.json.sh && /app/element.conf.sh && /app/redirector.conf.sh && /app/synapse.conf.sh && nginx -g 'daemon off;'" network_mode: "host" synapse-generic-worker-all: image: matrixdotorg/synapse:latest container_name: synapse-generic-worker-all restart: unless-stopped entrypoint: ["/start.py", "run", "--config-path=/data/homeserver.yaml", "--config-path=/data/workers/synapse-generic-worker-all.yaml"] healthcheck: test: ["CMD-SHELL", "curl -fSs http://localhost:8081/health || exit 1"] start_period: "5s" interval: "15s" timeout: "5s" network_mode: "host" volumes: - ./synapse:/data environment: SYNAPSE_WORKER: synapse.app.generic_worker depends_on: - synapse synapse-generic-worker-sync: image: matrixdotorg/synapse:latest container_name: synapse-generic-worker-sync restart: unless-stopped entrypoint: ["/start.py", "run", "--config-path=/data/homeserver.yaml", "--config-path=/data/workers/synapse-generic-worker-sync.yaml"] healthcheck: test: ["CMD-SHELL", "curl -fSs http://localhost:8083/health || exit 1"] start_period: "5s" interval: "15s" timeout: "5s" network_mode: "host" volumes: - ./synapse:/data environment: SYNAPSE_WORKER: synapse.app.generic_worker depends_on: - synapse synapse-federation-sender-1: image: matrixdotorg/synapse:latest container_name: synapse-federation-sender-1 restart: unless-stopped entrypoint: ["/start.py", "run", "--config-path=/data/homeserver.yaml", "--config-path=/data/workers/synapse-federation-sender-1.yaml"] healthcheck: disable: true network_mode: "host" volumes: - ./synapse:/data environment: SYNAPSE_WORKER: synapse.app.generic_worker depends_on: - synapse redis: image: "redis:latest" restart: "unless-stopped" network_mode: "host"