about summary refs log tree commit diff stats
path: root/Caddyfile
diff options
context:
space:
mode:
Diffstat (limited to 'Caddyfile')
-rw-r--r--Caddyfile77
1 files changed, 77 insertions, 0 deletions
diff --git a/Caddyfile b/Caddyfile
new file mode 100644
index 0000000..c779358
--- /dev/null
+++ b/Caddyfile
@@ -0,0 +1,77 @@
+{
+	admin off
+	persist_config off
+	auto_https off
+	import globals/*
+	servers :80 {
+		metrics
+		protocols h1 h2c
+		trusted_proxies static private_ranges
+	}
+	servers :9091 {
+		protocols h1
+	}
+}
+
+:9091 {
+	metrics
+}
+
+http://,
+http://alanpearce.uk,
+http://www.alanpearce.uk,
+http://www.alanpearce.eu {
+	header {
+		Cache-Control max-age=31536000
+		X-Content-Type-Options nosniff
+		Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
+		Content-Security-Policy "default-src 'none'; img-src 'self'; object-src 'none'; script-src 'none'; style-src 'unsafe-inline'"
+	}
+	redir https://alanpearce.eu{uri} permanent
+}
+
+http://aln.pe {
+	header {
+		Cache-Control max-age=86400
+		X-Content-Type-Options nosniff
+		Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
+		Content-Security-Policy "default-src 'none'; img-src 'self'; object-src 'none'; script-src 'none'; style-src 'unsafe-inline'"
+	}
+
+	redir /pronouns https://en.pronouns.page/@alanpearce
+	redir /pronomen https://de.pronouns.page/@alanpearce
+	redir /git https://git.alanpearce.eu
+	redir /gpg https://alanpearce.eu/public_key.asc
+	redir /status https://stats.uptimerobot.com/GgzRkHBDr7
+	redir /* https://alanpearce.eu/{uri}
+}
+
+http://alanpearce.eu {
+	root * {$SITE_ROOT}
+	file_server {
+		precompressed br zstd gzip
+	}
+	header {
+		Cache-Control max-age=14400
+		X-Content-Type-Options nosniff
+		Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
+		Content-Security-Policy "default-src 'none'; img-src 'self'; object-src 'none'; script-src 'none'; style-src 'unsafe-inline'; form-action 'none'; base-uri 'self'"
+	}
+	handle_errors {
+		@404 expression `{err.status_code} == 404`
+		handle @404 {
+			rewrite * /404.html
+		}
+		file_server {
+			precompressed br zstd gzip
+		}
+	}
+	header /feed-styles/ Content-Type text/xsl
+	error /feed-styles/index.html* 404
+	respond /favicon.ico 204
+	redir /index.xml /atom.xml
+	redir /post/index.xml /atom.xml
+
+	@http header X-Forwarded-Proto http
+	redir @http https://alanpearce.eu{uri}
+}