Surveillez vos sites Web, présentez leur statut, y compris l'historique quotidien, et recevez une notification Slack chaque fois que l'état de votre site Web change. Utilisation de Cloudflare Workers , des déclencheurs CRON et du stockage KV . Consultez ma page de statut !
Vous aurez besoin d'un compte Cloudflare Workers avec
Préparez également les secrets suivants
Edit Cloudflare Workers
Vous pouvez soit déployer avec Cloudflare Deploy Button à l'aide des actions GitHub, soit déployer vous-même.
Cliquez sur le bouton et suivez les instructions, vous devriez vous retrouver avec un clone de ce référentiel
Accédez à votre nouveau référentiel GitHub > Paramètres > Secrets et ajoutez les secrets suivants :
- 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
Accédez aux paramètres d'actions dans votre référentiel et activez-les
Modifiez config.yaml pour ajuster la configuration et répertorier tous vos sites Web/API que vous souhaitez surveiller
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
Push vers la branche main
pour déclencher le déploiement
?
(facultatif) Accédez aux paramètres Cloudflare Workers et attribuez un domaine/itinéraire personnalisé
status-page.eidam.dev/*
(assurez-vous d'inclure /*
car le Worker sert également des fichiers statiques)(facultatif) Modifiez wrangler.toml pour ajuster les paramètres des travailleurs ou le calendrier du déclencheur CRON, surtout si vous bénéficiez du plan Workers Free.
Pour activer les notifications par télégramme, vous devrez suivre quelques étapes supplémentaires.
SECRET_TELEGRAM_API_TOKEN
dans votre référentiel github./start
)curl https://api.telegram.org/bot/getUpdates | jq '.result[0] .message .chat .id'
SECRET_TELEGRAM_CHAT_ID
Vous pouvez cloner le référentiel vous-même et utiliser Wrangler CLI pour développer/déployer une liste supplémentaire de choses dont vous devez vous occuper :
KV_STATUS_PAGE
à wrangler.tomlSECRET_SLACK_WEBHOOK_URL
SECRET_DISCORD_WEBHOOK_URL
Le plan Workers Free inclut une utilisation limitée du KV, mais le quota est suffisant pour les contrôles de 2 minutes uniquement.
crons = ["*/2 * * * *"]
) dans wrangler.toml Max 25 moniteurs à surveiller au cas où vous utiliseriez les notifications Slack , en raison de la limite de sous-requêtes que Cloudflare Worker peut effectuer (50).
Le plan est d’en prendre en charge jusqu’à 49 en envoyant une seule notification Slack par exécution planifiée.
Délai de réplication KV - Vous pouvez recevoir une notification Slack instantanément, mais cela peut prendre quelques secondes de plus pour voir le changement sur votre page d'état, car les déclencheurs Cron s'exécutent généralement sur des machines sous-utilisées aux heures calmes.
Délai initial (pas de données) – Il faut quelques minutes pour planifier et exécuter les déclencheurs CRON pour la première fois
WIP - Prise en charge des objets durables - Le produit de Cloudflare pour une coordination à faible latence et un stockage cohérent pour la plateforme Workers. Il existe un prototype fonctionnel, mais nous attendons au moins une version bêta ouverte.
Il existe également une version gérée de ce projet, actuellement en version bêta. N'hésitez pas à le consulter https://statusflare.com (https://twitter.com/statusflare_com).
Exigences
npm i -g yarn
)Installer Wrangler
npm i -g wrangler
Connectez-vous avec Wrangler à Cloudflare
wrangler login
Créez votre espace de noms KV dans cloudflare
On the workers page navigate to KV, and create a namespace
Mettez à jour votre wrangler.toml avec
kv-namespaces = [{binding="KV_STATUS_PAGE", id="", preview_id=""}]
Remarque : vous devrez peut-être remplacer kv-namespaces
par kv_namespaces
Installer des packages
yarn install
Créer du CSS
yarn run css
Courir
yarn run dev
Remarque : si les styles ne parviennent pas, essayez d'utiliser localhost:8787
au lieu de localhost:8080