about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rwxr-xr-xjustfile8
-rw-r--r--netlify.toml34
2 files changed, 41 insertions, 1 deletions
diff --git a/justfile b/justfile
index bf20fbf..dcd242a 100755
--- a/justfile
+++ b/justfile
@@ -84,4 +84,10 @@ deploy-vercel: clean build check-links
 	vercel pull --environment=production
 	vercel deploy --prod
 
-deploy-production: deploy-vercel
+deploy-netlify-preview: clean build
+	netlify deploy
+
+deploy-netlify: clean build check-links
+	netlify deploy --prodIfUnlocked
+
+deploy-production: deploy-vercel deploy-netlify
diff --git a/netlify.toml b/netlify.toml
new file mode 100644
index 0000000..a218fcd
--- /dev/null
+++ b/netlify.toml
@@ -0,0 +1,34 @@
+[build]
+  publish = "website/public"
+
+[[redirects]]
+  from = "/.well-known/openid-configuration"
+  to = "https://id.alanpearce.eu/.well-known/openid-configuration"
+  status = 302
+
+[[headers]]
+  for = "/*"
+  [headers.values]
+    x-content-type-options = "nosniff"
+    x-xss-protection = "1; mode=block"
+    referrer-policy = "strict-origin-when-cross-origin"
+    strict-transport-security = "max-age=63072000; includeSubDomains; preload"
+    cache-control = '''
+      max-age=300,
+      s-maxage=86400,
+      state-while-revalidate
+    '''
+    content-security-policy = '''
+      default-src 'none';
+      img-src 'self' https://gc.zgo.at;
+      object-src 'none';
+      script-src 'self' https://gc.zgo.at;
+      style-src
+      'sha256-a4TPKWHB0aSu7cV10GthTEySTJ0w4r0bw6Q8JsNYMbk='
+      'sha256-gyxzfgCOxeAAL8URUdaW2nHYDOr9bzbwFjgSqi7D+8U=';
+      form-action 'none';
+      base-uri 'self';
+      connect-src https://alanpearce-eu.goatcounter.com/count;
+      frame-ancestors 'https://kagi.com';
+      require-trusted-types-for "'script'"
+'''