---
title: WUD (What's Up Docker)
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, docker, container, update, monitoring-docker, notifications, ui]
confidence: high
contested: false
sources: [https://selfh.st/apps/?tag=Docker, https://github.com/getwud/wud]
---

# 🐳 WUD — What's Up Docker

> **Le détecteur d'updates Docker avec UI web** — visualisez vos conteneurs obsolètes et déclenchez (ou pas) les mises à jour.

## 📋 Informations Générales

| Champ | Valeur |
| :--- | :--- |
| **Site web** | [getwud.io](https://www.getwud.io/) |
| **GitHub** | [getwud/wud](https://github.com/getwud/wud) |
| **License** | MIT |
| **Langage** | JavaScript (Node.js) |
| **Étoiles GitHub** | 3,6k ⭐ |
| **Dernière MAJ** | 2026-06-05 |
| **Catégorie** | [[cat-docker\|Docker]] |

## 📝 Description

**WUD** (What's Up Docker) est un **watcher d'images Docker** qui scanne en continu les images de vos conteneurs en cours, les compare aux tags disponibles sur les registries, et **vous notifie** + **affiche le statut dans une UI web** quand une mise à jour est disponible. C'est l'alternative la plus **visuelle** à [[app-diun]] et un excellent complément à [[app-portainer]].

WUD se distingue par son **écosystème de composants** : *watchers* (Docker, Kubernetes), *registries* (Docker Hub, GHCR, Quay, ECR, GCR, Harbor, registries privés), *notifiers* (Discord, Telegram, Slack, email, Gotify, Ntfy, Pushover, +10 autres) et *triggers* (webhook, MQTT, REST). Tout est configurable par **variables d'environnement**, ce qui le rend très simple à déployer.

- ✅ **UI web** intégrée : dashboard des images, statuts (up-to-date / outdated), MAJ dispos
- ✅ **Multi-registries** : Docker Hub, GHCR, Quay, ECR, GCR, Harbor, OCI, générique
- ✅ **Multi-watchers** : Docker local, Docker socket, Kubernetes, compose
- ✅ **Multi-notifiers** : Discord, Telegram, Slack, email, Gotify, Ntfy, Pushover, +10
- ✅ **Triggers** : webhook, MQTT, REST, en complément des notifiers
- ✅ **Filtrage par labels** : `wud.tag.include`, `wud.tag.exclude`, `wud.watch=true`
- ✅ **Cron configurable** (par défaut 1h)
- ✅ **API REST** complète
- ✅ **Authentification** : local, OIDC, basic
- ✅ **Multi-langue** (FR, EN, ES, DE, +10)
- ✅ **Watchtower-compatible** : peut déclencher un `update` via webhook

**Public cible** : **homelabers qui veulent un *tableau de bord* visuel** de l'état de leurs conteneurs, plus qu'un pur notificateur. Idéal pour les personnes qui gèrent 10-100 conteneurs.

**Alternatives directes** : [[app-diun]] (notif pure, sans UI), **Watchtower** (update auto, UI basique), **Cupdate** (zero-config), **Cup** (alertes simples).

## 🚀 Installation

### Option 1 : Docker Compose (recommandé)

```yaml
# docker-compose.yml
version: '3.8'
services:
  wud:
    image: getwud/wud:latest
    container_name: wud
    restart: unless-stopped
    security_opt:
      - no-new-privileges:true
    environment:
      - WUD_WATCHER_DOCKER_LOCAL=true
      - WUD_REGISTRY_DOCKERHUB_AUTH=true  # pour augmenter le rate limit
      - WUD_NOTIFIER_DISCORD_WEBHOOKURL=https://discord.com/api/webhooks/...
      - WUD_TRIGGER_WUD_RESTART_SIMPLE_UPDATE=false  # désactiver l'update auto
      - WUD_UI_AUTH_DEFAULT_USERNAME=admin
      - WUD_UI_AUTH_DEFAULT_PASSWORD=***  - TZ=Europe/Paris
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro  # read-only
    ports:
      - "3000:3000"
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.wud.rule=Host(`wud.example.com`)"
      - "traefik.http.routers.wud.entrypoints=websecure"
      - "traefik.http.routers.wud.tls.certresolver=letsencrypt"
      - "traefik.http.services.wud.loadbalancer.server.port=3000"
```

> 🔐 **Important** : changez le mot de passe par défaut et/ou branchez WUD sur un IdP OIDC (Authelia, Authentik, Keycloak).

### Option 2 : Stack Compose étendue (avec Watchtower)

```yaml
# Ajout : Watchtower déclenché par WUD via webhook
  watchtower:
    image: containrrr/watchtower
    restart: unless-stopped
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    command: --schedule "0 0 4 * * *"  # 4h du matin tous les jours
```

## ⚙️ Configuration Initiale

1. **Accéder à l'UI** : `http://IP:3000`
2. **Se connecter** avec le compte par défaut (`admin` / password défini) et **changer le mot de passe**.
3. **Vérifier la découverte des conteneurs** : tous les conteneurs en cours doivent s'afficher.
4. **Ajouter un notifier** : *UI > Settings > Notifiers* (Discord, Telegram, Gotify, etc.).
5. **Tester une notif** : bouton *Test* dans l'UI.
6. **Activer le watch** sur les stacks critiques via labels :
   ```yaml
   labels:
     - "wud.watch=true"
     - "wud.tag.include=^v[0-9.]+$"  # ne suivre que les tags semver
   ```

## 🔄 Alternatives

### Open Source

- [[app-diun]] — Notif pure, sans UI, plus de providers
- **Watchtower** — Update automatique, UI minimale
- **Cupdate** — Zero-config, UI simple
- **Cup** — Mises à jour Docker simplifiées
- **Renovate** / **Dependabot** — Updates code (pas runtime)
- [[app-portainer]] — UI complète, MAJ incluses (natif)

### Propriétaires

- **Docker Hub Pro** — Webhooks de MAJ
- **Snyk Container** — Vuln + updates
- **JFrog Xray** — Enterprise
- **Prisma Cloud** (Palo Alto) — Cloud security
- **Aqua Security** — Container security
- **Sysdig Secure** — Runtime + MAJ

### Tableau comparatif

| Critère | WUD | Diun | Watchtower | Cupdate | Cup |
| :--- | :--- | :--- | :--- | :--- | :--- |
| UI web | ✅ complète | ❌ | ⚠️ basique | ✅ simple | ✅ simple |
| Update auto | ❌ (via trigger) | ❌ (via Watchtower) | ✅ (cœur) | ❌ | ✅ (option) |
| Multi-registries | ✅ (tous) | ✅ (tous) | ✅ | ✅ | ✅ |
| Regex tags | ✅ | ✅ | ⚠️ | ❌ | ❌ |
| Config | Env vars | YAML | Env | UI | UI |
| Notifications | ~15 | +90 | 3-4 | 5 | 5 |
| OIDC | ✅ | ❌ | ❌ | ❌ | ❌ |
| Licence | MIT | MIT | Apache-2.0 | MIT | MIT |

**Verdict** : **WUD est le plus *user-friendly* de la catégorie** grâce à son UI claire. Idéal pour visualiser d'un coup d'œil l'état de tous ses conteneurs. Pour des notifications hyper-personnalisées avec +90 providers, regarder [[app-diun]].

## 🔐 Sécurité

- ⚠️ **Socket Docker = root** : monté en `:ro` pour la lecture des conteneurs, mais WUD n'a pas besoin d'écrire.
- **Auth obligatoire** : changez le mot de passe par défaut, idéalement branchez WUD sur OIDC (Authelia/Authentik).
- **[[app-traefik]] + middleware d'auth** recommandé en exposition web.
- **Rate limits Docker Hub** : 100 pulls/6h en anonyme, 200/h en auth. WUD ne *pull* pas les images (juste le manifest), mais les notifs/scan restent dans la limite.
- **Triggers慎重** : un trigger *auto-update* peut casser une prod sans surveillance humaine. **À combiner avec une stratégie de tests/canary** ou désactiver et faire les MAJ manuellement.

## 📚 Ressources

- [GitHub getwud/wud](https://github.com/getwud/wud)
- [Site officiel](https://www.getwud.io/)
- [Documentation](https://www.getwud.io/docs/)
- [Démo live](https://demo.getwud.io/)

## Pages Liées
- [[cat-docker]] — Catégorie Docker
- [[app-diun]] — Concurrent (notif pure, sans UI)
- [[app-portainer]] — UI complète
- [[app-traefik]] — Reverse proxy
- [[observabilite]] — Stack d'observabilité
- [[securisation-home-lab]] — Durcir l'infra
