Find a file
soopyc 1c00431098
general unix domain sockets support (#45)
* feat: allow binding to unix domain sockets

this is useful when the user does not want to expose more tcp ports than
needed. also simplifes configuration in some situation, like with nixos
modules as the socket paths can be automatically configured.

docs updated with additional configuration flags.

Signed-off-by: Cassie Cheung <me@soopy.moe>

* feat: graceful shutdown and cleanup on signal

this is needed to clean up left-over unix sockets, else on the next boot
listener panics with `address already in use`.

Co-authored-by: cat <cat@gensokyo.uk>
Signed-off-by: Cassie Cheung <me@soopy.moe>

* feat: support unix socket upstream targets

adds support for proxying unix socket upstreams, essentially allowing
anubis to run without listening on tcp sockets at all*.

*for metrics, neither prometheus and victoriametrics supports scraping
from unix sockets. if metrics are desired, tcp sockets are still needed.

Co-authored-by: cat <cat@gensokyo.uk>
Signed-off-by: Cassie Cheung <me@soopy.moe>

* docs: add changelog entry

---------

Signed-off-by: Cassie Cheung <me@soopy.moe>
Co-authored-by: cat <cat@gensokyo.uk>
2025-03-21 10:58:05 -04:00
.github off by one 2025-03-21 10:40:30 -04:00
cmd general unix domain sockets support (#45) 2025-03-21 10:58:05 -04:00
docs general unix domain sockets support (#45) 2025-03-21 10:58:05 -04:00
internal initial import from /x/ monorepo 2025-03-17 19:33:07 -04:00
run initial import from /x/ monorepo 2025-03-17 19:33:07 -04:00
var initial import from /x/ monorepo 2025-03-17 19:33:07 -04:00
xess Ensure content flows and stays centered on small screens (#27) 2025-03-20 17:19:45 -04:00
.gitignore initial import from /x/ monorepo 2025-03-17 19:33:07 -04:00
.ko.yaml Try using ko to build images 2025-03-19 09:10:29 -04:00
Brewfile Try using ko to build images 2025-03-19 09:10:29 -04:00
doc.go initial import from /x/ monorepo 2025-03-17 19:33:07 -04:00
Dockerfile Explicitely define image sources in Dockerfile (#21) 2025-03-20 17:28:30 -04:00
go.mod initial import from /x/ monorepo 2025-03-17 19:33:07 -04:00
go.sum initial import from /x/ monorepo 2025-03-17 19:33:07 -04:00
LICENSE initial import from /x/ monorepo 2025-03-17 19:33:07 -04:00
PULL_REQUEST_TEMPLATE.md pull request template 2025-03-20 16:01:44 -04:00
README.md add star history chart to README 2025-03-21 08:59:44 -04:00
VERSION v1.13.0 2025-03-20 09:28:38 -04:00
yeetfile.js initial import from /x/ monorepo 2025-03-17 19:33:07 -04:00

Anubis

A smiling chibi dark-skinned anthro jackal with brown hair and tall ears looking victorious with a thumbs-up

enbyware GitHub Issues or Pull Requests by label GitHub go.mod Go version language count repo size

Anubis weighs the soul of your connection using a sha256 proof-of-work challenge in order to protect upstream resources from scraper bots.

Installing and using this will likely result in your website not being indexed by some search engines. This is considered a feature of Anubis, not a bug.

This is a bit of a nuclear response, but AI scraper bots scraping so aggressively have forced my hand. I hate that I have to do this, but this is what we get for the modern Internet because bots don't conform to standards like robots.txt, even when they claim to.

In most cases, you should not need this and can probably get by using Cloudflare to protect a given origin. However, for circumstances where you can't or won't use Cloudflare, Anubis is there for you.

If you want to try this out, connect to anubis.techaro.lol.

Support

If you run into any issues running Anubis, please open an issue and tag it with the Anubis tag. Please include all the information I would need to diagnose your issue.

For live chat, please join the Patreon and ask in the Patron discord in the channel #anubis.

Star History

Star History Chart