guixsd-config

GuixSD configs for my systems
Log | Files | Refs

commit d13d0083bb797d1b15ca1feb73a46e47afad2bb6
parent e99b0a143eb112d4f07644d2d287a9cb62ff62ce
Author: Vineet Kumar <git@vineetk.net>
Date:   Sun, 25 Jan 2026 04:03:42 -0500

saklas: add badboi nginx config for ai crawler baddies

Diffstat:
Mepistemia/systems/saklas.scm | 24+++++++++++++++++++++---
1 file changed, 21 insertions(+), 3 deletions(-)

diff --git a/epistemia/systems/saklas.scm b/epistemia/systems/saklas.scm @@ -26,6 +26,21 @@ #:use-module (epistemia services zfs) #:use-module (epistemia packages zfs)) +(define %nginx-badboi + (plain-file "nginx-badboi.conf" + "\ +set $bad_boi 0; +if ($http_user_agent ~* \"(AI2Bot|Ai2Bot\\-Dolma|aiHitBot|Amazonbot|Andibot|anthropic\\-ai|Applebot|Applebot\\-Extended|bedrockbot|Brightbot\\ 1\\.0|Bytespider|CCBot|ChatGPT\\-User|Claude\\-SearchBot|Claude\\-User|Claude\\-Web|ClaudeBot|cohere\\-ai|cohere\\-training\\-data\\-crawler|Cotoyogi|Crawlspace|Diffbot|DuckAssistBot|FacebookBot|Factset_spyderbot|FirecrawlAgent|FriendlyCrawler|Google\\-CloudVertexBot|Google\\-Extended|GoogleOther|GoogleOther\\-Image|GoogleOther\\-Video|GPTBot|iaskspider/2\\.0|ICC\\-Crawler|ImagesiftBot|img2dataset|ISSCyberRiskCrawler|Kangaroo\\ Bot|meta\\-externalagent|Meta\\-ExternalAgent|meta\\-externalfetcher|Meta\\-ExternalFetcher|MistralAI\\-User/1\\.0|NovaAct|OAI\\-SearchBot|omgili|omgilibot|Operator|PanguBot|Panscient|panscient\\.com|Perplexity\\-User|PerplexityBot|PetalBot|PhindBot|QualifiedBot|QuillBot|quillbot\\.com|SBIntuitionsBot|Scrapy|SemrushBot\\-OCOB|SemrushBot\\-SWA|Sidetrade\\ indexer\\ bot|TikTokSpider|Timpibot|VelenPublicWebCrawler|Webzio\\-Extended|wpbot|YandexAdditional|YandexAdditionalBot|YouBot)\") { + set $bad_boi 1; +} +if ($request_uri = \"/robots.txt\") { + set $bad_boi 0; +} +if ($bad_boi = 1) { + return 307 https://planet.openstreetmap.org/pbf/planet-latest.osm.pbf; +} +")) + (operating-system (inherit base-system) ;; (host-name "saklas") @@ -239,19 +254,22 @@ rpz: (listen '("443 ssl")) (ssl-certificate "/etc/certs/vineetk.net/fullchain.pem") (ssl-certificate-key "/etc/certs/vineetk.net/privkey.pem") - (root "/var/www/site_vineetk")) + (root "/var/www/site_vineetk") + (raw-content (list "include " %nginx-badboi ";"))) (nginx-server-configuration (server-name '("13f0.net")) (listen '("443 ssl")) (ssl-certificate "/etc/certs/13f0.net/fullchain.pem") (ssl-certificate-key "/etc/certs/13f0.net/privkey.pem") - (root "/var/www/site_13f0")) + (root "/var/www/site_13f0") + (raw-content (list "include " %nginx-badboi ";"))) (nginx-server-configuration (server-name '("vinbiz.ca")) (listen '("443 ssl")) (ssl-certificate "/etc/certs/vinbiz.ca/fullchain.pem") (ssl-certificate-key "/etc/certs/vinbiz.ca/privkey.pem") - (root "/var/www/site_vinbiz"))))))) + (root "/var/www/site_vinbiz") + (raw-content (list "include " %nginx-badboi ";")))))))) %base-services) (guix-service-type config => (guix-configuration