Skip to content
This documentation is under development. Expect changes!

Cup

Cup is a monitoring solution for tracking container updates. This guide will help you set up Cup in your homelab.

Create a folder to store all Cup configuration files:

Terminal window
mkdir cup
cd cup

Create a compose.yaml file with the following content:

compose.yaml
services:
cup:
command: '-c /config/cup.json serve -p 9000'
image: ghcr.io/sergi0g/cup
volumes:
- '/var/run/docker.sock:/var/run/docker.sock'
- ./cup.json:/config/cup.json
networks:
- proxy-net
labels:
traefik.enable: true
traefik.http.routers.cup.entrypoints: web,websecure
traefik.http.routers.cup.tls: true
traefik.http.routers.cup.tls.certresolver: production
traefik.http.routers.cup.rule: Host(`cup.example.com`)
traefik.http.services.cup.loadbalancer.server.port: 9000
networks:
proxy-net:
name: proxy-network
external: true
compose.yaml
4 collapsed lines
...
traefik.http.routers.cup.entrypoints: web,websecure
traefik.http.routers.cup.tls: true
traefik.http.routers.cup.tls.certresolver: production
traefik.http.routers.cup.rule: Host(`cup.example.com`)
4 collapsed lines
traefik.http.services.cup.loadbalancer.server.port: 9000
networks:
...

Create a cup.json file with the following content:

cup.json
{
"$schema": "https://raw.githubusercontent.com/sergi0g/cup/main/cup.schema.json",
"version": 3,
"theme": "blue",
"refresh_interval": "0 0 */12 * * *"
}

Your final folder structure should look like this:

  • Directorycup/
  • compose.yaml
  • cup.json

Once all configuration files are in place, start Cup with the following command:

Terminal window
docker compose up -d

After a few seconds, you should be able to access the Cup dashboard at:

https://cup.example.com

Make sure to replace cup.example.com with your actual domain configured in compose.yaml.