What is unregistry?
unregistry is a lightweight container image registry created by Pasha Sviderski that stores and serves images directly from your Docker daemon's storage. The included docker pussh command lets you push images straight to remote Docker servers over SSH, transferring only missing layers for maximum efficiency.
- Docker Hub/GHCR: Your code becomes public or you pay for private repos
- Self-hosted registry: Another service to maintain, secure, and pay for
- Save/Load: Transfers entire image even if 90% already exists on server
- Remote rebuild: Wastes time and server resources, debugging production builds
docker pussh myapp:latest user@server - That's it! Your image is on the remote server with no registry setup, no subscription, no intermediate storage, just direct transfer of missing layers over SSH.
β‘ Key Features of unregistry
π Direct Transfer
Push images directly to remote servers over SSH. No intermediate registry, no exposed ports, just efficient point-to-point transfer.
π¦ Layer Deduplication
Transfers only missing layers, like rsync for Docker images. If 90% of your image exists remotely, only 10% gets transferred.
π Secure by Design
Uses SSH for authentication and transport. No exposed registry ports, no additional security configuration needed.
β‘ Zero Setup
No registry infrastructure to maintain. Works with any server that has Docker and SSH access.
ποΈ CI/CD Ready
Perfect for deployment pipelines. Build locally or in CI, push directly to production servers without registry complexity.
π Multi-Platform
Supports multi-platform images with containerd image store. Deploy ARM and x86 images efficiently.
apt upgrade keeps you on the latest version.
π¦ Installation from deb.griffo.io
Step 1: Add Repository
sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | sudo gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | sudo tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
sudo apt updateinstall -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
apt updateπ There is an always-free mirror. deb-free.griffo.io serves packages free forever β no account, no subscription, at most 2 months behind upstream, security fixes immediately. It currently carries Ghostty, Oh My Posh and Zed; Unregistry is not one of them, so the repository above is the only way to get it today β ask and it can be enrolled.
Step 2: Install unregistry
# Install unregistry and docker-pussh
sudo apt install unregistry docker-pussh
# Verify installation
docker pussh --version# Install unregistry and docker-pussh
apt install unregistry docker-pussh
# Verify installation
docker pussh --versionπ― Basic Usage Examples
Simple image push:
# Build image locally
docker build -t myapp:latest .
# Push directly to remote server
docker pussh myapp:latest user@server.example.com
# That's it! Image is now available on remote serverAdvanced usage:
# Push with SSH key
docker pussh myapp:latest ubuntu@192.168.1.100 -i ~/.ssh/id_rsa
# Custom SSH port
docker pussh myapp:latest user@server:2222
# Specific platform for multi-arch images
docker pussh myapp:latest user@server --platform linux/amd64
# Use in deployment script
docker pussh myapp:$VERSION deploy@prod-server
ssh deploy@prod-server docker run -d myapp:$VERSIONCI/CD integration:
# GitHub Actions example
- name: Build and deploy
run: |
docker build -t myapp:${{ github.sha }} .
docker pussh myapp:${{ github.sha }} deploy@staging-serverπ Why Choose deb.griffo.io?
- Official Debian: Not available in official repositories
- Manual Script: Requires manual updates and dependency management
- Homebrew: Limited to specific platforms
- deb.griffo.io: Latest version with automatic updates
- β Latest Features: Get newest Docker and SSH integration improvements
- β Complete Package: Both unregistry and docker-pussh included
- β Automatic Updates: Packages updated within hours of upstream releases
- β Proper Integration: Correctly configured as Docker CLI plugin
- β Multi-Distribution: Works on Bookworm, Trixie, and Sid
- β Easy Maintenance: Standard apt commands for updates
π¦ Package Build Repository
The Debian packages are automatically built and maintained in this GitHub repository:
- π unregistry-debian - Latest release builds
- π‘ docker-pussh-debian - Latest release builds
π Related Packages
Also available from deb.griffo.io:
- lazydocker - Terminal UI for Docker management
- uncloud - Multi-server container deployment
- fzf Fuzzy Finder - Enhanced command searching
π Support This Project
If this repository saves you time and effort, please consider supporting it!