# SPDX-License-Identifier: Apache-2.0
# Copyright 2026 老夫 <2379731846@qq.com>
{
	email admin@drawcommons.org
}

drawcommons.org, www.drawcommons.org {
	encode zstd gzip

	# 访问日志：docker logs 会随容器重建丢失，落盘才可回溯与统计。
	log {
		output file /data/access.log {
			roll_size 20MiB
			roll_keep 8
		}
		format json
	}

	header {
		Strict-Transport-Security "max-age=31536000; includeSubDomains"
		X-Content-Type-Options "nosniff"
		Referrer-Policy "strict-origin-when-cross-origin"
		-Server
	}

	# 公开仓库（哑协议，只读）：第三方 clone 下来自己复现，不需要任何账号。
	# 用哑协议而非 git-http-backend（Caddy 无 CGI），代价是不支持 push/PR——
	# 本仓本来也不接受外部推送，只接受邮件与 issue 反馈，够用。
	# 裸仓由 /opt/drawcommons/git/drawcommons.git 挂入（compose 内 :ro）。
	handle_path /repo.git/* {
		root * /srv/git/drawcommons.git
		file_server
	}

	# 免装 git 的复现包（含 sha256），给只想核一次字节的人
	handle_path /download/* {
		root * /srv/git/download
		file_server
	}

	reverse_proxy app:8000 {
		# 覆写而非追加：Caddy 默认会把客户端自带的 X-Forwarded-For 追加进链条，
		# 那样客户端能伪造来源 IP，日志就不可信。这里固定成真实对端。
		header_up X-Forwarded-For {remote_host}
		header_up X-Forwarded-Proto {scheme}
		# 上游 Server 头带出 Python 版本号，去掉
		header_down -Server
	}
}
