Supervise sus sitios web, muestre el estado, incluido el historial diario, y reciba notificaciones de Slack cada vez que cambie el estado de su sitio web. Uso de Cloudflare Workers , CRON Triggers y almacenamiento KV . ¡Mira mi página de estado!
Necesitará una cuenta de trabajadores de Cloudflare con
Además, prepara los siguientes secretos.
Edit Cloudflare Workers
Puede implementar con el botón de implementación de Cloudflare usando GitHub Actions o implementarlo usted mismo.
Haga clic en el botón y siga las instrucciones; debería terminar con un clon de este repositorio.
Navegue a su nuevo repositorio de GitHub > Configuración > Secretos y agregue los siguientes secretos:
- Name : CF_API_TOKEN (should be added automatically)
- Name : CF_ACCOUNT_ID (should be added automatically)
- Name : SECRET_SLACK_WEBHOOK_URL (optional)
- Value : your-slack-webhook-url
- Name : SECRET_DISCORD_WEBHOOK_URL (optional)
- Value : your-discord-webhook-url
Navegue a la configuración de Acciones en su repositorio y habilítelas
Edite config.yaml para ajustar la configuración y enumerar todos los sitios web/API que desea monitorear
settings :
title : ' Status Page '
url : ' https://status-page.eidam.dev ' # used for Slack & Discord messages
logo : logo-192x192.png # image in ./public/ folder
daysInHistogram : 90 # number of days you want to display in histogram
collectResponseTimes : false # experimental feature, enable only for <5 monitors or on paid plans
# configurable texts across the status page
allmonitorsOperational : ' All Systems Operational '
notAllmonitorsOperational : ' Not All Systems Operational '
monitorLabelOperational : ' Operational '
monitorLabelNotOperational : ' Not Operational '
monitorLabelNoData : ' No data '
dayInHistogramNoData : ' No data '
dayInHistogramOperational : ' All good '
dayInHistogramNotOperational : ' Some checks failed '
# list of monitors
monitors :
- id : workers-cloudflare-com # unique identifier
name : workers.cloudflare.com
description : ' You write code. They handle the rest. ' # default=empty
url : ' https://workers.cloudflare.com/ ' # URL to fetch
method : GET # default=GET
expectStatus : 200 # operational status, default=200
followRedirect : false # should fetch follow redirects, default=false
linkable : false # should the titles be links to the service, default=true
Empuje a la rama main
para activar la implementación
?
(opcional) Vaya a la configuración de Cloudflare Workers y asigne un dominio/ruta personalizada
status-page.eidam.dev/*
(asegúrese de incluir /*
ya que el trabajador también sirve archivos estáticos)(opcional) Edite wrangler.toml para ajustar la configuración del trabajador o el cronograma de activación CRON, especialmente si tiene el plan Workers Free.
Para habilitar las notificaciones de Telegram, deberá realizar algunos pasos adicionales.
SECRET_TELEGRAM_API_TOKEN
en su repositorio de github./start
)curl https://api.telegram.org/bot/getUpdates | jq '.result[0] .message .chat .id'
SECRET_TELEGRAM_CHAT_ID
Puede clonar el repositorio usted mismo y usar Wrangler CLI para desarrollar/implementar una lista adicional de cosas de las que debe ocuparse:
KV_STATUS_PAGE
a wrangler.tomlSECRET_SLACK_WEBHOOK_URL
SECRET_DISCORD_WEBHOOK_URL
El plan Workers Free incluye el uso limitado de KV, pero la cuota es suficiente solo para comprobaciones de 2 minutos
crons = ["*/2 * * * *"]
) en wrangler.toml Máximo de 25 monitores para mirar en caso de que esté utilizando notificaciones de Slack , debido al límite de solicitudes secundarias que Cloudflare Worker puede realizar (50).
El plan es admitir hasta 49 enviando solo una notificación de Slack por ejecución programada.
Retraso de replicación de KV : es posible que reciba una notificación de Slack al instante, sin embargo, puede tomar un par de segundos más ver el cambio en su página de estado, ya que los activadores Cron generalmente se ejecutan en máquinas infrautilizadas en horas de silencio.
Retraso inicial (sin datos) : se necesitan un par de minutos para programar y ejecutar activadores CRON por primera vez.
WIP: soporte para objetos duraderos: producto de Cloudflare para coordinación de baja latencia y almacenamiento consistente para la plataforma Workers. Existe un prototipo funcional, sin embargo, estamos esperando al menos una versión beta abierta.
También existe una versión gestionada de este proyecto, actualmente en fase beta. No dudes en consultarlo https://statusflare.com (https://twitter.com/statusflare_com).
Requisitos
npm i -g yarn
)Instalar Wrangler
npm i -g wrangler
Iniciar sesión con Wrangler en Cloudflare
wrangler login
Crea tu espacio de nombres KV en Cloudflare
On the workers page navigate to KV, and create a namespace
Actualice su wrangler.toml con
kv-namespaces = [{binding="KV_STATUS_PAGE", id="", preview_id=""}]
Nota: es posible que necesites cambiar kv-namespaces
a kv_namespaces
Instalar paquetes
yarn install
Crear CSS
yarn run css
Correr
yarn run dev
Nota: Si los estilos no aparecen, intente usar localhost:8787
en lugar de localhost:8080