3.6 KiB
title, created, updated, type, tags, confidence, contested, sources
| title | created | updated | type | tags | confidence | contested | sources | ||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Unregistry | 2026-06-08 | 2026-06-08 | app |
|
medium | false |
|
🐳 Unregistry
Registre d'images Docker minimaliste, sans démon persistant, qui pousse les images directement vers
docker loadsur l'hôte distant.
📊 Métadonnées
| Champ | Valeur |
|---|---|
| Nom | Unregistry |
| Slug | unregistry |
| Catégorie principale | cat-container-registry |
| Langage | Go (28) |
| Stars | ⭐ 4767 |
| Dernière MAJ | 2026-04-21 |
| Repo | github.com/psviderski/unregistry |
| Site | uncloud.run |
📝 Description
Unregistry est un projet expérimental et minimaliste qui remplace un Docker Registry complet par un binaire Go unique côté serveur, couplé à un plugin/plugin-less côté client. Au lieu de stocker les couches sur disque, il streame l'image directement vers le démon Docker distant via un tunnel SSH, et invoque docker load côté hôte cible.
Il fait partie de l'écosystème uncloud (outillage de déploiement homelab/edge) et s'adresse aux déploiements one-off de conteneurs, idéal pour pousser une image sur un serveur de dev/VPS sans monter tout un Harbor ou un registry :2. Aucune base de données, aucun stockage, aucun port à exposer : tout passe par SSH.
🐳 Installation Docker
services:
unregistry:
image: ghcr.io/psviderski/unregistry:latest
container_name: unregistry
restart: unless-stopped
ports:
- "5000:5000"
volumes:
- ./data:/data
environment:
- PUID=1000
- PGID=1000
⚠️ Adapte image/port/volumes selon le README officiel : https://github.com/psviderski/unregistry
🔀 Reverse Proxy (Traefik)
services:
unregistry:
image: ghcr.io/psviderski/unregistry:latest
labels:
- "traefik.enable=true"
- "traefik.http.routers.unregistry.rule=Host(`unregistry.example.com`)"
- "traefik.http.routers.unregistry.entrypoints=websecure"
- "traefik.http.routers.unregistry.tls.certresolver=letsencrypt"
- "traefik.http.services.unregistry.loadbalancer.server.port=5000"
🔧 Configuration
- Utilisation typique :
unregistry push <image> ssh://user@host(transfert direct) - Côté serveur, l'archive s'écrit dans un dossier temporaire puis
docker loadreconstitue l'image - Compatible avec les commandes
docker buildx, les pipelines CI et le format OCI standard
🔀 Alternatives
Open source :
- Docker Registry officiel (
registry:2) — registry HTTP V2 complet - Harbor — registry enterprise avec UI, RBAC, scan CVE, replication
- Dragonfly (D7Y) — registry orienté P2P/distribution à grande échelle
Propriétaires :
- Docker Hub — registry managé SaaS
- AWS ECR — registry managé Amazon
🔒 Sécurité
- Le transport s'appuie sur SSH (authentification par clé), pas d'authentification custom à gérer
- Aucune persistance côté serveur = surface d'attaque quasi-nulle, mais l'image n'est pas stockée entre deux push
- Idéalement couplé à un bastion SSH durci et des clés ed25519
📚 Ressources
🔗 Pages Liées
- cat-container-registry — Catégorie container-registry
- Catalogue-Self-Hosted — Hub principal