# Fossil-Manager 反向代理（Caddy 2）
#
# 用法（宿主机安装了 Caddy）：
#   1. 把下面的域名改成你的
#   2. docker compose 已把 3000/8080 映射到本机
#   3. caddy run --config Caddyfile
#      或：sudo cp Caddyfile /etc/caddy/Caddyfile && sudo systemctl reload caddy
#
# 生产务必同时设置（docker-compose / .env）：
#   FOSSIL_BASE_URL=https://git.example.com
# 否则页面上的仓库链接会写成 http://localhost:8080/...
#
# 路由：
#   /  /setup  /login  /logout  /admin/*  /public/*  /static/*  → Manager :3000
#   /仓库名/...                                                → fossil server :8080

{
	# 若本机已有 80/443 被占用，可改 email 或注释掉自动 HTTPS
	# email you@example.com
}

# ---------- 生产：自动 HTTPS ----------
git.example.com {
	encode gzip zstd

	# 控制面板（含首次 /setup）
	@manager path / /setup /login /logout /admin /admin/* /public /public/* /static /static/*
	handle @manager {
		reverse_proxy 127.0.0.1:3000
	}

	# Fossil Web（clone / timeline / 浏览代码）
	handle {
		reverse_proxy 127.0.0.1:8080 {
			flush_interval -1
			header_up X-Forwarded-Proto {scheme}
			header_up X-Forwarded-Host {host}
		}
	}

	header {
		# 反代后仍按 HTTPS 识别（Caddy 默认也会加 X-Forwarded-*）
		-Server
	}

	request_body {
		max_size 512MB
	}
}

# ---------- 仅内网 HTTP（不需要证书时取消注释，并注释掉上面的域名块）----------
# :80 {
# 	encode gzip
# 	@manager path / /setup /login /logout /admin /admin/* /public /public/* /static /static/*
# 	handle @manager {
# 		reverse_proxy 127.0.0.1:3000
# 	}
# 	handle {
# 		reverse_proxy 127.0.0.1:8080
# 	}
# }
