# Production placeholder. Single-origin, path-based — mirrors
# `Caddyfile.dev` but binds the real public host and lets Caddy
# auto-provision TLS. Not used until prod-deploy plumbing exists; kept
# in version control so the dev/prod surface stays identical.
#
# The host is supplied at deploy time via `GALAXY_PUBLIC_HOST` so the
# same image is domain-agnostic (the fallback is only a placeholder).

{$GALAXY_PUBLIC_HOST:galaxy.example} {
	handle_path /rpc/* {
		reverse_proxy galaxy-api:9090
	}

	@api path /api/* /healthz
	handle @api {
		reverse_proxy galaxy-api:8080
	}

	handle /game {
		redir * /game/ 308
	}

	handle_path /game/* {
		root * /srv/galaxy-ui
		@immutable path /_app/immutable/*
		header @immutable Cache-Control "public, max-age=31536000, immutable"
		@dynamic not path /_app/immutable/*
		header @dynamic Cache-Control "no-cache, must-revalidate"
		try_files {path} /index.html
		file_server
		encode zstd gzip
	}

	handle {
		root * /srv/galaxy-site
		@immutable path /assets/*
		header @immutable Cache-Control "public, max-age=31536000, immutable"
		@dynamic not path /assets/*
		header @dynamic Cache-Control "no-cache, must-revalidate"
		try_files {path} {path}.html {path}/index.html /404.html
		file_server
		encode zstd gzip
	}
}
