fix(data): add ruleset to explicitly allow Docker / OCI clients

Fixes #1252

This is technically a regression as these clients used to work in Anubis
v1.22.0, however it is allowable to make this opt-in as most websites do not
expect to be serving Docker / OCI registry client traffic.

Signed-off-by: Xe Iaso <me@xeiaso.net>
This commit is contained in:
Xe Iaso
2025-11-07 18:47:39 -05:00
parent df217d61c8
commit 2ab4e5546f
7 changed files with 103 additions and 0 deletions

View File

@@ -0,0 +1,7 @@
bots:
- import: (data)/meta/default-config.yaml
- import: (data)/clients/docker-client.yaml
status_codes:
CHALLENGE: 200
DENY: 403

View File

@@ -0,0 +1,30 @@
services:
registry:
image: distribution/distribution:edge
restart: always
relayd:
image: ghcr.io/xe/x/relayd
pull_policy: always
environment:
CERT_DIR: /etc/techaro/pki/registry.local.cetacean.club
CERT_FNAME: cert.pem
KEY_FNAME: key.pem
PROXY_TO: http://anubis:3000
ports:
- 3004:3004
volumes:
- ../pki/registry.local.cetacean.club:/etc/techaro/pki/registry.local.cetacean.club
anubis:
image: ko.local/anubis
restart: always
environment:
BIND: ":3000"
TARGET: http://registry:5000
POLICY_FNAME: /etc/techaro/anubis.yaml
USE_REMOTE_ADDRESS: "true"
ports:
- 3000
volumes:
- ./anubis.yaml:/etc/techaro/anubis.yaml

24
test/docker-registry/test.sh Executable file
View File

@@ -0,0 +1,24 @@
#!/usr/bin/env bash
set -euo pipefail
source ../lib/lib.sh
build_anubis_ko
function cleanup() {
docker compose down
}
trap cleanup EXIT SIGINT
mint_cert registry.local.cetacean.club
docker compose up -d
backoff-retry skopeo \
--insecure-policy \
copy \
--dest-tls-verify=false \
docker://hello-world \
docker://registry.local.cetacean.club:3004/hello-world

2
test/docker-registry/var/.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
*
!.gitignore