App Store template
Project Quay icon

Project Quay

Host an OCI container registry with Project Quay on Sealos. Store images with PostgreSQL, Redis, persistent storage, and automatic initial administrator setup.

Launch in your Sealos workspace.

Project Quay template preview
Template previewFull screenshot
Template deployments
15 on Sealos
Deployment
Your own instance
Category
DevOps

About this template

Overview

Host an OCI container registry with Project Quay on Sealos. Store images with PostgreSQL, Redis, persistent storage, and automatic initial administrator setup.

From the documentation

Project Quay provides a secure private registry with repository management, robot accounts, vulnerability and metadata services, and API-driven automation for CI/CD pipelines. In this template, Quay runs as a StatefulSet with persistent storage mounted at /datastorage for image layer and metadata durability.

How to deploy Project Quay

  1. Choose Deploy now to start Project Quay in your Sealos workspace.
  2. Review initial_admin_username, initial_admin_password, initial_admin_email 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 Project Quay 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 Project Quay on Sealos

Project Quay is an enterprise container registry for storing, securing, and distributing OCI images. This template deploys Quay with PostgreSQL, Redis, persistent storage, and automated initial admin bootstrap on Sealos Cloud.

About Hosting Project Quay

Project Quay provides a secure private registry with repository management, robot accounts, vulnerability and metadata services, and API-driven automation for CI/CD pipelines. In this template, Quay runs as a StatefulSet with persistent storage mounted at /datastorage for image layer and metadata durability.

The deployment also provisions a managed PostgreSQL 16.4.0 cluster (Kubeblocks) and a managed Redis 7.2.7 replication topology with Sentinel for caching and queue-related functions. A PostgreSQL init job enables required extensions, and an admin-init job automatically creates the first Quay administrator account during first deployment.

Sealos automatically provides a public HTTPS domain and ingress routing to the Quay web/API endpoint, so you can start pushing and pulling images without manual ingress or certificate setup.

Common Use Cases

  • Private Container Registry: Host internal images for development, staging, and production.
  • CI/CD Image Distribution: Store build artifacts and integrate with automated pipelines.
  • Multi-Team Repository Governance: Manage team/org access with controlled permissions.
  • Secure Image Delivery: Serve images over HTTPS with centralized registry access.
  • Self-Hosted Registry Migration: Move from ad-hoc registry setups to a managed Kubernetes-native deployment.

Dependencies for Project Quay Hosting

The Sealos template includes all required dependencies for a production-ready single-instance Quay deployment:

  • Project Quay (quay.io/projectquay/quay:v3.9.8)
  • PostgreSQL 16.4.0 (Kubeblocks cluster)
  • Redis 7.2.7 with Sentinel (Kubeblocks cluster)
  • Persistent volume for registry data
  • Kubernetes Ingress with TLS termination
Deployment Dependencies

Implementation Details

Architecture Components

This template deploys the following components:

  • Quay StatefulSet: Main registry service (UI + API + registry endpoints) exposed through Ingress.
  • PostgreSQL Cluster: Metadata and application database backend.
  • PostgreSQL Init Job: Enables pg_trgm extension required by Quay features.
  • Redis Cluster (Replication + Sentinel): Cache/event and queue-related backend for Quay runtime services.
  • Admin Initialization Job: Waits for Quay health endpoint and initializes the first admin user via API.
  • Persistent Storage: Registry data persisted at /datastorage/registry via PVC.
Configuration
  • Quay is configured at runtime by generating config.yaml from environment variables and secret references.
  • Health probes use HTTP on port 8080 (/health/instance, /health/endtoend).
  • TLS is terminated at Sealos Ingress (EXTERNAL_TLS_TERMINATION: true), while backend service traffic stays HTTP.
  • Initial admin inputs are provided during deployment:
    • initial_admin_username
    • initial_admin_password
    • initial_admin_email
  • The admin-init job is idempotent: if the database is already initialized, the job exits successfully without overwriting existing users.
License Information

Project Quay is licensed under the Apache License 2.0.

Why Deploy Project Quay on Sealos?

Sealos is an AI-assisted Cloud Operating System built on Kubernetes that unifies deployment and operations. By deploying Project Quay on Sealos, you get:

  • One-Click Deployment: Launch Quay and its dependencies in one workflow.
  • Managed Datastores: PostgreSQL and Redis are provisioned automatically.
  • Persistent Storage: Registry data survives restarts and updates.
  • Automatic HTTPS Access: Public domain and TLS-enabled ingress are created for you.
  • Simple Day-2 Operations: Update resources and settings through Canvas + AI dialog.
  • Pay-as-You-Go Efficiency: Run only what you need and scale resources when needed.

Deployment Guide

  1. Open the Project Quay template and click Deploy Now.
  2. Configure deployment parameters in the popup, especially:
    • initial_admin_username
    • initial_admin_password
    • initial_admin_email
  3. Wait for deployment to complete (typically 2-3 minutes). After deployment, you will be redirected to Canvas, where you can use the AI dialog or resource cards for later adjustments.
  4. Access your application via the generated URL:
    • Quay Web UI: https://<your-app-host>
    • Registry/API Endpoint: same domain, used by Docker/OCI clients and automation
  5. Log in with the admin credentials you entered in step 2.

Configuration

After deployment, you can update Quay using:

  • AI Dialog: Describe desired config or resource changes in plain language.
  • Resource Cards: Edit StatefulSet resources, storage, jobs, and networking settings.
  • Quay Admin UI: Create organizations, repositories, robot accounts, and access policies.

Scaling

This template is optimized for a single Quay registry instance with persistent local registry storage.

  1. Open Canvas for your deployment.
  2. Click the Quay StatefulSet resource card.
  3. Adjust CPU/Memory resources based on traffic and repository size.
  4. Apply changes.

If you need multi-replica registry scaling, use an external/shared object storage strategy and adjust Quay storage configuration accordingly.

Troubleshooting

Common Issues

Issue: Cannot log in after deployment

  • Cause: Admin credentials were not set as expected during deployment.
  • Solution: Redeploy with explicit initial_admin_* values or reset user credentials through Quay admin/database procedures.

Issue: Admin init job exits with non-empty database message

  • Cause: Quay database already contains users/data.
  • Solution: This is expected behavior; initialization is skipped to avoid overwriting existing accounts.

Issue: Registry storage write errors

  • Cause: Storage mount or permission mismatch in customized deployments.
  • Solution: Ensure registry storage path remains /datastorage/registry with writable PVC and correct security context.
Getting Help

Additional Resources

License

This Sealos template is provided under MIT License. Project Quay itself is licensed under 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