NebulaCR is a cloud-native OCI container registry built in Rust. Multi-region replication, enterprise AD/OIDC authentication, pull-through caching, and a real-time dashboard — all in a single binary.
From development to production, NebulaCR covers the entire container image lifecycle.
nebula-scanner. SBOMs are built natively in Rust — no Trivy/Grype shell-out — then matched against OSV, GHSA, and NVD with ecosystem-aware version comparators.
/v2/scan/{id}/dockerfile-fix)A dark-themed operations dashboard with real-time metrics, image browsing, and identity management — embedded in the registry binary.
Zero static credentials. Seamless integration with your existing identity infrastructure.
| Scenario | Without SCIM | With SCIM |
|---|---|---|
| New hire | Must login first | Pre-provisioned instantly |
| Team change | Next login syncs | Immediate role update |
| Offboarding | Token expires in 5 min | Instant revocation |
| Audit "who has access?" | Only logged-in users | All entitled users |
| 500+ developers | Works but blind spots | Full visibility |
From deployment to pushing your first image in four steps.
docker login using SSO or robot account credentials. Push images to your multi-tenant registry with automatic replication.Built into the registry. Triggered on every push. No external scanner pod, no Trivy daemon, no shell-out.
nebula-registry, or in a dedicated nebula-scanner worker.| Endpoint | Description |
|---|---|
GET /v2/scan/live/{digest} | Poll-until-complete scan result |
POST /v2/scan | Trigger a scan for a (repo, tag) |
GET /v2/scan/{id}/report | Rendered scan report |
GET /v2/scan/{id}/sbom | CycloneDX SBOM |
GET /v2/scan/{id}/dockerfile-fix | AI-suggested Dockerfile remediation |
POST /v2/scan/{id}/pr-comment | Post results as a GitHub PR review comment |
GET /v2/ws/scan/{digest} | WebSocket progress stream |
GET /v2/cve/search | Cross-image CVE search |
POST /v2/vex | Ingest CycloneDX VEX statements |
POST /admin/vulndb/ingest | Trigger an OSV/GHSA/NVD ingest run |
All /v2/scan/** and /admin/** routes accept Authorization: Bearer nck_<secret> API keys with per-permission scoping.
| Workflow | Trigger | Scope |
|---|---|---|
nightly-cve-scan.yml | Manual dispatch | Compose stack scan against a fixed image list (smoke test) |
nightly-cve-scan-all.yml | Cron 03:17 UTC + dispatch | Enumerates /v2/_catalog and scans every (repo, tag) in the registry |
deploy-nightly-cve-scan.yml | Push to deploy/k8s/nightly-cve-scan/** | Deploys the in-cluster k3s CronJob — the production schedule |
Each run produces JSON per (repo, tag), a rolled-up PDF via scripts/nightly-report-pdf.py, and a Slack upload via files.getUploadURLExternal (with a webhook text fallback).
Three ways to get started with NebulaCR.
NebulaCR is composed of modular Rust crates, each handling a specific concern.
Docker / Podman / containerd
|
OCI Distribution API (HTTPS)
|
+---------------+----------------+
| |
nebula-registry (:5000) nebula-auth (:5001)
/ | | \ / | \
Manifests Blobs Tags Dashboard OIDC JWT Robot
| | | | | | Accounts
Storage Audit Webhook Mirror Vault JWKS CI/CD
| | OIDC
+-----+------+ +------+------+
| filesystem | ... | S3 / GCS |
+------------+ +------------+
nebula-replication
/ | \
Events Circuit Failover
Breaker Manager
|
+----+----+----+
| | | |
Region1 Region2 Region3 ...
Metrics: Prometheus at :9090/metrics
Dashboard: embedded at :5000/dashboard
| Endpoint | Description |
|---|---|
GET /v2/ | OCI version check |
GET/PUT/DELETE /v2/{t}/{p}/{n}/manifests/{ref} | Manifest operations (push/pull/delete) |
POST/PATCH/PUT /v2/{t}/{p}/{n}/blobs/uploads/ | Blob upload (chunked or monolithic) |
GET /v2/_catalog | Repository catalog listing |
GET/POST /auth/token | Docker-compatible token exchange |
GET /auth/oidc/login | OIDC SSO login redirect |
POST /auth/ci/token | CI/CD OIDC token exchange |
GET /dashboard | Web dashboard |
GET /api/images?q=search | Image browser API |
GET/POST /scim/v2/Users | SCIM 2.0 user provisioning |
GET/POST /scim/v2/Groups | SCIM 2.0 group management |
GET /health | Health check |
GET /metrics | Prometheus metrics |
Deploy NebulaCR and take full control of your container images. Open source, enterprise-ready.