#jinja2: lstrip_blocks: "True"

server {
	listen 8008;
	server_name {{ matrix_homeserver_proxy_hostname }};

	server_tokens off;
	root /dev/null;

	gzip on;
	gzip_types text/plain application/json;

	{% for configuration_block in matrix_homeserver_proxy_client_api_additional_server_configuration_blocks %}
		{{- configuration_block }}
	{% endfor %}

	{# Everything else just goes to the API server ##}
	location / {
		{# Use the embedded DNS resolver in Docker containers to discover the service #}
		resolver {{ matrix_homeserver_proxy_http_level_resolver }} valid=5s;
		set $backend "{{ matrix_homeserver_proxy_client_api_addr }}";
		proxy_pass http://$backend;

		proxy_set_header Host $host;

		client_body_buffer_size 25M;
		client_max_body_size {{ matrix_homeserver_proxy_client_api_client_max_body_size_mb }}M;
		proxy_max_temp_file_size 0;
	}
}

{% if matrix_homeserver_proxy_federation_api_enabled %}
server {
	listen 8048;
	server_name {{ matrix_homeserver_proxy_hostname }};

	server_tokens off;

	root /dev/null;

	gzip on;
	gzip_types text/plain application/json;

	{% for configuration_block in matrix_homeserver_proxy_federation_api_additional_server_configuration_blocks %}
		{{- configuration_block }}
	{% endfor %}

	{# Everything else just goes to the API server ##}
	location / {
		{# Use the embedded DNS resolver in Docker containers to discover the service #}
		resolver {{ matrix_homeserver_proxy_http_level_resolver }} valid=5s;
		set $backend "{{ matrix_homeserver_proxy_federation_api_addr }}";
		proxy_pass http://$backend;

		proxy_set_header Host $host;

		client_body_buffer_size 25M;
		client_max_body_size {{ matrix_homeserver_proxy_federation_api_client_max_body_size_mb }}M;
		proxy_max_temp_file_size 0;
	}
}
{% endif %}