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

154 lines
6.3 KiB
Markdown

---
title: Dozzle
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, docker, container, monitoring-docker, logs, ui, beginner]
confidence: high
contested: false
sources: [https://selfh.st/apps/?tag=Docker, https://github.com/amir20/dozzle]
---
# 🐳 Dozzle
> **Le viewer de logs Docker temps réel le plus simple et le plus léger** — interface web fluide, pas de stockage, pas de config.
## 📋 Informations Générales
| Champ | Valeur |
| :--- | :--- |
| **Site web** | [dozzle.dev](https://dozzle.dev/) |
| **GitHub** | [amir20/dozzle](https://github.com/amir20/dozzle) |
| **License** | MIT |
| **Langage** | Go |
| **Étoiles GitHub** | 13,2k ⭐ |
| **Dernière MAJ** | 2026-06-05 |
| **Catégorie** | [[cat-docker\|Docker]] |
## 📝 Description
**Dozzle** est un **viewer de logs Docker en temps réel** accessible depuis une interface web. Sa philosophie : **ne rien stocker, juste afficher en streaming ce que vos conteneurs écrivent sur stdout/stderr**. Zéro indexation, zéro Elasticsearch, zéro base de données — du `docker logs -f` revisité en webapp.
Le résultat : un binaire statique Go de **~15 Mo**, qui démarre en quelques secondes et consomme quelques dizaines de Mo de RAM. Idéal pour un homelab où l'on veut **déboguer rapidement** sans déployer un Loki + Grafana.
-**Streaming temps réel** des logs de tous vos conteneurs
-**Recherche full-text** (regex possibles) dans les logs
-**Filtrage par conteneur, niveau, date**
-**Multi-hôtes** (Docker Swarm, agents distants)
-**Mode agent** pour interroger un hôte distant
-**Statistiques de logs** (volume, débit par conteneur)
-**Dark mode** natif
-**Authentification** basique (user/password, support OIDC via reverse proxy)
-**Pas de stockage** = aucun risque de saturation disque
-**Docker stats** (CPU/RAM/Net) intégrées à l'UI
-**Mobile-friendly**
**Public cible** : **tout homelaber qui veut un `tail -f` graphique**. Dozzle ne remplace pas un Loki/Grafana, mais le complète à merveille pour le debug quotidien.
**Alternatives directes** : [[app-cadvisor]] (métriques, pas logs), **Portainer** (logs basiques), **Loki + Grafana** (stack complète, lourde), **LoggiFly** (notifications de logs).
## 🚀 Installation
### Option 1 : Docker Compose (recommandé)
```yaml
# docker-compose.yml
version: '3.8'
services:
dozzle:
image: amir20/dozzle:latest
container_name: dozzle
restart: unless-stopped
security_opt:
- no-new-privileges:true
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro # ro = read-only (suffisant)
ports:
- "8888:8080"
environment:
- DOZZLE_AUTH=admin:$2y$10$XXXXXXXXXXXXXX # bcrypt hash, voir ci-dessous
# ou: DOZZLE_ENABLE_ACTIONS=true # permet start/stop depuis l'UI
labels:
- "traefik.enable=true"
- "traefik.http.routers.dozzle.rule=Host(`dozzle.example.com`)"
- "traefik.http.routers.dozzle.entrypoints=websecure"
- "traefik.http.routers.dozzle.tls.certresolver=letsencrypt"
- "traefik.http.routers.dozzle.middlewares=authelia@docker" # recommandé
```
> 🔐 **Pour générer le hash bcrypt** : `htpasswd -nB admin` puis retirer le `:` et utiliser le hash `$2y$...` complet.
### Option 2 : Binaire natif (sans Docker)
```bash
# Linux / macOS / Windows : un seul binaire statique
curl -sL https://github.com/amir20/dozzle/releases/latest/download/dozzle-linux-amd64 -o dozzle
chmod +x dozzle
./dozzle
# UI sur http://localhost:8080
```
## ⚙️ Configuration Initiale
1. **Accéder à l'UI** : `http://IP:8888`
2. **Vérifier que la liste des conteneurs s'affiche** (lecture du socket Docker)
3. **Cliquer sur un conteneur** : les logs s'affichent en streaming
4. **Utiliser la barre de recherche** : regex, filtres rapides (ex : `error`, `level=warn`)
5. **Activer l'auth** : variable `DOZZLE_AUTH` ou via reverse proxy
6. **(Optionnel) Activer les actions** : `DOZZLE_ENABLE_ACTIONS=true` permet de start/stop des conteneurs depuis l'UI
## 🔄 Alternatives
### Open Source
- **Loki + Grafana** — Stack complète, indexation, alertes, retention (lourd)
- **Portainer** — Logs basiques inclus
- [[app-cadvisor]] — Métriques (pas logs)
- **LoggiFly** — Notifications de logs
- **Docker** natif — `docker logs -f` en CLI
- **Sentry** — Pour les erreurs applicatives, pas Docker en soi
### Propriétaires
- **Datadog Logs** — Payant, très complet
- **Loggly** (SolarWinds) — SaaS logging
- **Papertrail** — Cloud log management
- **Splunk** — Enterprise
### Tableau comparatif
| Critère | Dozzle | Loki+Grafana | Portainer logs | `docker logs` |
| :--- | :--- | :--- | :--- | :--- |
| Stockage logs | ❌ (streaming) | ✅ (retention) | ❌ | ❌ |
| Recherche | ✅ (regex) | ✅ (LogQL puissant) | Basique | ❌ |
| UI web | ✅ (élégante) | ✅ (Grafana) | ✅ (basique) | ❌ |
| RAM/CPU | ~30 Mo | ~500 Mo+ | Inclus | 0 |
| Setup | 2 min | 30 min+ | 5 min | 0 |
| Alertes | ❌ | ✅ | ❌ | ❌ |
| Licence | MIT | AGPL | Zlib (CE) | Apache-2.0 |
**Verdict** : **Dozzle est imbattable pour le debug quotidien**. Pour des besoins de rétention et d'alertes, ajouter Loki+Grafana à côté.
## 🔐 Sécurité
- ⚠️ **Socket Docker exposé** : Dozzle a besoin du socket pour lister les conteneurs et lire les logs. **Montez-le en `:ro`** (read-only) — Dozzle n'a pas besoin d'écrire.
- **Auth obligatoire** en exposition web : activez `DOZZLE_AUTH` ou passez par un middleware [[app-traefik]] (Authelia, Authentik, oauth2-proxy).
- **Activer `DOZZLE_NO_LOG_LEVEL=true`** si vous ne voulez pas que Dozzle injecte des niveaux dans les logs.
- **Ne pas activer `DOZZLE_ENABLE_ACTIONS`** si vous exposez Dozzle publiquement — risque de DoS par arrêt de conteneurs critiques.
- **Restriction IP / VPN** : idéal est de n'exposer Dozzle que sur le réseau interne ou via Tailscale.
## 📚 Ressources
- [GitHub amir20/dozzle](https://github.com/amir20/dozzle)
- [Site officiel](https://dozzle.dev/)
- [Documentation](https://dozzle.dev/guide/getting-started)
- [Démo live](https://demo.dozzle.dev/)
## Pages Liées
- [[cat-docker]] — Catégorie Docker
- [[app-cadvisor]] — Métriques conteneurs
- [[app-portainer]] — Alternative plus complète
- [[app-traefik]] — Reverse proxy
- [[observabilite]] — Stack observabilité
- [[securisation-home-lab]] — Durcir l'infra