https://{{ matrix_server_fqn_matrix }} {
	tls /tls_certs/finallycoffee.eu/fullchain.pem /tls_certs/finallycoffee.eu/privkey.pem
	encode zstd gzip
	header {
		Strict-Transport-Security "max-age=31536000;"
		X-Frame-Options "DENY"
		X-XSS-Protection "1; mode=block"
	}
        basicauth /metrics/* bcrypt monitoring {
                monitoring JDJhJDE0JGdQRlNHVFpSQmRiaWlPem9LdXlkS09HN2E3LklZS05YZmtXTEY1NlFXbkMxd3hBUmwwbVZl
        }
        route /metrics/synapse {
                uri replace /metrics/synapse /metrics/synapse/main-process
                reverse_proxy * http://{{ matrix_nginx_proxy_container_http_host_bind_port }}
        }
        route /metrics/synapse/worker/appservice {
                uri replace /metrics/synapse/worker/appservice /metrics/synapse/worker/appservice-0
                reverse_proxy * http://{{ matrix_nginx_proxy_container_http_host_bind_port }}
        }
        route /metrics/synapse/worker/federation-sender-0 {
                uri replace /metrics/synapse/worker/federation-sender-0 /metrics/synapse/worker/federation-sender-0
                reverse_proxy * http://{{ matrix_nginx_proxy_container_http_host_bind_port }}
        }
        route /metrics/synapse/worker/federation-sender-1 {
                uri replace /metrics/synapse/worker/federation-sender-1 /metrics/synapse/worker/federation-sender-1
                reverse_proxy * http://{{ matrix_nginx_proxy_container_http_host_bind_port }}
        }
        route /metrics/synapse/worker/federation-sender-2 {
                uri replace /metrics/synapse/worker/federation-sender-2 /metrics/synapse/worker/federation-sender-2
                reverse_proxy * http://{{ matrix_nginx_proxy_container_http_host_bind_port }}
        }
        route /metrics/synapse/worker/generic-0 {
                uri replace /metrics/synapse/worker/generic-0 /metrics/synapse/worker/generic-worker-0
                reverse_proxy * http://{{ matrix_nginx_proxy_container_http_host_bind_port }}
        }
        route /metrics/synapse/worker/generic-1 {
                uri replace /metrics/synapse/worker/generic-1 /metrics/synapse/worker/generic-worker-1
                reverse_proxy * http://{{ matrix_nginx_proxy_container_http_host_bind_port }}
        }
        route /metrics/synapse/worker/media-0 {
                uri replace /metrics/synapse/worker/media-0 /metrics/synapse/worker/media-repository-0
                reverse_proxy * http://{{ matrix_nginx_proxy_container_http_host_bind_port }}
        }
        route /metrics/synapse/worker/media-1 {
                uri replace /metrics/synapse/worker/media-1 /metrics/synapse/worker/media-repository-1
                reverse_proxy * http://{{ matrix_nginx_proxy_container_http_host_bind_port }}
        }
        route /metrics/bridge/* {
                uri strip_prefix /metrics/bridge
                route /mautrix-telegram {
                    uri replace /mautrix-telegram /metrics
                    reverse_proxy http://127.0.0.1:{{ matrix_mautrix_telegram_container_http_monitoring_host_bind_port }}
                }
                route /mautrix-whatsapp {
                    uri replace /mautrix-whatsapp /metrics
                    reverse_proxy http://127.0.0.1:{{ matrix_mautrix_whatsapp_container_http_monitoring_host_bind_port }}
                }
                route /mautrix-signal {
                    uri replace /mautrix-signal /metrics
                    reverse_proxy http://127.0.0.1:{{ matrix_mautrix_signal_container_http_monitoring_host_bind_port }}
                }
                route /mx-puppet-instagram {
                    uri replace /mx-puppet-instagram /metrics
                    reverse_proxy http://127.0.0.1:{{ matrix_mx_puppet_instagram_container_http_monitoring_host_bind_port }}
                }
                route /mx-puppet-discord {
                    uri replace /mx-puppet-discord /metrics
                    reverse_proxy http://127.0.0.1:{{ matrix_mx_puppet_discord_container_http_monitoring_host_bind_port }}
                }
                route /mx-puppet-slack {
                    uri replace /mx-puppet-slack /metrics
                    reverse_proxy http://127.0.0.1:{{ matrix_mx_puppet_slack_container_http_monitoring_host_bind_port }}
                }
        }
	reverse_proxy /_matrix/federation/* http://{{ matrix_playbook_public_matrix_federation_api_traefik_entrypoint_host_bind_port }}
	reverse_proxy /_matrix/key/* http://{{ matrix_playbook_public_matrix_federation_api_traefik_entrypoint_host_bind_port }}
        reverse_proxy * http://{{ devture_traefik_container_web_host_bind_port }}
}

https://{{ matrix_server_fqn_dimension }} {
	tls /tls_certs/finallycoffee.eu/fullchain.pem /tls_certs/finallycoffee.eu/privkey.pem
	encode zstd gzip
        reverse_proxy * http://{{ matrix_nginx_proxy_container_http_host_bind_port }}
}

https://{{ matrix_server_fqn_element }} {
	tls /tls_certs/chat.finallycoffee.eu/fullchain.pem /tls_certs/chat.finallycoffee.eu/privkey.pem
	encode zstd gzip
        reverse_proxy * http://{{ matrix_nginx_proxy_container_http_host_bind_port }}
}

https://{{ matrix_domain }}/.well-known/matrix/* {
	tls /tls_certs/finallycoffee.eu/fullchain.pem /tls_certs/finallycoffee.eu/privkey.pem
	route {
		uri strip_prefix /.well-known/matrix
		root * /matrix_static
		file_server
	}
	header {
		Content-Type "application/json"
		X-Content-Type-Options "nosniff"
		Access-Control-Allow-Origin *
		Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS"
		Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept, Authorization"
	}
}