# Learn how to configure the Mercure.rocks Hub on https://mercure.rocks/docs/hub/config
{
	{$GLOBAL_OPTIONS}
}

{$CADDY_EXTRA_CONFIG}

{$SERVER_NAME:localhost} {
	log {
		format filter {
			fields {
				request>uri query {
					replace authorization REDACTED
				}
			}
		}
	}

	encode zstd gzip

	mercure {
		# Publisher JWT key
		publisher_jwt {env.MERCURE_PUBLISHER_JWT_KEY} {env.MERCURE_PUBLISHER_JWT_ALG}
		# Subscriber JWT key
		subscriber_jwt {env.MERCURE_SUBSCRIBER_JWT_KEY} {env.MERCURE_SUBSCRIBER_JWT_ALG}
		# Extra directives
		{$MERCURE_EXTRA_DIRECTIVES}
	}

	{$CADDY_SERVER_EXTRA_DIRECTIVES}

	log_skip /robots.txt
	log_skip /healthz
	log_skip /favicon.ico

	header / Content-Type "text/html; charset=utf-8"
	respond / `<!DOCTYPE html>
	<html lang=en>
	<meta charset="utf-8">
	<meta name="robots" content="noindex">
	<title>Welcome to Mercure</title>
	<h1>Welcome to Mercure</h1>
	<p>The URL of your hub is <code>/.well-known/mercure</code>.
	Read the documentation on <a href="https://mercure.rocks">Mercure.rocks, real-time apps made easy</a>.`
	respond /robots.txt `User-agent: *
	Disallow: /`
	respond /healthz 200
	respond "Not Found" 404
}
