Eternals Docker Registry
In Progress
Terminal window
Terminal window
Terminal window
Terminal window Terminal window
Terminal window
Eternals Docker Registry is a private container image registry that implements the Docker Registry HTTP API v2. Store, manage, and distribute container images on your own infrastructure with full authentication and access control.
Tech Stack
Section titled “Tech Stack”| Layer | Technology |
|---|---|
| API server | NestJS |
| Database | PostgreSQL |
| Image storage | MinIO / S3 |
Features
Section titled “Features”- Private image repositories — Host images without Docker Hub
- Token-based authentication — Secure push/pull with scoped access tokens
- Image versioning and tagging — Full tag management and digest-based addressing
- S3/MinIO storage — Scalable, durable artifact storage
- CI/CD integration — Works with GitHub Actions, GitLab CI, and Jenkins (planned)
- Repository access control — Fine-grained per-repository permissions
Quick Start
Section titled “Quick Start”Push an Image
Section titled “Push an Image”# Log in to your registrydocker login registry.your-domain.com
# Tag your imagedocker tag my-app:latest registry.your-domain.com/your-org/my-app:latest
# Pushdocker push registry.your-domain.com/your-org/my-app:latestPull an Image
Section titled “Pull an Image”docker pull registry.your-domain.com/your-org/my-app:latestArchitecture Overview
Section titled “Architecture Overview”docker push → Auth (JWT) → Manifest (PostgreSQL) → Layer blobs (MinIO/S3)docker pull → Auth (JWT) → Manifest resolve → Layer blobs streamCI/CD Integration
Section titled “CI/CD Integration”- name: Log in to Eternals Registry uses: docker/login-action@v3 with: registry: registry.your-domain.com username: ${{ secrets.REGISTRY_USERNAME }} password: ${{ secrets.REGISTRY_PASSWORD }}
- name: Build and push uses: docker/build-push-action@v5 with: push: true tags: registry.your-domain.com/your-org/app:latestbuild: script: - docker login -u $REGISTRY_USER -p $REGISTRY_PASS registry.your-domain.com - docker build -t registry.your-domain.com/your-org/app:$CI_COMMIT_SHA . - docker push registry.your-domain.com/your-org/app:$CI_COMMIT_SHASelf-Hosting with MinIO
Section titled “Self-Hosting with MinIO”services: docker-registry: image: eternals/docker-registry:latest environment: DATABASE_URL: postgresql://user:pass@db:5432/registry S3_ENDPOINT: http://minio:9000 S3_BUCKET: docker-images S3_ACCESS_KEY: minioadmin S3_SECRET_KEY: minioadmin JWT_SECRET: your-secret-key ports: - "5000:5000"
minio: image: minio/minio command: server /data --console-address ":9001" ports: - "9000:9000" - "9001:9001"Vision
Section titled “Vision”Eternals Docker Registry aims to be a production-grade alternative to Docker Hub, GHCR, and AWS ECR — running entirely on your own infrastructure with deep integration into the wider Eternals ecosystem.