Continuous Registry Mirroring
Automatically mirror container images from remote registries to your local registry with configurable policies.
Self-hosted image intake gateway for Kubernetes
Continuous registry mirroring with vulnerability scanning, policy enforcement, and Sigstore attestations. Secure your supply chain with air-gap compatible deployments.
Automatically mirror container images from remote registries to your local registry with configurable policies.
Integrated Trivy scanning to detect vulnerabilities in mirrored images before they reach your cluster.
Define and enforce policies using Kyverno to control which images can be deployed in your Kubernetes cluster.
Generate and verify Sigstore attestations for supply chain security and compliance requirements.
SQLite-based state store to track mirrored images, scan results, and policy decisions across restarts.
Comprehensive REST API for querying scan results, managing policies, and integrating with external systems.
Built-in metrics, structured logging, and health checks for monitoring and troubleshooting deployments.
Deploy suppline in air-gapped environments with pre-downloaded images and offline policy configurations.
Reduce dependency on external registries and ensure images are always available for your deployments.
Mitigate risks from registry outages, rate limiting, or vendor policy changes.
Scan and validate images before they enter your cluster with comprehensive vulnerability detection.
Support disconnected environments with pre-mirrored images and offline policy enforcement.
Maintain audit trails of all mirrored images, scan results, and policy decisions for compliance requirements.
Reduce bandwidth costs and registry API calls by caching images locally.
Create a configuration file specifying your registries and policies:
creds:
- registry: docker.io
user: '{{ env "DOCKER_USERNAME" }}'
pass: '{{ env "DOCKER_PASSWORD" }}'
sync:
- source: nginx
target: myprivateregistry/nginx
type: repository
Generate Sigstore keys for attestations and encode the key for config:
cosign generate-key-pair
cat cosign.key | base64 -w0
copy the environment template and edit
cp env.template .env
vim .env
Deploy using Docker:
docker compose up
or using Helm into your k8s cluster:
helm upgrade --install -f charts/suppline/values.yaml -f charts/suppline/values-secrets.yaml suppline charts/suppline
kubectl port-forward svc/suppline-ui 3000:80
Access the dashboard and verify images are being mirrored and scanned.
http://localhost:3000
For detailed documentation and advanced configuration, visit the GitHub repository:
View Full Documentation