v.1.17.0 is a rather large release. This kind of giant feature release will not happen again as this has caused significant problems with testing in various configurations. Automated testing is being worked on but I have nothing to report yet.
Big-ticket features include but are not limited to:
- Configuration can be in YAML or JSON
- Configuration snippets can be imported from the default library or anywhere on the filesystem
- Default rules now flag "Opera" after seeing an attack in the wild that does that
- Many documentation and build script fixes
- AI-robots.txt rules are added to the default config to stop the worst offenders that care to identify themselves
- Apache, Nginx, and Traefik have gotten documentation
- Users can match by headers as well as user agents or paths
- Internal refactoring to make Anubis faster and easier to maintain
- "Secondary screening" has been removed to give a more consistent user experience
- The Internet Archive is allowlisted by default
- X-Forwarded-For header calculation should be a bit better
- Subpath support (run anubis on
/git
) - Many implicit things have been documented
And more. I will try to tag new versions more aggressively in the future. Big releases like this suck and I don't like having to do them.
What's Changed
- dev: Improvements to build scripts by @SlyEcho in #232
- docs/user/known-instances: add page by @fossdd in #214
- feat: update botPolicies for DuckDuckGo web crawler by @thatonecodes in #250
- workflows: hash pin more Actions by @p-linnane in #241
- feat(docs): expand known instances list with new entries by @JasonLovesDoggo in #254
- docs/docs/user/known-instances.md: remove duplicate scioly.org mention by @rayes0 in #259
- feat(docs): grammar fixes & updates for known users by @hyperdefined in #257
- use depot builders by @Xe in #262
- cmd/containerbuild/main.go: fix docker tag parsing by @rayes0 in #260
- fix(fetch): improve error handling for Content-Type parsing by @JasonLovesDoggo in #253
- Docs pallete fix by @B4uti4github in #271
- build(deps): bump the gomod group with 3 updates by @dependabot in #265
- build(deps): bump github/codeql-action from 3.28.13 to 3.28.15 in the github-actions group by @dependabot in #264
- Create Anubis FreeBSD rc.d script by @pswilde in #274
- docs/blog: remove by @fossdd in #273
- Docs: add nginx with Anubis in the middle configuration example by @massar in #282
- perf: embed challenge data in HTML by @ryanccn in #279
- Allow ranges from the Internet Archive (AS7941) by @ecdfeaa2 in #276
- Add 'Opera' to 'generic-browser' bot policy rule by @mjeanson in #220
- Add more AI user agent in botPolicies.json by @Dryusdan in #249
- docs/admin/installation: Apache documentation by @Xe in #290
- docs/admin: break per-environment details into their own pages by @Xe in #292
- Use outline shorthand by @JasonLovesDoggo in #293
- Add Haiku to known instances by @AsmodeumX in #304
- Add headers bot rule by @Neur0toxine in #300
- added an another git.lupancham.net to known instances of use by @Thinkseal in #296
- Update known-instances.md by @Xe in #309
- feat(docs): added info on how to configure traefik by @snoweuph in #255
- lib: move config to yaml by @Xe in #307
- docs: Update changelog with consistent periods by @JasonLovesDoggo in #313
- build(deps): bump astral-sh/setup-uv from 5.4.1 to 5.4.2 in the github-actions group by @dependabot in #312
- feat(lib): use Checker type instead of ad-hoc logic by @Xe in #318
- data: disable generic-bot-catchall by default by @Xe in #322
- chore(ci): migrate to TecharoHQ/yeet by @Xe in #323
- chore(known-instances): Add https://git.devuan.org/ by @Xe in #324
- fix: improve error handling and create the json encoder once #331 by @JasonLovesDoggo in #332
- fix(docs): make the docs respect light/dark mode by @Xe in #334
- feat(cmd/anubis): compute full XFF header by @acuteaura in #328
- feat: enable loading config fragments by @Xe in #321
- build(deps): bump http-proxy-middleware from 2.0.7 to 2.0.9 in /docs by @dependabot in #335
- build(deps): bump estree-util-value-to-estree from 3.3.2 to 3.3.3 in /docs by @dependabot in #336
- feat(xess): move CSS color definitions to CSS variables by @Xe in #339
- Add documentation for default allow behavior by @lucrnz in #346
- fix(lib): use correct URL for path checker in PassChallenge by @compilade in #347
- README: represent repology badge in 3 column format by @luzpaz in #349
- Fix: mojeekbot regex by @igorbrai in #351
- Fix Traegik but funny typos by @remyzandwijk in #356
- docs(known-instances): add NixOS Hydra by @RossComputerGuy in #358
- docs: Fix nginx.mdx indentation by @diegoe in #359
- docs(README): enable dark mode for the star history view by @Xe in #360
- feat: more elaborate XFF compute by @acuteaura in #350
- fix(docs): fix typos in Traefik integration docs by @thatonecodes in #361
- docs(install): note that Anubis needs certain paths proxied by @Xe in #363
- Add check endpoint which can be used with nginx' auth_request function by @SuperSandro2000 in #266
- feat: add support for a base prefix by @JasonLovesDoggo in #294
- fix(lib): make Anubis less paranoid by @Xe in #365
- fix(config): remove trailing newlines in regexes by @Xe in #373
- docs(known-instances): add Codeberg by @p0008874 in #381
- test(config): add Xesite's old policy file to known good test cases by @Xe in #382
- README.md: Fix link to policy definition docs. by @Kistaro in #380
- refactor(lib): Split up anubis.go into some smaller files. by @JasonLovesDoggo in #379
- ci(packages): final pre-release yeet bump by @Xe in #384
New Contributors
- @fossdd made their first contribution in #214
- @thatonecodes made their first contribution in #250
- @rayes0 made their first contribution in #259
- @hyperdefined made their first contribution in #257
- @B4uti4github made their first contribution in #271
- @pswilde made their first contribution in #274
- @massar made their first contribution in #282
- @ryanccn made their first contribution in #279
- @mjeanson made their first contribution in #220
- @Dryusdan made their first contribution in #249
- @AsmodeumX made their first contribution in #304
- @Neur0toxine made their first contribution in #300
- @Thinkseal made their first contribution in #296
- @snoweuph made their first contribution in #255
- @acuteaura made their first contribution in #328
- @lucrnz made their first contribution in #346
- @compilade made their first contribution in #347
- @luzpaz made their first contribution in #349
- @igorbrai made their first contribution in #351
- @remyzandwijk made their first contribution in #356
- @RossComputerGuy made their first contribution in #358
- @diegoe made their first contribution in #359
- @SuperSandro2000 made their first contribution in #266
- @p0008874 made their first contribution in #381
- @Kistaro made their first contribution in #380
Full Changelog: v1.16.0...v1.17.0