Este é um guia completo para configurar o Uptime Kuma, uma ferramenta de monitoramento self-hosted (hospedagem própria) que serve como uma excelente alternativa gratuita a serviços pagos como Uptime Robot ou StatusCake.
O foco deste tutorial é a instalação via Docker (padrão da indústria) e a exposição segura via Nginx Reverse Proxy, garantindo que você tenha um painel de monitoramento externo robusto.
Pré-requisitos
- Um servidor VPS (pode ser pequeno, ex: 1 vCPU, 1GB RAM) rodando Linux (Ubuntu/Debian/AlmaLinux).
- Docker e Docker Compose instalados.
- Um domínio ou subdomínio apontado para o IP do servidor (ex:
status.seudominio.com).
Passo 1: Instalação via Docker Compose
Embora seja possível rodar com um simples comando docker run, o uso do Docker Compose é recomendado para facilitar a manutenção e a persistência dos dados.
Crie o diretório para o projeto:
mkdir -p /opt/uptime-kuma cd /opt/uptime-kuma
Crie o arquivo docker-compose.yml:
nano docker-compose.yml
Insira o seguinte conteúdo:
services:
uptime-kuma:
image: louislam/uptime-kuma:2.1.1
container_name: uptime-kuma
volumes:
- ./uptime-kuma-data:/app/data
ports:
- 3001:3001 # Porta interna exposta (será usada pelo Proxy)
restart: alwaysSuba o container:
docker compose up -d
Neste momento, o Uptime Kuma já está rodando na porta 3001.
Passo 2: Configuração do Reverse Proxy (Nginx)
Para acessar via https://status.seudominio.com e garantir segurança SSL, configuramos um proxy reverso. O Uptime Kuma utiliza WebSockets para atualizações em tempo real, então a configuração do Nginx exige cabeçalhos específicos.
Crie o arquivo de configuração do Nginx: nano /etc/nginx/conf.d/uptime-kuma.conf (Nota: Ajuste o caminho conforme sua distro, ex: sites-available no Ubuntu)
Adicione a configuração (substitua status.seudominio.com pelo seu domínio):
server {
listen 80;
server_name status.seudominio.com;
location / {
proxy_pass http://127.0.0.1:3001;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}- Teste e reinicie o Nginx:
nginx -t; systemctl restart nginx - (Opcional mas recomendado) Instale o SSL com Certbot:
certbot --nginx -d status.seudominio.com
Passo 3: Configuração Inicial e Monitoramento
Acesse seu subdomínio. Na primeira tela, crie seu usuário administrador.
Adicionando o primeiro Monitor:
- Clique em + Add New Monitor.
- Monitor Type: Escolha “HTTP(s)” para sites, “Ping” para servidores, ou “TCP Port” para serviços específicos (como bancos de dados).
- Friendly Name: Nome do serviço (ex: “Site Principal”).
- URL: A URL a ser monitorada.
- Heartbeat Interval: O padrão é 60 segundos. Para monitoramento crítico, você pode baixar para 20s.
Passo 4: Notificações (Telegram/Discord/Slack)
O diferencial do Uptime Kuma é o suporte nativo a dezenas de canais de notificação.
Exemplo com Telegram:
- No Telegram, fale com o
@BotFatherpara criar um bot e obter o Token. - Fale com o
@userinfobot(ou obtenha seu ID de outra forma) para pegar seu Chat ID. - No Uptime Kuma, vá em Settings > Notifications > Setup Notification.
- Selecione Telegram, insira o Token e o Chat ID.
- Clique em Test e depois Save.
Passo 5: Status Page Pública
Para criar uma página de status pública (similar ao status.github.com) para seus usuários:
- No menu superior direito, clique em Status Pages.
- Clique em New Status Page.
- Defina um nome e um “slug” (caminho da URL).
- Adicione os monitores que você deseja exibir publicamente.
- Você pode mapear um domínio específico para essa página de status nas configurações da própria página (“Domain Name”).
Dica de “Monitoramento Externo”
Para que o monitoramento seja realmente “externo”, o Uptime Kuma deve ser instalado em um servidor fora da infraestrutura que você está monitorando.
- Cenário Ideal: Se seus serviços estão na AWS, instale o Uptime Kuma em uma VPS barata na Hetzner ou OVH. Assim, se a AWS cair inteira, o Uptime Kuma (que está fora) conseguirá te alertar.
FAQ
Sim, o Uptime Kuma é 100% gratuito e open source. Diferente de serviços como Uptime Robot ou StatusCake, que cobram por intervalos de checagem menores (como 1 minuto) ou histórico estendido, o Uptime Kuma oferece todos esses recursos sem custo, desde que você tenha um servidor para hospedá-lo.
Ele suporta uma ampla variedade de monitores, incluindo: HTTP(s) para sites, Ping (ICMP) para servidores, Porta TCP, Keyword (procura uma palavra específica no HTML), DNS record, Steam Game Server e até monitoramento de contêineres Docker.
O Uptime Kuma possui integração nativa com mais de 90 serviços de notificação. Para o Telegram, basta criar um bot via @BotFather e inserir o token. Para WhatsApp, é possível utilizar serviços de gateway ou webhooks, embora o Telegram seja a opção gratuita mais estável e recomendada.
Não completamente. O Uptime Kuma é focado em monitoramento de disponibilidade (“está on ou off?”) e páginas de status públicas. O Zabbix e o Prometheus são ferramentas de métricas profundas (uso de disco, carga de CPU, análise de logs). O ideal é usar o Uptime Kuma para monitoramento externo e alertas rápidos, e o Zabbix para análise interna de infraestrutura.
Veja Mais:
Docker para SysAdmins: Serviços Isolados sem Complicação
Como instalar Portainer para gerenciamento Docker com Nginx Proxy Manager no Ubuntu
Principais comandos Linux que todo sysadmin deve conhecer (Guia Completo)
Docker Compose em Produção: Guia de Redes e Volumes
How to Install Portainer for Docker Management with Nginx Proxy Manager on Ubuntu

