Sign inSign up

bwalia/nebulacr

By bwalia

•Updated 5 months ago

Image
0

5.1K

bwalia/nebulacr repository overview

⁠NebulaCR

A cloud-native Docker/OCI container registry built in Rust with multi-tenancy, zero-trust authentication, and pull-through caching.

⁠Quick Start

docker run -d -p 5000:5000 bwalia/nebulacr:latest

Then push an image:

docker tag nginx:latest localhost:5000/myorg/nginx:latest
docker push localhost:5000/myorg/nginx:latest

⁠Key Features

  • OCI Distribution API v2 compliant
  • Pull-through cache for Docker Hub, GHCR, GCR, Quay.io, registry.k8s.io
  • Multi-tenancy with Tenant, Project, and AccessPolicy CRDs
  • Zero-trust auth via OIDC (Google, GitHub Actions, GitLab CI, Azure AD)
  • Multiple storage backends -- filesystem, S3, GCS, Azure Blob
  • High availability -- stateless services, HPA, circuit breakers
  • Multi-region replication with async/semi-sync modes
  • Observability -- Prometheus metrics, JSON logging, OpenTelemetry tracing
  • Multi-architecture -- linux/amd64 and linux/arm64

⁠Image Tags

TagDescription
latestLatest stable release
vX.Y.ZSpecific version
edgeLatest development build from main

⁠Docker Compose

services:
  registry:
    image: bwalia/nebulacr:latest
    command: ["nebula-registry"]
    ports:
      - "5000:5000"
      - "9090:9090"
    environment:
      NEBULACR_STORAGE__BACKEND: filesystem
      NEBULACR_STORAGE__ROOT: /var/lib/nebulacr/data
      NEBULACR_AUTH__VERIFICATION_KEY_PATH: /etc/nebulacr/keys/public.pem
    volumes:
      - registry-data:/var/lib/nebulacr/data

See the full docker-compose.yml⁠ for a complete setup with auth and key generation.

⁠Kubernetes (Helm)

helm install nebulacr oci://ghcr.io/bwalia/charts/nebulacr \
  --namespace nebulacr --create-namespace

⁠Ports

PortService
5000OCI Registry API
5001Auth / Token service
9090Prometheus metrics

⁠Environment Variables

VariableDefaultDescription
NEBULACR_STORAGE__BACKENDfilesystemStorage backend (filesystem, s3, gcs, azure)
NEBULACR_STORAGE__ROOT/var/lib/nebulacr/dataFilesystem storage root
NEBULACR_SERVER__LISTEN_ADDR0.0.0.0:5000Registry listen address
NEBULACR_AUTH__VERIFICATION_KEY_PATH--Path to JWT public key
RUST_LOGinfoLog level

⁠License

Apache-2.0

Tag summary

Content type

Image

Digest

sha256:046ccc8ed…

Size

55.2 MB

Last updated

5 months ago

docker pull bwalia/nebulacr:1e4aea9