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

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