Files
2026-06-09 18:40:21 +02:00

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 simplevous 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

  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

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