vsr)A modern, npm-compatible serverless registry that's fast, secure, and ridiculously easy to deploy.
vsr is a minimal yet powerful npm-compatible registry that
replicates core npm features while adding cutting-edge capabilities.
Built for the modern web, it runs seamlessly on Cloudflare's global
edge network.
Get up and running in seconds:
# Try it locally
npx @vltpkg/vsr
# Or install globally
npm install -g @vltpkg/vsr
vsr
Boom! π₯ Your registry is live at http://localhost:1337
Deploy to Cloudflare Workers with one command:
# Deploy to production
vsr deploy --env=prod
# Or preview what would be deployed
vsr deploy --dry-run --env=prod
That's it! π Your registry is now running globally on Cloudflare's edge network.
# Start with defaults (port 1337)
vsr
# Or explicitly use dev command
vsr dev
# Custom port
vsr --port 3000
# Enable debug mode
vsr --debug
# Use config file
vsr --config ./vlt.json
Deploy to Cloudflare Workers in under 5 minutes:
# Clone and setup
git clone https://github.com/vltpkg/vsr.git
cd vsr
vlt install
# Deploy to development environment
vsr deploy
# Deploy to production
vsr deploy --env=prod
# Preview deployment configuration
vsr deploy --dry-run --env=prod
# Clone and setup
git clone https://github.com/vltpkg/vsr.git
cd vsr
vlt install
# Deploy to production
wrangler deploy
The VSR deploy command offers better configuration management,
environment-specific settings, and integration with your vlt.json
configuration.
Coming Soon: One-click Cloudflare deployment button! π
VSR is designed to work with zero configuration, but when you need more control:
| Command | Description |
|---|---|
dev | Start development server (default) |
deploy | Deploy to Cloudflare Workers |
| Option | Alias | Default | Description |
|---|---|---|---|
--port | -p | 1337 | Server port |
--config | -c | - | Config file path |
--debug | -d | false | Debug mode |
--daemon | - | true | Local filesystem daemon |
--help | -h | - | Show help |
| Option | Default | Description |
|---|---|---|
--env | dev | Environment (dev/staging/prod) |
--db-name | - | Override D1 database name |
--bucket-name | - | Override R2 bucket name |
--queue-name | - | Override queue name |
--dry-run | false | Preview deployment |
Create a vlt.json file for shared configuration between VLT and VSR:
{
"registry": {
"port": 4000,
"debug": true,
"telemetry": false,
"deploy": {
"sentry": {
"dsn": "https://your-sentry-dsn@sentry.io/project-id"
},
"environments": {
"prod": {
"databaseName": "vsr-prod-database",
"bucketName": "vsr-prod-bucket",
"queueName": "vsr-prod-cache-refresh-queue",
"sentry": {
"environment": "production"
}
}
}
}
}
}
π Learn More About Configuration β
π Deployment Guide β
@scope/package supportVSR stands out in the registry landscape:
π See Detailed Comparisons β
Once running, access your registry:
http://localhost:1337http://localhost:1337/-/docshttp://localhost:3000 (if enabled)The API includes complete npm compatibility plus enhanced features like URL-encoded semver ranges and optimized install responses.
We're actively developing exciting features:
πΊοΈ View Full Roadmap β
We welcome contributions! VSR is built with modern tools and follows best practices:
Need help? We've got you covered:
π Get Support β
VSR is licensed under the Functional Source License (FSL-1.1-MIT) - free for most use cases, with commercial restrictions that convert to MIT after two years.
Ready to revolutionize your package management? π
Get started β’
Deploy to production β’
Join the community