Index: www/Makefile =================================================================== --- www/Makefile +++ www/Makefile @@ -56,6 +56,7 @@ SUBDIR += angie-module-upload SUBDIR += angie-module-vod SUBDIR += angie-module-xslt + SUBDIR += anubis SUBDIR += anyremote2html SUBDIR += apache-mode.el SUBDIR += apache24 Index: www/anubis/Makefile =================================================================== --- /dev/null +++ www/anubis/Makefile @@ -0,0 +1,22 @@ +PORTNAME= anubis +DISTVERSIONPREFIX= v +DISTVERSION= 1.15.0 +CATEGORIES= www + +MAINTAINER= dch@FreeBSD.org +COMMENT= Anti-scraper web proxy using browser-based proof-of-work challenges +WWW= https://anubis.techaro.lol/ + +LICENSE= BSD3CLAUSE +LICENSE_FILE= ${WRKSRC}/LICENSE + +USES= go:modules,1.24 +USE_RC_SUBR= ${PORTNAME} + +GO_MODULE= github.com/techarohq/${PORTNAME} +GO_TARGET= ./cmd/${PORTNAME} +GO_BUILDFLAGS= -ldflags="-X github.com/TecharoHQ/anubis.Version=v${PORTVERSION}" + +PLIST_FILES= bin/${PORTNAME} + +.include Index: www/anubis/distinfo =================================================================== --- /dev/null +++ www/anubis/distinfo @@ -0,0 +1,5 @@ +TIMESTAMP = 1743198093 +SHA256 (go/www_anubis/anubis-v1.15.0/v1.15.0.mod) = c4060528e14abead94fa468734829fd9ce1c88b9bea06ae6fed02d94c804013b +SIZE (go/www_anubis/anubis-v1.15.0/v1.15.0.mod) = 2190 +SHA256 (go/www_anubis/anubis-v1.15.0/v1.15.0.zip) = 28a00aedc5da9f778dd332023ac4c5b71f542e6350cabfcf431fa9a7dc9b679b +SIZE (go/www_anubis/anubis-v1.15.0/v1.15.0.zip) = 1207073 Index: www/anubis/files/anubis.in =================================================================== --- /dev/null +++ www/anubis/files/anubis.in @@ -0,0 +1,43 @@ +#!/bin/sh +# +# PROVIDE: anubis +# REQUIRE: DAEMON NETWORKING +# KEYWORD: shutdown +# +# Add the following lines to /etc/rc.conf.local or /etc/rc.conf to enable anubis: +# anubis_enable (bool): Set to "NO" by default. +# Set it to "YES" to enable anubis. +# anubis_user (user): Set to "www" by default. +# User to run anubis as. +# anubis_group (group): Set to "www" by default. +# Group to run anubis as. +# anubis_args (str): Set to "" by default. +# Extra flags passed to anubis. + +. /etc/rc.subr + +name="anubis" +rcvar=anubis_enable + +load_rc_config $name + +: ${anubis_enable:="NO"} +: ${anubis_user:="www"} +: ${anubis_group:="www"} +: ${anubis_args:=""} + +pidfile="/var/run/${name}.pid" +procname="%%PREFIX%%/bin/anubis" +command="/usr/sbin/daemon" +command_args="-f -c -R 5 -r -T ${name} -P ${pidfile} ${procname} ${anubis_args}" + +start_precmd=anubis_startprecmd + +anubis_startprecmd() +{ + if [ ! -e ${pidfile} ]; then + install -o ${anubis_user} -g ${anubis_group} /dev/null ${pidfile}; + fi +} + +run_rc_command "$1" Index: www/anubis/pkg-descr =================================================================== --- /dev/null +++ www/anubis/pkg-descr @@ -0,0 +1,12 @@ +Anubis is a web proxy that protects upstream resources from scraper bots +by using a SHA256 proof-of-work challenge. It "weighs the soul of your +connection" to determine if you're a legitimate user or an automated bot. + +Anubis serves as a protective layer for websites that are being aggressively +scraped by AI bots and other automated systems that don't respect robots.txt +standards. It provides an alternative to services like Cloudflare when those +options aren't available or desired. + +The proof-of-work system requires clients to solve a computational challenge +before accessing protected content, effectively deterring most automated +scrapers while allowing legitimate users through with minimal disruption. Index: www/anubis/pkg-message =================================================================== --- /dev/null +++ www/anubis/pkg-message @@ -0,0 +1,18 @@ +[ +{ + type: install + message: <