App Store template
Zot Registry icon

Zot Registry

OCI-native container image registry with basic auth and optional S3-compatible object storage backend.

Launch in your Sealos workspace.

Zot Registry template preview
Template previewFull screenshot
Template deployments
13 on Sealos
Deployment
Your own instance
Category
Storage

About this template

Overview

Zot Registry is an OCI-native container image registry for storing and distributing container artifacts. This template deploys Zot v2.1.14 on Sealos Cloud with built-in basic authentication and two storage backends: local filesystem or S3-compatible object storage.

From the documentation

Zot provides a lightweight OCI registry implementation with a web UI and registry APIs, making it suitable for private image hosting, edge distribution, and internal CI/CD artifact workflows. It supports standard Docker/OCI push and pull operations, while keeping operational complexity low.

How to deploy Zot Registry

  1. Choose Deploy now to start Zot Registry in your Sealos workspace.
  2. Review zot_storage_backend, zot_admin_user, zot_admin_password and the remaining settings in the deployment form.
  3. Launch the template, then inspect the application status and resource cards in Canvas.

Resources to plan for

Start with the resources defined by the Zot Registry template. Review CPU, memory, persistent storage, and network allocations for every service in Canvas. Capacity needs depend on your data and workload; monitor usage as they grow.

Template configuration and setup

Access after deployment

Use the application URL or connection details shown in Canvas. Follow the deployment guide for first-time account setup or client configuration, and keep generated credentials available for that step.

Hosting and billing

Sealos monthly plans include compute, memory, storage, and traffic. Size your plan for all deployed services. Software licenses and external AI or API services may have separate terms and charges. Confirm the applicable plan and optional charges in Cost Center.

Compare Sealos resource plans
Read full documentationCollapse documentation

For current cloud charges, refer to Sealos plan pricing. Upstream documentation may reference earlier billing models.

Deploy and Host Zot Registry on Sealos

Zot Registry is an OCI-native container image registry for storing and distributing container artifacts. This template deploys Zot v2.1.14 on Sealos Cloud with built-in basic authentication and two storage backends: local filesystem or S3-compatible object storage.

Zot Logo

About Hosting Zot Registry

Zot provides a lightweight OCI registry implementation with a web UI and registry APIs, making it suitable for private image hosting, edge distribution, and internal CI/CD artifact workflows. It supports standard Docker/OCI push and pull operations, while keeping operational complexity low.

This Sealos template supports two runtime profiles. In filesystem mode, Zot runs as a StatefulSet with persistent storage for registry data. In objectstorage mode, Zot runs as a Deployment backed by a Sealos ObjectStorage bucket, while still exposing the same public HTTPS endpoint and /v2/ API behavior.

The deployment enables basic auth and access-control policies by default, configures health probes (/livez, /readyz, /startupz), and publishes the service through Sealos-managed ingress with TLS.

Common Use Cases

  • Private Team Registry: Host internal base images and application images for development and production pipelines.
  • CI/CD Artifact Distribution: Push build outputs from CI jobs and pull them in deployment stages.
  • Edge and Homelab Registry: Run a lightweight OCI registry for distributed or resource-constrained environments.
  • Air-Gapped or Controlled Environments: Mirror and serve approved images from a controlled registry endpoint.
  • OCI Artifact Hub: Store not only images but also OCI-compatible artifacts for platform tooling.

Dependencies for Zot Registry Hosting

The Sealos template includes all required dependencies for Zot runtime:

  • Zot core service (ghcr.io/project-zot/zot:v2.1.14)
  • Service + Ingress with HTTPS exposure
  • Built-in basic authentication and repository access-control policy
  • Optional Sealos ObjectStorage bucket (when zot_storage_backend=objectstorage)
  • Persistent volume claim (when zot_storage_backend=filesystem)
Deployment Dependencies
Implementation Details

Architecture Components:

This template deploys the following resources:

  • Zot Workload:
    • StatefulSet in filesystem mode
    • Deployment in objectstorage mode
  • Service: Exposes port 5000 for Zot API and UI
  • Ingress: Public HTTPS endpoint with Sealos-managed TLS
  • ObjectStorageBucket (optional): Created only in object storage mode
  • ConfigMap (object storage mode): Stores Zot config and htpasswd content

Configuration:

  • Default generated values:
    • app_name, app_host
  • Runtime storage mode:
    • filesystem: persistent local registry data (1Gi PVC)
    • objectstorage: S3-compatible backend with Sealos ObjectStorage credentials
  • Authentication:
    • Basic auth is enabled by default
    • Admin policy grants read/create/update/delete to configured admin user
  • Public entrypoint:
    • https://<app_host>.<SEALOS_CLOUD_DOMAIN>
  • API endpoint:
    • https://<app_host>.<SEALOS_CLOUD_DOMAIN>/v2/

License Information:

Zot is licensed under the Apache License 2.0.

