5.7 KiB
title: Cup created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, docker, mise-a-jour, go, gui-web, auto-hebergement] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Docker, https://github.com/sergi0g/cup]
🐳 Cup
Le café du matin pour vos conteneurs : Cup (Container Updates for the Pour) est une GUI web minimaliste qui détecte les images Docker obsolètes et vous permet de les mettre à jour d'un clic. Simple, rapide, sans daemon permanent.
📋 Informations Générales
| Champ | Valeur |
|---|---|
| Site web | (GitHub) |
| GitHub | sergi0g/cup |
| License | MIT |
| Langage | Go |
| Étoiles GitHub | 1309 ⭐ |
| Dernière MAJ | 2026-05-26 |
| Catégorie | cat-docker |
📝 Description
Cup (parfois référencé cup-updates) est une interface web légère pour gérer les mises à jour d'images Docker. Il scanne périodiquement vos conteneurs, compare les tags locaux avec les distants, et affiche une liste d'updates disponibles avec un bouton « Update » par conteneur.
Le pari de Cup : entre app-watchtower (full auto, parfois trop) et app-dockcheck (CLI pure, parfois trop brut), il y a la place pour une GUI simple où vous cliquez « update » quand vous êtes prêt.
- ✅ Scan périodique automatique (intervalle configurable, défaut 6h)
- ✅ GUI web claire : statut de chaque conteneur, tag local vs distant, bouton Update
- ✅ Update sélectif : un clic par conteneur, ou update multiple
- ✅ Multi-registres : Docker Hub, GHCR, Gitea, GitLab, Quay
- ✅ Notifications : Ntfy, Gotify, Discord, Slack, email, webhook custom
- ✅ Binaire Go unique : image Docker légère (~15 Mo), faible empreinte mémoire
- ✅ Mode read-only / read-write : paramétrable pour la sécurité
- ✅ Statut public partageable : page « what's outdated » accessible en lecture
Cup vs Watchtower : Watchtower met à jour automatiquement sans validation ; Cup affiche les MAJ et attend votre clic. Cup vs Diun : Diun notifie sans GUI de MAJ ; Cup agit depuis l'UI. Cup vs Portainer : Portainer fait 1000 choses, Cup en fait 1 (MAJ) bien.
🚀 Installation
Docker Compose (recommandé)
# docker-compose.yml
version: '3.8'
services:
cup:
image: ghcr.io/sergi0g/cup:latest
container_name: cup
restart: unless-stopped
ports:
- "8000:8000" # Web UI
volumes:
- /var/run/docker.sock:/var/run/docker.sock # rw pour pouvoir update
- cup-data:/data
environment:
- TZ=Europe/Paris
- CUP_INTERVAL=6h
- CUP_NOTIFIERS=ntfy
- NTFY_URL=https://ntfy.sh/homelab-cup
labels:
- "traefik.enable=true"
- "traefik.http.routers.cup.rule=Host(`cup.example.com`)"
- "traefik.http.routers.cup.entrypoints=websecure"
- "traefik.http.routers.cup.tls.certresolver=letsencrypt"
volumes:
cup-data:
Binaire standalone
wget -O cup.tar.gz https://github.com/sergi0g/cup/releases/latest/download/cup_Linux_x86_64.tar.gz
tar -xzf cup.tar.gz && sudo mv cup /usr/local/bin/
cup serve
⚙️ Configuration Initiale
- Monter le socket Docker en
rw(Cup doit pouvoir pull + recreate les conteneurs) - Définir l'intervalle de scan :
CUP_INTERVAL=6h(ou30mpour des tests) - Accéder à l'UI :
http://IP:8000— la page d'accueil liste les conteneurs et leur état - Vérifier les MAJ détectées : les conteneurs avec une nouvelle image affichent un badge « outdated »
- Tester un update sur un conteneur de dev (pas de prod !), observer le recreate
- Configurer une notification (Ntfy, Discord…) pour recevoir un récap à chaque scan
🔄 Alternatives
Open Source
- app-watchtower — updates auto, sans GUI
- app-diun — notifications passives, sans update
- app-dockcheck — CLI pure
- app-patchpanda — orienté stacks Compose
- app-cupdate — update auto, zero-config
Comparaison Cup vs alternatives
| Critère | Cup | Watchtower | Diun | Dockcheck |
|---|---|---|---|---|
| Type | GUI web | Daemon | Daemon notif | CLI |
| Update auto | ❌ (manuel) | ✅ | ❌ | ❌ (CLI) |
| Validation humaine | ✅ | ❌ | ❌ | ✅ |
| GUI | ✅ | ❌ | ❌ | ❌ (TUI) |
| Notifications | ✅ | ✅ | ✅ | ✅ |
| Setup | 3 min | 3 min | 5 min | 2 min |
Verdict : Cup est le juste milieu parfait entre « full auto » et « full manuel ». Si vous voulez voir ce qui se passe avant de cliquer, c'est lui. Pour du set-and-forget, app-watchtower.
Propriétaires (ce que Cup remplace)
- Portainer auto-update (Business uniquement)
- Watchtower Cloud (pas d'offre cloud officielle, donc gratuit)
- Synology Container Manager (DSM, propriétaire)
🔐 Sécurité
- ⚠️ Socket Docker en
rw: c'est volontaire ici (Cup doit pouvoir update), mais cela donne à Cup un contrôle total sur l'hôte. À n'exposer que sur un réseau de confiance (VPN, LAN) - Authentification : activer un reverse-auth (ex : app-authelia) devant la GUI si elle doit être accessible à plusieurs personnes
- Logs des updates : Cup journalise qui a cliqué « update » et quand — utile en équipe
📚 Ressources
Pages Liées
- cat-docker — Catégorie Docker
- app-portainer / app-dockge / app-yacht — GUI Docker
- app-traefik — Reverse-proxy
- recettes-docker-compose — Compose files
- securisation-home-lab — Bonnes pratiques