diff --git a/docker-compose.yml b/docker-compose.yml index 1eb1d3a..c068bf5 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -3,6 +3,8 @@ services: depends_on: caddy: condition: service_started + redis: + condition: service_started postgres: condition: service_started container_name: synapse @@ -70,13 +72,95 @@ services: networks: - matrix-network restart: "unless-stopped" - + + redis: + container_name: redis + image: redis:8.0-M03-alpine + restart: always + volumes: + - redis_data:/data + networks: + - matrix-network + + 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 + volumes: + - ./synapse:/data:rw + networks: + - matrix-network + user: "1000:1000" + environment: + SYNAPSE_WORKER: synapse.app.federation_sender + depends_on: + - synapse + - redis + + synapse-federation-sender-2: + image: matrixdotorg/synapse:latest + container_name: synapse-federation-sender-2 + restart: unless-stopped + entrypoint: [ "/start.py", "run", "--config-path=/data/homeserver.yaml", "--config-path=/data/workers/synapse-federation-sender-2.yaml" ] + healthcheck: + disable: true + volumes: + - ./synapse:/data:rw + networks: + - matrix-network + user: "1000:1000" + environment: + SYNAPSE_WORKER: synapse.app.federation_sender + depends_on: + - synapse + - redis + + synapse-federation-sender-3: + image: matrixdotorg/synapse:latest + container_name: synapse-federation-sender-3 + restart: unless-stopped + entrypoint: [ "/start.py", "run", "--config-path=/data/homeserver.yaml", "--config-path=/data/workers/synapse-federation-sender-3.yaml" ] + healthcheck: + disable: true + volumes: + - ./synapse:/data:rw + networks: + - matrix-network + user: "1000:1000" + environment: + SYNAPSE_WORKER: synapse.app.federation_sender + depends_on: + - synapse + - redis + + synapse-federation-sender-4: + image: matrixdotorg/synapse:latest + container_name: synapse-federation-sender-4 + restart: unless-stopped + entrypoint: [ "/start.py", "run", "--config-path=/data/homeserver.yaml", "--config-path=/data/workers/synapse-federation-sender-4.yaml" ] + healthcheck: + disable: true + volumes: + - ./synapse:/data:rw + networks: + - matrix-network + user: "1000:1000" + environment: + SYNAPSE_WORKER: synapse.app.federation_sender + depends_on: + - synapse + - redis networks: matrix-network: + volumes: caddy_data: caddy_config: synapse-data: + diff --git a/synapse/homeserver.template b/synapse/homeserver.template index 70a174d..3153b51 100644 --- a/synapse/homeserver.template +++ b/synapse/homeserver.template @@ -1,3 +1,41 @@ +listeners: + - port: 8008 + tls: false + type: http + x_forwarded: true + resources: + - names: [client, federation] + compress: false + + - port: 9093 + type: http + resources: + - names: [replication] + +send_federation: false +federation_sender_instances: + - synapse-federation-sender-1 + - synapse-federation-sender-2 + - synapse-federation-sender-3 + - synapse-federation-sender-4 + +redis: + enabled: true + host: redis + port: 6379 + +instance_map: + main: + host: 'localhost' + port: 9093 + +worker_listeners: + - type: http + port: 8083 + x_forwarded: true + resources: + - names: [client, federation] + database: name: psycopg2 args: diff --git a/synapse/workers/synapse-federation-sender-1.yml b/synapse/workers/synapse-federation-sender-1.yml new file mode 100644 index 0000000..ebe3d0d --- /dev/null +++ b/synapse/workers/synapse-federation-sender-1.yml @@ -0,0 +1,2 @@ +worker_app: synapse.app.federation_sender +worker_name: synapse-federation-sender-1 \ No newline at end of file diff --git a/synapse/workers/synapse-federation-sender-2.yml b/synapse/workers/synapse-federation-sender-2.yml new file mode 100644 index 0000000..5dc92d4 --- /dev/null +++ b/synapse/workers/synapse-federation-sender-2.yml @@ -0,0 +1,2 @@ +worker_app: synapse.app.federation_sender +worker_name: synapse-federation-sender-2 \ No newline at end of file diff --git a/synapse/workers/synapse-federation-sender-3.yml b/synapse/workers/synapse-federation-sender-3.yml new file mode 100644 index 0000000..0a14a64 --- /dev/null +++ b/synapse/workers/synapse-federation-sender-3.yml @@ -0,0 +1,2 @@ +worker_app: synapse.app.federation_sender +worker_name: synapse-federation-sender-3 \ No newline at end of file diff --git a/synapse/workers/synapse-federation-sender-4.yml b/synapse/workers/synapse-federation-sender-4.yml new file mode 100644 index 0000000..2c675af --- /dev/null +++ b/synapse/workers/synapse-federation-sender-4.yml @@ -0,0 +1,2 @@ +worker_app: synapse.app.federation_sender +worker_name: synapse-federation-sender-4 \ No newline at end of file