Why Deploy Zot Registry on Sealos?

Sealos is an AI-assisted Cloud Operating System built on Kubernetes, designed to simplify app delivery and operations. By deploying Zot on Sealos, you get:

  • One-Click Deployment: Launch a production-ready private registry without writing Kubernetes manifests.
  • Kubernetes-Native Runtime: Use proven primitives (Service, Ingress, StatefulSet/Deployment) with managed networking.
  • Flexible Storage Choices: Choose persistent local storage or S3-compatible object storage based on workload needs.
  • Managed HTTPS Access: Get a public domain and TLS certificates automatically.
  • Easy Day-2 Operations: Tune resources and behavior from Canvas via AI dialog and resource cards.
  • Pay-as-You-Go Efficiency: Start small and scale resource usage according to actual traffic.

Deploy Zot on Sealos and focus on shipping artifacts instead of managing infrastructure.

Deployment Guide

  1. Open the Zot template and click Deploy Now.
  2. Configure parameters in the popup dialog:
    • zot_storage_backend: filesystem or objectstorage
    • zot_admin_user
    • If filesystem: set zot_admin_password
    • If objectstorage: set zot_admin_htpasswd_hash and optional zot_s3_region
  3. Wait for deployment to complete (typically 2-3 minutes). After deployment, you will be redirected to Canvas. For later changes, describe requirements in the AI dialog or edit resources via resource cards.
  4. Access Zot:
    • Web UI: https://<app_host>.<SEALOS_CLOUD_DOMAIN>/
    • Registry API: https://<app_host>.<SEALOS_CLOUD_DOMAIN>/v2/
  5. Authenticate registry operations with your configured admin credentials.

Configuration

After deployment, you can configure Zot through:

  • AI Dialog: Describe required changes and let AI apply updates.
  • Resource Cards: Modify workload resources, ingress behavior, and storage profile.
  • Registry Clients: Use Docker/Podman/Skopeo login and push/pull workflows against the generated domain.
Template Parameters
ParameterDescriptionRequired
zot_storage_backendStorage backend (filesystem or objectstorage)Yes
zot_admin_userAdmin username for basic authYes
zot_admin_passwordAdmin password (filesystem mode only)Conditional
zot_admin_htpasswd_hashAdmin htpasswd hash, not plain password (objectstorage mode only)Conditional
zot_s3_regionS3 region for object storage modeConditional

Scaling

To scale Zot resources:

  1. Open your deployment in Canvas.
  2. Select the Zot workload resource card (StatefulSet or Deployment).
  3. Adjust CPU/Memory resources and apply changes.
  4. For object storage mode, scale the Deployment replica count as needed and validate client behavior.

Troubleshooting

Common Issues

Issue: Pod restarts immediately in object storage mode

  • Cause: Incompatible storage extension settings or invalid object storage configuration.
  • Solution: Ensure object storage mode uses compatible search settings and valid S3 parameters from template defaults/inputs.

Issue: UNAUTHORIZED when calling /v2/

  • Cause: Missing/incorrect basic auth credentials.
  • Solution: Verify admin credentials and re-run registry login from your client.

Issue: Auth works in filesystem mode but not in object storage mode

  • Cause: zot_admin_htpasswd_hash was provided as plain text instead of hash.
  • Solution: Provide a bcrypt or SHA-crypt htpasswd hash (for example, generated by htpasswd -nB <user>).

Issue: Push fails for large layers

  • Cause: Client-side limits or workload resource constraints.
  • Solution: Increase workload resources in Canvas and retry push.
Getting Help

Additional Resources

License

This Sealos template follows the templates repository license policy. Zot itself is licensed under the Apache License 2.0.

From launch to everyday operations

Why deploy
on Sealos

A shorter path from an app you want to an app you can run. Sealos brings deployment and ongoing operations into one place.

  1. One-click deployment

    Start with a ready-made template. Review its configuration and launch from the Sealos console.

  2. Managed Kubernetes

    Run on managed infrastructure with built-in workload scheduling and recovery.

  3. Automatic HTTPS

    Give your application a public HTTPS endpoint with certificates managed for you.

  4. Persistent storage

    Keep application data on persistent volumes across container restarts.

  5. Room to grow

    Adjust CPU, memory, and replicas from the console as your workload changes.

One template. Connected resources.

You Get the Whole Stack

Sealos provisions the resources defined by your template and brings them together in your workspace.

  • App Service

    Container workloads with configurable CPU, memory, and replicas.

  • Public HTTPS URL

    An address for your app, with managed TLS certificates.

  • Database

    A database provisioned alongside your app when the template calls for one.

  • Persistent Volume

    Storage for the files and data your application needs to keep.

  • Environment Variables

    Application settings and secrets configured in one place.

  • Logs & Metrics

    Inspect container logs and resource usage from the console.

Resources and their configuration vary by template. Review the deployment form for this app’s exact setup.

Explore more production-ready templates.

More