O que é o Uptime Kuma?

O Uptime Kuma é uma ferramenta de monitoramento auto-hospedada. Ela verifica sites, portas TCP, registros DNS, contêineres Docker e muito mais em intervalos regulares, envia uma notificação quando algo fica indisponível e pode publicar páginas de status. O projeto fornece uma imagem oficial, louislam/uptime-kuma, que escuta na porta 3001 e mantém tudo em uma pasta /app/data.

Descrição da ferramenta

Esta ferramenta cria um arquivo compose.yaml para o Uptime Kuma. Ela começa com o arquivo do repositório do Uptime Kuma e adiciona as configurações que as pessoas geralmente precisam: a versão e a variante da imagem, a porta do host e o endereço de vinculação, o local onde os dados são armazenados, o acesso ao socket do Docker para monitores do host Docker e o banco de dados. Com um banco de dados MariaDB em seu próprio contêiner, a ferramenta adiciona um segundo serviço com uma verificação de integridade, para que o Uptime Kuma só seja iniciado quando o banco de dados estiver pronto. As configurações para as quais o formulário não tem um campo podem ser adicionadas como variáveis de ambiente. Tudo é criado no seu navegador.

Recursos

  • As tags de imagem 2, 1 e beta, com as variantes padrão, slim, rootless e slim rootless da versão 2
  • A porta do host e um endereço de vinculação, como 127.0.0.1, para uso atrás de um proxy reverso
  • Uma pasta de dados no host ou um volume Docker nomeado, declarado automaticamente
  • Acesso opcional a /var/run/docker.sock para monitores do host Docker, com um aviso sobre o que isso permite
  • SQLite, o MariaDB integrado, um contêiner MariaDB adicionado ao arquivo ou um servidor MariaDB externo
  • Uma senha de banco de dados gerada automaticamente, com os sinais $ escapados para que o Compose os preserve
  • Opções para incorporação em um iframe, verificação da origem do WebSocket e um token do Cloudflare Tunnel
  • Qualquer outra variável de ambiente, comentários que explicam o arquivo e download como compose.yaml

Exemplos

As configurações padrão produzem o mesmo arquivo que está no repositório do Uptime Kuma:

services:
  uptime-kuma:
    image: louislam/uptime-kuma:2
    ports:
      - "3001:3001"
    volumes:
      - ./data:/app/data
    restart: unless-stopped

A escolha de um contêiner MariaDB como banco de dados adiciona um serviço mariadb e conecta o Uptime Kuma a ele com UPTIME_KUMA_DB_TYPE, UPTIME_KUMA_DB_HOSTNAME e as outras variáveis UPTIME_KUMA_DB_*.

Dicas

  • Salve o resultado como compose.yaml em uma pasta vazia e inicie-o com docker compose up -d. Em seguida, abra http://localhost:3001
  • Sistemas de arquivos como NFS não são compatíveis com a pasta de dados. Use uma pasta local ou um volume Docker
  • As imagens slim não incluem o Chromium, necessário para o monitor de navegador real, e também não incluem o MariaDB integrado
  • As imagens rootless são executadas como o usuário node, com UID 1000, portanto uma pasta de dados no host deve ter permissão de gravação para esse usuário
  • O Uptime Kuma usa WebSockets. Quando você o coloca atrás de um proxy reverso, o proxy precisa encaminhar os cabeçalhos Upgrade e Connection
  • O socket do Docker dá ao Uptime Kuma controle total sobre o Docker no host. Monte-o somente quando precisar de monitores do host Docker e não exponha o Uptime Kuma à internet
  • A versão 1 oferece suporte apenas ao SQLite, portanto as opções de banco de dados ficam ocultas para ela
  • Os campos de senha acabam sendo armazenados no arquivo em texto simples. Mantenha o arquivo privado ou mova a senha para um arquivo .env e faça referência a ela como ${DB_PASSWORD}