Skip to content

Deployment Overview

Registry Server is one of the core components of the Rack architecture, responsible for hosting and distributing Registry JSON configurations, Preset templates, and project template files.

What is Registry Server?

Registry Server is a static resource distribution server that provides a unified resource access interface for the Rack CLI tool. It supports:

  • Registry Distribution - Host Registry JSON configurations and template files
  • Version Management - Support multiple versions coexisting, automatically maintain version lists
  • Package Upload - Support uploading new Registry packages via API
  • Namespace Management - Support multi-tenant isolation and access control
  • Authentication & Authorization - Token-based fine-grained permission management, with admin token support for cross-namespace operations
  • Webhook Integration - Event-driven notification mechanism
  • Performance Optimization - Built-in ETag caching, compression, and rate limiting

Why Self-host?

While Rack provides an official Registry service (https://registry.rackjs.com), you may need to deploy your own Registry Server in the following scenarios:

  • Enterprise Private Deployment - For internal enterprise use, services need to be deployed in private networks or intranet environments.
  • Custom Registry Management - Need to host custom Registries and templates developed internally by the enterprise.
  • Access Control and Auditing - Need fine-grained permission control and auditing for Registry access.
  • Offline Environments - Use Rack in environments without internet access.
  • Custom Integration - Need to integrate with existing enterprise CI/CD workflows and DevOps platforms.

Service Architecture

Registry Server adopts a simple architecture design:

┌─────────────┐
│  Rack CLI   │ ←─────┐
└─────────────┘       │
                      │ HTTPS/HTTP
┌─────────────┐       │
│  CI/CD      │ ←─────┤
└─────────────┘       │

                ┌─────▼──────┐
                │  Registry  │
                │   Server   │
                └─────┬──────┘

        ┌─────────────┼─────────────┐
        │             │             │
   ┌────▼────┐  ┌─────▼────┐  ┌─────▼────┐
   │ Static  │  │   Auth   │  │  Webhook │
   │ Storage │  │  System  │  │  System  │
   └─────────┘  └──────────┘  └──────────┘

Core Modules

  • Static Resource Service - Distribute Registry, Preset, and Schema files
  • Upload Service - Receive and process Registry package uploads
  • Authentication Service - Token-based identity verification and permission control
  • Webhook Service - Event notifications and integrations
  • Monitoring Service - Health checks and Prometheus metrics

API Endpoints

MethodPathDescription
GET/HEAD/registries/@ns/name/versionsVersion list
GET/HEAD/registries/@ns/nameLatest version
GET/HEAD/registries/@ns/name/1.0.0Specific version
GET/HEAD/registries/@ns/name/1.0.0/files/*Template file
POST/registriesUpload registry package
GET/namespacesList all namespaces
GET/namespaces/:ns/registriesList registries in namespace
GET/HEAD/presets/:nameGet preset template
GET/HEAD/schemas/:fileGet JSON schema
GET/healthHealth check
GET/metricsPrometheus metrics

Released under the MIT License.