Uptime Kuma con Traefik

Uptime Kuma es una herramienta de monitorización del tiempo de actividad para HTTP(s) / TCP / Ping / Registro DNS con notificaciones vía Telegram, Discord, Gotify, Slack, Pushover, Email (SMTP), y más de 70 servicios de notificación.

Lo instalaremos con Traefik y con certificado SSL en un subdominio. Asegurate de que tienes abierto el puerto 3001 y el subdominio creado.

1.- Instalar Docker y Docker-compose

#####################
# Instalamos Docker
#####################
sudo apt update
sudo apt upgrade
sudo apt remove docker

# instala version ultima
sudo apt install docker.io

########################## # Instalamos docker-compose ######################### # instalamos la ultima version: en este caso la 2.26.1 (https://github.com/docker/compose/releases) sudo curl -L https://github.com/docker/compose/releases/download/v2.5.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose # A continuación lo hacemos ejecutable sudo chmod +x /usr/local/bin/docker-compose

# Comprobamos que está bien instalado
sudo docker-compose --version
# (no necesario en modo pruebas)Creamos grupo docker (quizás ya está crado) sudo groupadd docker # (no necesario en modo pruebas)Creamos usuario sin permiosos sudo sudo adduser pepe # (no necesario en modo pruebas)Lo agregamos al grupo docker sudo usermod -aG docker pepe # (no necesario en modo pruebas) Activamos cambios a grupos sudo newgrp docker # (no necesario en modo pruebas)Cambiamos de usuario su pepe # (no necesario en modo pruebas) Comprobamos que no tiene permisos sudo intentando listar el raiz ls -la /root # Ejecutamos con el nuevo usuario sin sudo docker run hello-world
Markup

2.- Preparamos el fichero docker-compose para Traefik

Lo llamaremos: docker-compose.traefik.yml

version: "3.3"

services:

  traefik:
    image: "traefik:v2.6"
    container_name: "traefik"
    command:
       - "--api.insecure=true"
      - "--providers.docker=true" # acceso abierto en el puerto 8080 // cambiar por --api.dashboard=true
      - "--providers.docker.exposedbydefault=false"
      - "--entrypoints.websecure.address=:443"
      - "--certificatesresolvers.myresolver.acme.tlschallenge=true"
       - "--certificatesresolvers.myresolver.acme.email=pepe@midominio.com"
      - "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
    ports:
      - "443:443"
      - "8080:8080"  # Comentar
    volumes:
      - "./letsencrypt:/letsencrypt"
      - "/var/run/docker.sock:/var/run/docker.sock:ro"
Markup

3.- Preparamos el fichero docker-compose para Uptime Kuma

Lo llamaremos: docker-compose.yml

version: "3.3"

services:

  uptime_kuma:
    image: louislam/uptime-kuma:1
    container_name: uptime_kuma
    restart: unless-stopped
    volumes:
      - ./data:/app/data
    ports:
      - 3001:3001
    labels:
      - traefik.enable=true
      - traefik.http.routers.uptime_kuma.entrypoints=websecure
      - traefik.http.routers.uptime_kuma.rule=Host(`uptime.midominio.com`)
      - traefik.http.routers.uptime_kuma.tls.certresolver=myresolver
Markup

 Y los lanzamos con:

docker-compose -f docker-compose.yml -f docker-compose.traefik.yml up -d

para ver el log podemos usar:

docker-compose logs -f