6.3 KiB
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 |
| GitHub | amir20/dozzle |
| License | MIT |
| Langage | Go |
| Étoiles GitHub | 13,2k ⭐ |
| Dernière MAJ | 2026-06-05 |
| Catégorie | cat-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é)
# 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 adminpuis retirer le:et utiliser le hash$2y$...complet.
Option 2 : Binaire natif (sans Docker)
# 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
- Accéder à l'UI :
http://IP:8888 - Vérifier que la liste des conteneurs s'affiche (lecture du socket Docker)
- Cliquer sur un conteneur : les logs s'affichent en streaming
- Utiliser la barre de recherche : regex, filtres rapides (ex :
error,level=warn) - Activer l'auth : variable
DOZZLE_AUTHou via reverse proxy - (Optionnel) Activer les actions :
DOZZLE_ENABLE_ACTIONS=truepermet 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 -fen 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_AUTHou passez par un middleware app-traefik (Authelia, Authentik, oauth2-proxy). - Activer
DOZZLE_NO_LOG_LEVEL=truesi vous ne voulez pas que Dozzle injecte des niveaux dans les logs. - Ne pas activer
DOZZLE_ENABLE_ACTIONSsi 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
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