Alertas que no se pierden
Un envío fallido se reintenta. Mientras una app siga caída, un recordatorio dice cuánto tiempo lleva. Si caen muchas a la vez, llega un solo aviso sobre tu propia red en lugar de una tormenta.
Autohospedado, un solo binario, sin base de datos
Heartbeat revisa tus apps cada minuto, avisa en Slack o Discord cuando una se cae, muestra sus logs en vivo y publica una página de estado para cada una.
docker run -d --env-file .env -p 8090:8090 -v ./data:/app/data ghcr.io/wilovy09/heartbeat:latest
Casi siempre está en silencio. Cuando una app falla, avisa a quien debe, muestra por qué y mantiene informados a tus usuarios.
Un envío fallido se reintenta. Mientras una app siga caída, un recordatorio dice cuánto tiempo lleva. Si caen muchas a la vez, llega un solo aviso sobre tu propia red en lugar de una tormenta.
Intervalo y timeout propios, códigos esperados, headers, una palabra clave en la respuesta, TCP para bases de datos, vencimiento de SSL y bundles JS/CSS para SPAs.
stdout y stderr lado a lado, filtrados por nivel y módulo, con búsqueda y en vivo.
30 días de uptime diario y los avisos que publiques, sin URLs ni mensajes de error. Agrega un badge a un README o incrústalo en cualquier web.
Cada caída con su inicio, duración y causa, más el MTTR y el tiempo total caído.
Templates y assets van dentro del binario, los datos en archivos simples. Imágenes Docker para amd64 y arm64.
Los chequeos solo van a hosts permitidos por https, nunca siguen redirects y rechazan IPs privadas. Sesiones en el servidor y protección CSRF.
Español o inglés. Tema del sistema, oscuro, claro o uno propio.
Copia el archivo de ejemplo y define los hosts donde viven tus apps y cómo entran los admins.
curl -fsSL https://raw.githubusercontent.com/Wilovy09/heartbeat/main/.env.example -o .envCon Docker, o con el binario del release detrás de nginx.
docker run -d --name heartbeat --env-file .env -p 8090:8090 -v ./data:/app/data ghcr.io/wilovy09/heartbeat:latestÁbrelo, agrega la URL de health de cada app y apunta las alertas a tu canal.
open http://localhost:8090