Skip to content

Commit e2c7cb4

Browse files
committed
readme: header and why unregistry?
1 parent 972e1dd commit e2c7cb4

File tree

1 file changed

+43
-7
lines changed

1 file changed

+43
-7
lines changed

README.md

Lines changed: 43 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,50 @@
11
<div align="center">
22
<img src=".github/images/logo-light.svg#gh-light-mode-only" alt="Unregistry logo"/>
33
<img src=".github/images/logo-dark.svg#gh-dark-mode-only" alt="Unregistry logo"/>
4-
<p><strong>docker push without registry</strong></p>
4+
<p><strong>▸ Push docker images directly to remote servers without a registry ◂</strong></p>
5+
6+
<p>
7+
<a href="https://discord.gg/eR35KQJhPu"><img src="https://img.shields.io/badge/discord-5865F2.svg?style=for-the-badge&logo=discord&logoColor=white" alt="Join Discord"></a>
8+
<a href="https://x.com/psviderski"><img src="https://img.shields.io/badge/follow-black?style=for-the-badge&logo=X&logoColor=while" alt="Follow on X"></a>
9+
</p>
510
</div>
6-
---
7-
<p>
8-
<a href="https://discord.gg/eR35KQJhPu"><img src="https://img.shields.io/badge/discord-5865F2.svg?style=for-the-badge&logo=discord&logoColor=white" alt="Join Discord"></a>
9-
<a href="https://x.com/psviderski"><img src="https://img.shields.io/badge/follow-black?style=for-the-badge&logo=X&logoColor=while" alt="Follow on X"></a>
10-
</p>
1111

12-
'docker push' over SSH without registry
12+
**Unregistry** is a lightweight container image registry that serves images directly from your Docker/containerd
13+
daemon's storage.
14+
15+
The included `docker pussh` command allows you to push an image straight to a remote Docker daemon via SSH. It starts
16+
a temporary unregistry container on the remote host to transfer only the missing image layers. Your image transfers
17+
directly to where you need to run it, without going through an external registry.
1318

1419
https://github.com/user-attachments/assets/9d704b87-8e0d-4c8a-9544-17d4c63bd050
20+
21+
## Why unregistry?
22+
23+
You've built a Docker image locally. Now you need it on your server. Your options suck:
24+
25+
- **Docker Hub / GitHub Container Registry** - Your code is now public, or you're paying for private repos
26+
- **Self-hosted registry** - Another service to maintain, secure, and pay for storage
27+
- **Save/Load** - `docker save | ssh | docker load` is slow and inefficient, especially for large images
28+
- **Rebuild remotely** - Wastes time and server resources. Who builds images on production servers?
29+
30+
You just want to move an image from A to B. Why is this so hard?
31+
32+
**That's why we built unregistry.** One command replaces the entire workflow:
33+
34+
```bash
35+
docker pussh myapp:latest user@server
36+
```
37+
38+
Your image is now on the remote server. No registry account, no subscription, no intermediate storage, no open ports to
39+
the world. Just a **direct transfer** of the **missing image layers** over SSH.
40+
41+
> [!NOTE]
42+
> Unregistry was originally created for [Uncloud](https://github.com/psviderski/uncloud), a lightweight tool for
43+
> deploying and managing containerised applications across a network of Docker hosts. We needed a simple way to upload
44+
> locally built images to remote machines without requiring a registry. And realised this problem deserves its own
45+
> solution.
46+
47+
48+
<div align="center">
49+
Built with ❤️ by <a href="https://github.com/psviderski">Pasha Sviderski</a> who just wanted to deploy his images
50+
</div>

0 commit comments

Comments
 (0)