Files
wiki/Catalogue-Self-Hosted/apps/app-unregistry.md
T
2026-06-09 18:40:21 +02:00

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
catalogue
app
container-registry
auto-hebergement
medium false
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
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 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

🔗 Pages Liées