From 57c9f0011eae92ef5fa2992d99f01b0956802d64 Mon Sep 17 00:00:00 2001 From: BBaoVanC Date: Tue, 9 Nov 2021 02:15:57 +0100 Subject: [PATCH] Add files --- .gitignore | 3 ++ Caddyfile | 28 ++++++++++++++ conf.d/bbaovanc.com | 18 +++++++++ conf.d/demo.bbaovanc.com | 13 +++++++ conf.d/drone.bbaovanc.com | 13 +++++++ conf.d/errors.bbaovanc.com | 10 +++++ conf.d/git.bbaovanc.com | 20 ++++++++++ conf.d/media.bbaovanc.com | 13 +++++++ conf.d/remark.bbaovanc.com | 13 +++++++ conf.d/rick.bbaovanc.com | 9 +++++ conf.d/search.bbaovanc.com | 77 ++++++++++++++++++++++++++++++++++++++ errors/dl.sh | 5 +++ errors/index.html | 28 ++++++++++++++ 13 files changed, 250 insertions(+) create mode 100644 .gitignore create mode 100644 Caddyfile create mode 100644 conf.d/bbaovanc.com create mode 100644 conf.d/demo.bbaovanc.com create mode 100644 conf.d/drone.bbaovanc.com create mode 100644 conf.d/errors.bbaovanc.com create mode 100644 conf.d/git.bbaovanc.com create mode 100644 conf.d/media.bbaovanc.com create mode 100644 conf.d/remark.bbaovanc.com create mode 100644 conf.d/rick.bbaovanc.com create mode 100644 conf.d/search.bbaovanc.com create mode 100755 errors/dl.sh create mode 100644 errors/index.html diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3cf3a88 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +email + +errors/img diff --git a/Caddyfile b/Caddyfile new file mode 100644 index 0000000..eabcdcb --- /dev/null +++ b/Caddyfile @@ -0,0 +1,28 @@ +# vim: ft=caddyfile + +{ + grace_period 60s + import email + #acme_ca "https://acme-staging-v02.api.letsencrypt.org/directory" +} + +(basicerrors) { + handle_errors { + templates + rewrite * /index.html + root * /etc/caddy/errors + file_server + } +} + +(hsts) { + header Strict-Transport-Security max-age=31536000 +} + +(log) { + log { + output file /var/log/caddy/access.log + } +} + +import conf.d/* diff --git a/conf.d/bbaovanc.com b/conf.d/bbaovanc.com new file mode 100644 index 0000000..4b52816 --- /dev/null +++ b/conf.d/bbaovanc.com @@ -0,0 +1,18 @@ +# vim: ft=caddyfile + +www.bbaovanc.com { + redir https://bbaovanc.com{uri} +} + +bbaovanc.com { + import hsts + import log + + header Cache-Control no-cache + root * /var/www/bbaovanc.com/public + file_server { + precompressed br gzip + } + + import basicerrors +} diff --git a/conf.d/demo.bbaovanc.com b/conf.d/demo.bbaovanc.com new file mode 100644 index 0000000..0780240 --- /dev/null +++ b/conf.d/demo.bbaovanc.com @@ -0,0 +1,13 @@ +# vim: ft=caddyfile + +demo.bbaovanc.com { + import hsts + + header Cache-Control no-store + root * /var/www/demo.bbaovanc.com + file_server { + browse + } + + import basicerrors +} diff --git a/conf.d/drone.bbaovanc.com b/conf.d/drone.bbaovanc.com new file mode 100644 index 0000000..5bee0bf --- /dev/null +++ b/conf.d/drone.bbaovanc.com @@ -0,0 +1,13 @@ +# vim: ft=caddyfile + +drone.bbaovanc.com { + encode zstd gzip + import hsts + import log + + reverse_proxy localhost:8080 { + header_up X-Real-IP {remote_host} + } + + import basicerrors +} diff --git a/conf.d/errors.bbaovanc.com b/conf.d/errors.bbaovanc.com new file mode 100644 index 0000000..4135c8c --- /dev/null +++ b/conf.d/errors.bbaovanc.com @@ -0,0 +1,10 @@ +# vim: ft=caddyfile + +errors.bbaovanc.com { + encode zstd gzip + import hsts + import log + root * /etc/caddy/errors/img + file_server + import basicerrors +} diff --git a/conf.d/git.bbaovanc.com b/conf.d/git.bbaovanc.com new file mode 100644 index 0000000..65388a6 --- /dev/null +++ b/conf.d/git.bbaovanc.com @@ -0,0 +1,20 @@ +# vim: ft=caddyfile + +git.bbaovanc.com { + encode zstd gzip + import hsts + import log + + handle_path /_/static/assets/* { + root * /var/www/git.bbaovanc.com/public + file_server + } + + handle { + reverse_proxy localhost:81 { + header_up X-Real-IP {remote_host} + } + } + + import basicerrors +} diff --git a/conf.d/media.bbaovanc.com b/conf.d/media.bbaovanc.com new file mode 100644 index 0000000..b11ad1f --- /dev/null +++ b/conf.d/media.bbaovanc.com @@ -0,0 +1,13 @@ +# vim: ft=caddyfile + +media.bbaovanc.com { + encode zstd gzip + import hsts + import log + + root * /var/www/media.bbaovanc.com + file_server { + browse + } + import basicerrors +} diff --git a/conf.d/remark.bbaovanc.com b/conf.d/remark.bbaovanc.com new file mode 100644 index 0000000..6c47cbe --- /dev/null +++ b/conf.d/remark.bbaovanc.com @@ -0,0 +1,13 @@ +# vim: ft=caddyfile + +remark.bbaovanc.com { + encode zstd gzip + import hsts + import log + + reverse_proxy localhost:82 { + header_up X-Real-IP {remote_host} + } + + import basicerrors +} diff --git a/conf.d/rick.bbaovanc.com b/conf.d/rick.bbaovanc.com new file mode 100644 index 0000000..1813608 --- /dev/null +++ b/conf.d/rick.bbaovanc.com @@ -0,0 +1,9 @@ +# vim: ft=caddyfile + +rick.bbaovanc.com { + encode zstd gzip + import hsts + import log + + redir https://www.youtube.com/watch?v=dQw4w9WgXcQ; +} diff --git a/conf.d/search.bbaovanc.com b/conf.d/search.bbaovanc.com new file mode 100644 index 0000000..27859dc --- /dev/null +++ b/conf.d/search.bbaovanc.com @@ -0,0 +1,77 @@ +# vim: ft=caddyfile + +search.bbaovanc.com { + encode zstd gzip + import hsts + import log + + @api { + path /config + path /status + } + + @static { + path /static/* + } + + @morty { + path /morty/* + } + + @notmorty { + not path /morty/* + } + + header { + # Enable cross-site filter (XSS) and tell browser to block detected attacks + X-XSS-Protection "1; mode=block" + + # Prevent some browsers from MIME-sniffing a response away from the declared Content-Type + X-Content-Type-Options "nosniff" + + # Disallow the site to be rendered within a frame (clickjacking protection) + X-Frame-Options "SAMEORIGIN" + + # Disable some features + Permissions-Policy "accelerometer=();ambient-light-sensor=(); autoplay=();camera=();encrypted-media=();focus-without-user-activation=(); geolocation=();gyroscope=();magnetometer=();microphone=();midi=();payment=();picture-in-picture=(); speaker=();sync-xhr=();usb=();vr=()" + + # Disable some features (legacy) + Feature-Policy "accelerometer 'none';ambient-light-sensor 'none'; autoplay 'none';camera 'none';encrypted-media 'none';focus-without-user-activation 'none'; geolocation 'none';gyroscope 'none';magnetometer 'none';microphone 'none';midi 'none';payment 'none';picture-in-picture 'none'; speaker 'none';sync-xhr 'none';usb 'none';vr 'none'" + + # Referer + Referrer-Policy "no-referrer" + + # X-Robots-Tag + X-Robots-Tag "noindex, noarchive, nofollow" + } + + header @api { + Access-Control-Allow-Methods "GET, OPTIONS" + Access-Control-Allow-Origin "*" + } + + header @static { + #Cache-Control "public, max-age=31536000" + Cache-Control no-cache + defer + } + + header @notmorty { + Content-Security-Policy "upgrade-insecure-requests; default-src 'none'; script-src 'self'; style-src 'self' 'unsafe-inline'; form-action 'self'; font-src 'self'; frame-ancestors 'self'; base-uri 'self'; connect-src 'self' https://overpass-api.de; img-src 'self' data: https://*.tile.openstreetmap.org; frame-src https://www.youtube-nocookie.com https://player.vimeo.com https://www.dailymotion.com https://www.deezer.com https://www.mixcloud.com https://w.soundcloud.com https://embed.spotify.com" + } + + handle @morty { + header Content-Security-Policy "default-src 'none'; style-src 'self' 'unsafe-inline'; form-action 'self'; frame-ancestors 'self'; base-uri 'self'; img-src 'self' data:; font-src 'self'; frame-src 'self'" + reverse_proxy localhost:3000 + } + + handle { + reverse_proxy localhost:4040 { + header_up X-Forwarded-Port {http.request.port} + header_up X-Forwarded-TlsProto {tls_protocol} + header_up X-Forwarded-TlsCipher {tls_cipher} + header_up X-Forwarded-HttpsProto {proto} + } + } + + import basicerrors diff --git a/errors/dl.sh b/errors/dl.sh new file mode 100755 index 0000000..ac710c0 --- /dev/null +++ b/errors/dl.sh @@ -0,0 +1,5 @@ +#!/bin/sh -x + +mkdir -p img/ +cd img/ +curl https://http.cat | grep -oE '[0-9]{3}\.jpg' | sort | uniq | parallel $@ 'wget -q https://http.cat/{} && echo "DL {}"' diff --git a/errors/index.html b/errors/index.html new file mode 100644 index 0000000..ec9ee1d --- /dev/null +++ b/errors/index.html @@ -0,0 +1,28 @@ +{{ $code := placeholder "http.error.status_code" -}} +{{ $text := placeholder "http.error.status_text" -}} +{{ $host := placeholder "http.request.host" -}} +{{ $img_url := (printf "https://errors.bbaovanc.com/%s.jpg" $code) -}} + + + {{ $code }} {{ $text }} + + + + + + + + + + + + + + + +
+

{{ $code }} {{ $text }}

+ cat +
+ +