Skip to content

Traefik

KumoYami behind Traefik, with Docker labels.

If Traefik already sits in front of your containers, KumoYami joins it with a few labels, like any other service.

Create a docker-compose.override.yml next to KumoYami's docker-compose.yml. Change the domain, and the names that depend on your Traefik setup: the network (traefik in the example), the HTTPS entrypoint (websecure) and the certresolver (letsencrypt).

docker-compose.override.yml
services:
  web:
    networks:
      - default
      - traefik
    labels:
      - traefik.enable=true
      - traefik.docker.network=traefik
      - traefik.http.routers.kumoyami.rule=Host(`nube.example.com`)
      - traefik.http.routers.kumoyami.entrypoints=websecure
      - traefik.http.routers.kumoyami.tls.certresolver=letsencrypt
      - traefik.http.services.kumoyami.loadbalancer.server.port=3000

networks:
  traefik:
    external: true

Apply the change:

docker compose up -d

Traefik talks to the container over the Docker network, on its internal port 3000: the 127.0.0.1:4890 in docker-compose.yml doesn't come into it and can stay as it is.

Why the override

Docker Compose merges docker-compose.override.yml into docker-compose.yml, labels included (the Watchtower one is kept). And the installer leaves alone any override it didn't create, whereas docker-compose.yml does get updated when you run it again. If you gave the installer a domain, remove its Caddy first with --no-caddy.