102 lines
3.3 KiB
Markdown
102 lines
3.3 KiB
Markdown
---
|
|
title: Zot Registry
|
|
created: 2026-06-08
|
|
updated: 2026-06-08
|
|
type: app
|
|
tags: [catalogue, container-registry, app-marathon3-batch-b]
|
|
confidence: high
|
|
contested: false
|
|
sources: [https://selfh.st/apps/?tag=container-registry&app=zot]
|
|
---
|
|
|
|
# 📦 Zot Registry
|
|
|
|
> Registre OCI haute performance, distribué, avec mirroring, signatures et scan CVE intégrés.
|
|
|
|
## 📋 Informations Générales
|
|
|
|
| Champ | Valeur |
|
|
| :--- | :--- |
|
|
| **Site web** | [zotregistry.dev](https://zotregistry.dev) |
|
|
| **GitHub** | [project-zot/zot](https://github.com/project-zot/zot) |
|
|
| **License** | Apache-2.0 |
|
|
| **Langage** | Go |
|
|
| **Étoiles GitHub** | ~1.5k ⭐ |
|
|
| **Catégorie** | [[cat-container-registry\|Container Registry]] |
|
|
|
|
## 📝 Description
|
|
|
|
**Zot** est un registre OCI (Open Container Initiative) production-ready écrit en Go par Cisco, supportant images, signes Cosign, SBOM, scan de vulnérabilités via Trivy, replication multi-sites, et mode "scratch" (binaire statique minuscule). Différence vs **Docker Registry / Harbor**: Zot est **léger, sans dépendance externe** (pas besoin de PostgreSQL/Redis), **CLI-friendly**, avec des **CLI de réplication** prêtes à l'emploi. Pour qui: équipes DevOps, edge computing, air-gapped, IoT, qui veulent un registre privé OCI simple et rapide.
|
|
|
|
## 🚀 Installation
|
|
|
|
### Docker Compose (recommandé)
|
|
|
|
```yaml
|
|
version: '3.8'
|
|
services:
|
|
zot:
|
|
image: ghcr.io/project-zot/zot:latest
|
|
container_name: zot
|
|
restart: unless-stopped
|
|
volumes:
|
|
- ./config.json:/etc/zot/config.json:ro
|
|
- zot-data:/var/lib/zot
|
|
labels:
|
|
- traefik.enable=true
|
|
- traefik.http.routers.zot.rule=Host(`zot.example.com`)
|
|
- traefik.http.routers.zot.entrypoints=websecure
|
|
- traefik.http.routers.zot.tls.certresolver=letsencrypt
|
|
- traefik.http.services.zot.loadbalancer.server.port=5000
|
|
|
|
volumes:
|
|
zot-data:
|
|
```
|
|
|
|
Exemple `config.json` minimal:
|
|
```json
|
|
{
|
|
"distSpecVersion": "1.1.1",
|
|
"storage": { "rootDirectory": "/var/lib/zot" },
|
|
"http": { "address": "0.0.0.0", "port": "5000" },
|
|
"auth": {
|
|
"htpasswd": {
|
|
"path": "/etc/zot/htpasswd"
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
Push: `docker tag myapp:latest zot.example.com/myapp:latest && docker push zot.example.com/myapp:latest`
|
|
|
|
## 🔄 Alternatives
|
|
|
|
### Open Source
|
|
- **Docker Registry** — Référence upstream, basique.
|
|
- **Harbor** — CNCF, complet (scan, replication, RBAC), plus lourd.
|
|
- [[app-repoflow]] — UI pour registries.
|
|
- [[app-distribution]] — Implémentation officielle Docker.
|
|
- **GitHub Container Registry** — Cloud, gratuit jusqu'à 2 Go.
|
|
|
|
### Propriétaires
|
|
- **AWS ECR** — Intégration IAM, facturation.
|
|
- **Google Artifact Registry** — Géré, build triggers.
|
|
- **Azure ACR** — Géo-replication, content trust.
|
|
|
|
## 🔐 Sécurité
|
|
- **Authentification**: htpasswd, LDAP, OIDC, API tokens.
|
|
- **Signatures Cosign**: vérification de l'intégrité des images.
|
|
- **Scan CVE**: intégration Trivy native.
|
|
- **RBAC**: granulaires par repository.
|
|
- **TLS**: obligatoire (Traefik ou terminaison native).
|
|
|
|
## 📚 Ressources
|
|
- [Documentation](https://zotregistry.dev/v2.1/)
|
|
- [GitHub](https://github.com/project-zot/zot)
|
|
- [CNCF Sandbox](https://landscape.cncf.io/)
|
|
|
|
## Pages Liées
|
|
- [[cat-container-registry]] — Catégorie Container Registry
|
|
- [[app-repoflow]] — UI pour registries
|
|
- [[recettes-docker-compose]] — Templates Docker
|