Deploy your own Docker registry & builder in 3 commands
Private registry plus remote building for Kamal 2. Zero external dependencies - no Docker Hub account required.

Perfect for Mac Users
ARM64 → AMD64
Build server images from your M1/M2/M3 Mac without architecture issues.
Zero Dependencies
No Docker Hub account needed. Uses smart bootstrapping to deploy your own registry.
Automatic HTTPS
Let's Encrypt SSL certificates automatically provisioned and renewed. Secure registry access out of the box.
Watch the Walkthrough
See Knot in action - from setup to deployment in just a few minutes
Quick Start
1. Configure DNS
Create an A record pointing your subdomain to your VPS IP address. This must be done first so your domain is ready for SSL certificate setup.
A
registry
or registry.yourdomain.com
your-vps-ip
300 seconds (5 minutes)
2. Get Knot (locally)
git clone https://github.com/deployTo-Dev/knot.git
cd knot
3. Configure your Knot deployment
./knot setup
You'll be asked 3 questions:
- VPS IP address: Your server's IP address
- Registry domain: e.g.,
registry.yourdomain.com
- SSH user: [root] (or ubuntu for AWS/GCP)
4. Deploy (Zero Dependencies!)
./knot deploy
Your registry & builder will be live at https://your-domain.com
What you need
- VPS: 1GB RAM, any cloud provider
- Domain: Pointing to your VPS
- SSH: Access to your VPS
- That's it! No Docker Hub or external registry accounts needed
Zero Dependencies
Unlike traditional Kamal setups that require Docker Hub accounts and external registries, Knot uses a clever workaround inspired by Jason Nochlin's blog post to bootstrap your own registry with zero external dependencies.
Using your registry & builder
Add to your Kamal 2 app's config/deploy.yml
:
# Registry configuration
registry:
server: registry.yourdomain.com
username: admin
password: <%= ENV["REGISTRY_PASSWORD"] %>
# Remote builder configuration
builder:
arch: amd64
remote: ssh://user@your-vps-ip
Then build and deploy: kamal build
(builds on VPS!) && kamal deploy