Skip to content

Eternals NPM Registry

In Progress

Eternals NPM Registry is a private package management solution that lets teams host and distribute npm packages securely. It implements the full npm registry protocol, making it compatible with npm, yarn, and pnpm.

LayerTechnology
API serverNestJS
Web UIReact
DatabasePostgreSQL
Artifact storageS3 / MinIO
  • Private and scoped packages — Host @your-org/package without going public
  • Multi-package manager support — Works with npm, yarn, pnpm out of the box
  • Authentication and access control — Role-based access to repositories
  • Version management — Publish, deprecate, and yank specific versions
  • Web UI — Browse and manage packages without the CLI
  • Package analytics — Download counts and usage stats (planned)
Terminal window
# Set registry for your scope
npm config set @your-org:registry https://registry.your-domain.com
# Or use a .npmrc file
echo "@your-org:registry=https://registry.your-domain.com" >> .npmrc
Terminal window
# Login to your private registry
npm login --registry=https://registry.your-domain.com
# Publish a scoped package
npm publish --registry=https://registry.your-domain.com
Terminal window
npm publish → Auth → Metadata (PostgreSQL) → Artifact (MinIO/S3)
npm install → Auth → Version resolve (PostgreSQL) → Tarball (MinIO/S3)

For fully air-gapped environments, use MinIO as the S3-compatible storage backend:

Terminal window
services:
npm-registry:
image: eternals/npm-registry:latest
environment:
DATABASE_URL: postgresql://user:pass@db:5432/registry
S3_ENDPOINT: http://minio:9000
S3_BUCKET: npm-packages
S3_ACCESS_KEY: minioadmin
S3_SECRET_KEY: minioadmin
minio:
image: minio/minio
command: server /data

Eternals NPM Registry aims to be a flexible, scalable alternative to GitHub Packages and JFrog Artifactory — giving teams complete ownership over their package distribution pipeline.