summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean Lucas2018-07-02 19:06:55 -0400
committerJean Lucas2018-07-09 23:10:17 -0400
commita531583c445aad00f92ae4f081b59f3653ddb466 (patch)
tree4b4ab006773f9838afd520e0db96c81583b40ed0
parented99bcb5f9f0002bc49337d7b6805c4b1141b9f5 (diff)
downloadaur-a531583c445aad00f92ae4f081b59f3653ddb466.tar.gz
Add provides, add rules.json
-rw-r--r--.SRCINFO11
-rw-r--r--PKGBUILD18
-rw-r--r--rules.json62
3 files changed, 80 insertions, 11 deletions
diff --git a/.SRCINFO b/.SRCINFO
index e4d755d42398..49c6bb970372 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,9 +1,9 @@
# Generated by mksrcinfo v8
-# Sat Jun 16 00:59:32 UTC 2018
+# Tue Jul 10 03:10:10 UTC 2018
pkgbase = filtron-git
- pkgdesc = Filtering reverse HTTP proxy
+ pkgdesc = Filtering reverse-HTTP proxy
pkgver = 0+51+93f8b22
- pkgrel = 1
+ pkgrel = 2
url = https://github.com/asciimoo/filtron
arch = any
license = AGPL3
@@ -13,10 +13,13 @@ pkgbase = filtron-git
optdepends = searx-git: A privacy-respecting, hackable metasearch engine (Git)
optdepends = morty: Privacy-aware web content sanitizer proxy-as-a-service
optdepends = morty-git: Privacy-aware web content sanitizer proxy-as-a-service (Git)
+ provides = filtron
conflicts = filtron
- source = git+https://github.com/asciimoo/filtron.git
+ source = git+https://github.com/asciimoo/filtron
+ source = rules.json
source = filtron.service
sha512sums = SKIP
+ sha512sums = 2668deb746ad361ebe32ea46b361f69c0eaf591b7faebb10dd2de11e114645c5fd726d45bb6aebec5b5bcef8dcad51d4b681a5e4b1ec83f918de4929aa237285
sha512sums = 0b7bbe55b3fd89d589e5662699f93d7aaf3c1d77d29be9cc568f8430e4a2491ba4920ca153f4d887a29da1f51670ec06346809cc5d1f373af540e252feccc799
pkgname = filtron-git
diff --git a/PKGBUILD b/PKGBUILD
index c7db3a59b492..b72c3838e557 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -2,35 +2,39 @@
pkgname=filtron-git
pkgver=0+51+93f8b22
-pkgrel=1
-pkgdesc='Filtering reverse HTTP proxy'
+pkgrel=2
+pkgdesc='Filtering reverse-HTTP proxy'
arch=(any)
-url='https://github.com/asciimoo/filtron'
+url=https://github.com/asciimoo/filtron
license=(AGPL3)
+provides=(filtron)
conflicts=(filtron)
makedepends=(git go)
optdepends=('searx: A privacy-respecting, hackable metasearch engine'
'searx-git: A privacy-respecting, hackable metasearch engine (Git)'
'morty: Privacy-aware web content sanitizer proxy-as-a-service'
'morty-git: Privacy-aware web content sanitizer proxy-as-a-service (Git)')
-source=(git+https://github.com/asciimoo/filtron.git
+source=(git+$url
+ rules.json
filtron.service)
sha512sums=(SKIP
+ 2668deb746ad361ebe32ea46b361f69c0eaf591b7faebb10dd2de11e114645c5fd726d45bb6aebec5b5bcef8dcad51d4b681a5e4b1ec83f918de4929aa237285
0b7bbe55b3fd89d589e5662699f93d7aaf3c1d77d29be9cc568f8430e4a2491ba4920ca153f4d887a29da1f51670ec06346809cc5d1f373af540e252feccc799)
pkgver() {
- cd $srcdir/filtron
+ cd filtron
printf 0+%s+%s $(git rev-list --count HEAD) $(git rev-parse --short HEAD)
}
build() {
- cd $srcdir/filtron
+ cd filtron
GOPATH=$srcdir/filtron go get -v -x github.com/asciimoo/filtron
}
package() {
- cd $srcdir/filtron
+ cd filtron
install -D bin/filtron $pkgdir/usr/bin/filtron
+ install -Dm 644 ../rules.json $pkgdir/etc/filtron/rules.json
install -Dm 644 ../filtron.service $pkgdir/usr/lib/systemd/system/filtron.service
install -Dm 644 LICENSE $pkgdir/usr/share/licenses/filtron/LICENSE
}
diff --git a/rules.json b/rules.json
new file mode 100644
index 000000000000..487b61c9ef48
--- /dev/null
+++ b/rules.json
@@ -0,0 +1,62 @@
+[
+ {
+ "name": "Search request",
+ "filters": ["Param:q", "Path=^(/|/search)$"],
+ "interval": 5,
+ "limit": 1,
+ "subrules": [
+ {
+ "name": "Robo-agent limit",
+ "interval": 5,
+ "limit": 1,
+ "filters": ["Header:User-Agent=(curl|cURL|Wget|python-requests|Scrapy|FeedFetcher|Go-http-client)"],
+ "actions": [
+ { "name": "block",
+ "params": { "message": "Rate limit exceeded" } }
+ ]
+ },
+ {
+ "name": "Bot limit",
+ "limit": 0,
+ "stop": true,
+ "filters": ["Header:User-Agent=(Googlebot|bingbot|Baiduspider|yacybot|YandexMobileBot|YandexBot|Yahoo! Slurp|MJ11bot|AhrefsBot|archive.org_bot|msnbot|MJ11bot|SeznamBot|linkdexbot|Netvibes|SMTBot|zgrab|James BOT)"],
+ "actions": [
+ { "name": "block",
+ "params": { "message": "Rate limit exceeded" } }
+ ]
+ },
+ {
+ "name": "IP limit",
+ "interval": 5,
+ "limit": 1,
+ "stop": true,
+ "aggregations": ["Header:X-Forwarded-For"],
+ "actions": [
+ { "name": "block",
+ "params": { "message": "Rate limit exceeded" } }
+ ]
+ },
+ {
+ "name": "RSS/JSON limit",
+ "interval": 5,
+ "limit": 1,
+ "stop": true,
+ "filters": ["Param:format=(csv|json|rss)"],
+ "actions": [
+ { "name": "block",
+ "params": { "message": "Rate limit exceeded" } }
+ ]
+ },
+ {
+ "name": "User-agent limit",
+ "interval": 5,
+ "limit": 1,
+ "aggregations": ["Header:User-Agent"],
+ "actions": [
+ { "name": "block",
+ "params": { "message": "Rate limit exceeded" } }
+ ]
+ }
+ ]
+ }
+]