--- title: Unregistry created: 2026-06-08 updated: 2026-06-08 type: app tags: [catalogue, app, container-registry, auto-hebergement] confidence: medium contested: false sources: - https://selfh.st/apps/?search=unregistry - https://github.com/psviderski/unregistry --- # 🐳 Unregistry > **Registre d'images Docker minimaliste, sans démon persistant, qui pousse les images directement vers `docker load` sur 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](https://github.com/psviderski/unregistry) | | **Site** | [uncloud.run](https://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 ```yaml 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) ```yaml 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 ssh://user@host` (transfert direct) - Côté serveur, l'archive s'écrit dans un dossier temporaire puis `docker load` reconstitue 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 - [selfh.st/apps/?search=unregistry](https://selfh.st/apps/?search=unregistry) - [GitHub](https://github.com/psviderski/unregistry) - [Site officiel](https://uncloud.run) ## 🔗 Pages Liées - [[cat-container-registry]] — Catégorie container-registry - [[Catalogue-Self-Hosted]] — Hub principal