summaryrefslogtreecommitdiff
path: root/config/services/web/searx/filtron
diff options
context:
space:
mode:
authorquentin@aristote.fr <quentin@aristote.fr>2026-10-12 10:38:20 +0200
committerquentin@aristote.fr <quentin@aristote.fr>2026-10-12 10:41:21 +0200
commit4b5dd6a2895dde26c38498d0d899aaa12b009a69 (patch)
tree70fca0365c8859d4c0fbd00725e69439ff708057 /config/services/web/searx/filtron
parent583bbed47c3b85e41bef50eeea4f833076e685b4 (diff)
downloadhermes-4b5dd6a2895dde26c38498d0d899aaa12b009a69.tar.gz
hermes-4b5dd6a2895dde26c38498d0d899aaa12b009a69.tar.bz2
hermes-4b5dd6a2895dde26c38498d0d899aaa12b009a69.tar.xz
searx: filtron -> limiter
Diffstat (limited to 'config/services/web/searx/filtron')
-rw-r--r--config/services/web/searx/filtron/default.nix121
1 files changed, 0 insertions, 121 deletions
diff --git a/config/services/web/searx/filtron/default.nix b/config/services/web/searx/filtron/default.nix
deleted file mode 100644
index da4f1e6..0000000
--- a/config/services/web/searx/filtron/default.nix
+++ /dev/null
@@ -1,121 +0,0 @@
-{...}: {
- services.filtron = {
- enable = true;
- target.port = 8000;
- rules = [
- {
- name = "roboagent limit";
- filters = [
- "Header:User-Agent=(curl|cURL|Wget|python-requests|Scrapy|FeedFetcher|Go-http-client|Ruby|UniversalFeedParser)"
- ];
- limit = 0;
- stop = true;
- actions = [
- {name = "log";}
- {
- name = "block";
- params = {message = "Rate limit exceeded";};
- }
- ];
- }
- {
- name = "botlimit";
- filters = [
- "Header:User-Agent=(Googlebot|bingbot|Baiduspider|yacybot|YandexMobileBot|YandexBot|Yahoo! Slurp|MJ12bot|AhrefsBot|archive.org_bot|msnbot|MJ12bot|SeznamBot|linkdexbot|Netvibes|SMTBot|zgrab|James BOT)"
- ];
- limit = 0;
- stop = true;
- actions = [
- {name = "log";}
- {
- name = "block";
- params = {message = "Rate limit exceeded";};
- }
- ];
- }
- {
- name = "suspiciously frequent IP";
- filters = [];
- interval = 600;
- limit = 30;
- aggregations = ["Header:X-Forwarded-For"];
- actions = [{name = "log";}];
- }
- {
- name = "search request";
- filters = ["Param:q" "Path=^(/|/search)$"];
- interval = 61;
- limit = 999;
- subrules = [
- {
- name = "missing Accept-Language";
- filters = ["!Header:Accept-Language"];
- limit = 0;
- stop = true;
- actions = [
- {name = "log";}
- {
- name = "block";
- params = {message = "Rate limit exceeded";};
- }
- ];
- }
- # {
- # name = "suspiciously Connection=close header";
- # filters = [ "Header:Connection=close" ];
- # limit = 0;
- # stop = true;
- # actions = [
- # { name = "log"; }
- # {
- # name = "block";
- # params = { message = "Rate limit exceeded"; };
- # }
- # ];
- # }
- {
- name = "IP limit";
- interval = 61;
- limit = 9;
- stop = true;
- aggregations = ["Header:X-Forwarded-For"];
- actions = [
- {name = "log";}
- {
- name = "block";
- params = {message = "Rate limit exceeded";};
- }
- ];
- }
- {
- name = "rss/json limit";
- filters = ["Param:format=(csv|json|rss)"];
- interval = 121;
- limit = 2;
- stop = true;
- actions = [
- {name = "log";}
- {
- name = "block";
- params = {message = "Rate limit exceeded";};
- }
- ];
- }
- {
- name = "useragent limit";
- interval = 61;
- limit = 199;
- aggregations = ["Header:User-Agent"];
- actions = [
- {name = "log";}
- {
- name = "block";
- params = {message = "Rate limit exceeded";};
- }
- ];
- }
- ];
- }
- ];
- };
-}