--- 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](https://github.com/sergi0g/cup) | | **License** | MIT | | **Langage** | Go | | **Étoiles GitHub** | 1309 ⭐ | | **DerniĂšre MAJ** | 2026-05-26 | | **CatĂ©gorie** | [[cat-docker\|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|Watchtower]] (full auto, parfois trop) et [[app-dockcheck|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Ă©) ```yaml # 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 ```bash 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 1. **Monter le socket Docker en `rw`** (Cup doit pouvoir pull + recreate les conteneurs) 2. **DĂ©finir l'intervalle de scan** : `CUP_INTERVAL=6h` (ou `30m` pour des tests) 3. **AccĂ©der Ă  l'UI** : `http://IP:8000` — la page d'accueil liste les conteneurs et leur Ă©tat 4. **VĂ©rifier les MAJ dĂ©tectĂ©es** : les conteneurs avec une nouvelle image affichent un badge « outdated » 5. **Tester un update** sur un conteneur de dev (pas de prod !), observer le recreate 6. **Configurer une notification** (Ntfy, Discord
) pour recevoir un rĂ©cap Ă  chaque scan ## 🔄 Alternatives ### Open Source - [[app-watchtower|Watchtower]] — updates auto, sans GUI - [[app-diun|Diun]] — notifications passives, sans update - [[app-dockcheck|Dockcheck]] — CLI pure - [[app-patchpanda|PatchPanda]] — orientĂ© stacks Compose - [[app-cupdate|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|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|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 - [GitHub sergi0g/cup](https://github.com/sergi0g/cup) - [DĂ©mo / screenshots](https://github.com/sergi0g/cup#screenshots) ## 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