Sign inSign up

digicrafts/a2a-registry

By digicrafts

•Updated about 1 month ago

A lease-based registration and discovery service for logical AI agents that publish A2A Agent Cards.

Image
0

172

digicrafts/a2a-registry repository overview

⁠A2A Registry Server

A lightweight, lease-based registry and discovery server for A2A⁠ agents.

The registry stores A2A Agent Cards, supports TTL heartbeats and ownership tokens, provides filtering and pagination, and can use an in-memory or distributed etcd storage backend. The image also includes the optional web dashboard.

⁠Quick start

Pull and run the latest release:

docker pull digicrafts/a2a-registry:0.2.5

docker run -d \
  --name a2a-registry \
  --restart unless-stopped \
  -p 3003:3003 \
  -e REGISTRY_STORE=memory \
  digicrafts/a2a-registry:0.2.5

Open the dashboard at http://localhost:3003⁠.

The registry API is available at http://localhost:3003/v1.

Check that the container is ready:

curl http://localhost:3003/health/ready

⁠Configuration

Pass configuration through environment variables. The most commonly used options are:

VariableDefaultDescription
REGISTRY_PORT3003HTTP listening port
REGISTRY_PUBLIC_URLLocal port URLPublic base URL in service metadata
REGISTRY_STOREmemoryStorage backend: memory or etcd
REGISTRY_WRITE_TOKENUnsetBearer token required for registrations
REGISTRY_DEFAULT_TTL_SECONDS60Default registration lease TTL
REGISTRY_CORS_ORIGIN*Allowed CORS origin
REGISTRY_LOG_LEVELinfoPino log level
ETCD_ENDPOINThttp://localhost:2379etcd v3 JSON gateway URL
ETCD_PREFIX/a2a-registry/agents/etcd key prefix

For the complete configuration reference, see the server README⁠.

⁠Protect writes with a bearer token

Set REGISTRY_WRITE_TOKEN at runtime. Do not bake secrets into a custom image:

docker run -d \
  --name a2a-registry \
  --restart unless-stopped \
  -p 3003:3003 \
  -e REGISTRY_STORE=memory \
  -e REGISTRY_WRITE_TOKEN="change-this-token" \
  digicrafts/a2a-registry:0.2.5

Clients must then send:

Authorization: Bearer change-this-token

⁠Distributed deployment with etcd

Use etcd when registrations must survive registry restarts or be shared by multiple registry instances. The registry container must be able to resolve the etcd service name on its Docker network:

docker run -d \
  --name a2a-registry \
  --restart unless-stopped \
  -p 3003:3003 \
  -e REGISTRY_STORE=etcd \
  -e ETCD_ENDPOINT=http://etcd:2379 \
  -e ETCD_PREFIX=/a2a-registry/agents/ \
  -e REGISTRY_WRITE_TOKEN="change-this-token" \
  digicrafts/a2a-registry:0.2.5

For production, enable etcd authentication and TLS, use a least-privilege etcd identity, and run an odd-sized etcd cluster.

⁠Image details

  • Image: digicrafts/a2a-registry
  • Port: 3003
  • Healthcheck: GET /health/ready
  • Web dashboard: enabled by default in the image
  • Runtime: non-root user
  • Architectures: linux/amd64 and linux/arm64

Available tags include:

0.2.5
latest

Version tags are recommended for production deployments.

Tag summary

Content type

Image

Digest

sha256:25dcacdb0…

Size

56.6 MB

Last updated

about 1 month ago

docker pull digicrafts/a2a-registry