{
	#debug
	order replace after encode
}

(log) {
	log {
		output file /log/{args[0]}/access.log {
			roll_size 100MiB
			roll_local_time
			roll_keep 10
			roll_keep_for 2160h
		}
	}
}

(common) {
	header Host {host}
	header X-Real-IP {remote_host}
	header X-Forwarded-For {remote_host}
	header X-Forwarded-Proto {scheme}

	request_body {
		max_size 50MB
	}
}

(ratelimit) {
	rate_limit {
		zone dynamic_zone {
			key {client_ip}
			events 50
			window 1s
		}
		log_key
	}
}

(geo_only_allow_country) {
	@only_allow_country_geofilter {
		not {
			maxmind_geolocation {
				db_path "/config/geodb/GeoLite2-Country.mmdb"
				allow_countries {args[0]}
			}
		}
	}

	respond @only_allow_country_geofilter "You are blocked" 403
}

(geo_not_allow_country) {
	@not_allow_country_geofilter {
		maxmind_geolocation {
			db_path "/config/geodb/GeoLite2-Country.mmdb"
			allow_countries {args[0]}
		}
	}

	respond @not_allow_country_geofilter "You are blocked" 403
}

:443 {
	tls internal
	respond 404
}

import /conf/*.caddyfile
