llzq.ai {
	encode gzip zstd
	reverse_proxy 127.0.0.1:9119 {
		header_up Host 127.0.0.1:9119
		header_up Origin http://127.0.0.1:9119
		header_up X-Forwarded-Host {host}
		header_up X-Forwarded-Proto {scheme}
	}
}

events.llzq.ai {
	encode gzip zstd
	root * /srv/events.llzq.ai
	file_server
}

dkm.llzq.ai {
	encode gzip zstd
	root * /srv/dkm.llzq.ai
	file_server
}

codingplan.llzq.ai {
	encode gzip zstd
	root * /srv/codingplan.llzq.ai
	file_server
}

hiking.llzq.ai {
	encode gzip zstd
	root * /srv/hiking.llzq.ai
	@static path /assets/*
	header @static Cache-Control "public, max-age=31536000, immutable"
	@gallery path /gallery.json
	header @gallery Cache-Control "public, max-age=300"
	file_server
}

download.llzq.ai {
	encode gzip zstd
	@public path /construction-robotics-pack.tar.gz
	handle @public {
		root * /home/echo/download
		file_server
	}
	@markdown {
		path *.md
		not path /_md_viewer.html
	}
	handle @markdown {
		basicauth {
			echo $2a$14$c0YS8V6ibaPo4LaxmzpaEuDhfamZvsrGf4zVjSLI1VSdgJmURDuZ.
		}
		@browser header_regexp Accept "text/html"
		handle @browser {
			redir * "/_md_viewer.html?md={path}" 302
		}
		handle {
			root * /home/echo/download
			file_server
		}
	}
	handle {
		basicauth {
			echo $2a$14$c0YS8V6ibaPo4LaxmzpaEuDhfamZvsrGf4zVjSLI1VSdgJmURDuZ.
		}
		root * /home/echo/download
		file_server browse
	}
}

radar.llzq.ai {
	encode gzip zstd
	@data path /data/*
	header @data Cache-Control "no-cache, no-store, must-revalidate"
	header @data Access-Control-Allow-Origin "*"
	@static path /assets/*
	header @static Cache-Control "public, max-age=31536000, immutable"
	root * /srv/radar.llzq.ai
	file_server
}

mc.llzq.ai {
	encode gzip zstd
	reverse_proxy 127.0.0.1:3000
}

vc.llzq.ai {
	encode gzip zstd
	log {
		output file /var/log/caddy/vc-access.log {
			roll_size 50mb
			roll_keep 3
		}
	}

	handle /api/* {
		reverse_proxy 127.0.0.1:8080
	}

	handle {
		root * /srv/vc.llzq.ai
		file_server
	}
}

exam.llzq.ai {
	encode gzip zstd

	handle /api/* {
		reverse_proxy 127.0.0.1:8081
	}

	handle {
		root * /srv/exam.llzq.ai
		file_server
	}
}

hyq.llzq.ai {
	encode gzip zstd
	root * /home/hyq/html
	file_server
}

eval.llzq.ai {
	encode gzip zstd
	root * /srv/eval.llzq.ai
	file_server
}



api.llzq.ai {
    encode gzip zstd
    reverse_proxy 127.0.0.1:8089
}

code.llzq.ai {
	encode gzip zstd
	reverse_proxy 127.0.0.1:8443 {
		header_up Host {host}
		header_up X-Forwarded-Host {host}
		header_up X-Forwarded-Proto {scheme}
	}
}

poem.llzq.ai {
    encode gzip zstd

    # 单进程既托管前端也提供 API — 全部反代到 3211
    reverse_proxy 127.0.0.1:3211
}
