웹사이트를 모니터링하고, 일일 기록을 포함한 상태를 보여주고, 웹사이트 상태가 변경될 때마다 Slack 알림을 받으세요. Cloudflare 작업자 , CRON 트리거 및 KV 저장소 사용. 내 상태 페이지를 확인해 보세요!
Cloudflare Workers 계정이 필요합니다.
또한, 다음 비밀을 준비하세요
Edit Cloudflare Workers
권한이 있는 Cloudflare API 토큰GitHub Actions를 사용하여 Cloudflare 배포 버튼 으로 배포하거나 직접 배포할 수 있습니다.
버튼을 클릭하고 지침을 따르면 이 저장소의 복제본이 생성됩니다.
새 GitHub 저장소 > 설정 > 비밀 로 이동하여 다음 비밀을 추가합니다.
- 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
저장소의 작업 설정으로 이동하여 활성화합니다.
config.yaml을 편집하여 구성을 조정하고 모니터링하려는 모든 웹사이트/API를 나열하세요.
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
배포를 트리거하려면 main
분기로 푸시하세요.
?
(선택 사항) Cloudflare Workers 설정으로 이동하여 사용자 지정 도메인/경로를 할당하세요.
status-page.eidam.dev/*
*(작업자가 정적 파일도 제공하므로 /*
포함해야 합니다)(선택 사항) 특히 Workers Free 플랜을 사용하는 경우 wrangler.toml을 편집하여 작업자 설정 또는 CRON 트리거 일정을 조정합니다.
텔레그램 알림을 활성화하려면 몇 가지 추가 단계를 수행해야 합니다.
SECRET_TELEGRAM_API_TOKEN
비밀 콘텐츠로 설정하세요./start
이상의 내용)curl https://api.telegram.org/bot/getUpdates | jq '.result[0] .message .chat .id'
SECRET_TELEGRAM_CHAT_ID
비밀 변수에 검색된 채팅 ID를 설정하세요.저장소를 직접 복제하고 Wrangler CLI를 사용하여 처리해야 할 추가 항목 목록을 개발/배포할 수 있습니다.
KV_STATUS_PAGE
바인딩을 추가합니다.SECRET_SLACK_WEBHOOK_URL
SECRET_DISCORD_WEBHOOK_URL
Workers Free 플랜에는 제한된 KV 사용량이 포함되어 있지만 할당량은 2분 확인에만 충분합니다.
crons = ["*/2 * * * *"]
)으로 변경합니다. Cloudflare Worker가 만들 수 있는 하위 요청 제한(50개)으로 인해 Slack 알림을 사용하는 경우 감시할 모니터는 최대 25개입니다 .
계획은 예약된 실행당 하나의 Slack 알림만 전송하여 최대 49개를 지원하는 것입니다.
KV 복제 지연 - Slack 알림을 즉시 받을 수 있지만 Cron 트리거는 일반적으로 활용도가 낮은 조용한 시간 컴퓨터에서 실행되므로 상태 페이지에서 변경 사항을 확인하는 데 몇 초가 더 걸릴 수 있습니다.
초기 지연(데이터 없음) - 처음으로 CRON 트리거를 예약하고 실행하는 데 몇 분 정도 걸립니다.
WIP - 지속성 개체 지원 - 작업자 플랫폼을 위한 짧은 대기 시간 조정 및 일관된 스토리지를 위한 Cloudflare 제품입니다. 작동하는 프로토타입이 있지만 최소한 오픈 베타를 기다리고 있습니다.
현재 베타 버전인 이 프로젝트의 관리 버전도 있습니다. https://statusflare.com(https://twitter.com/statusflare_com)에서 확인해 보세요.
요구사항
npm i -g yarn
)랭글러 설치
npm i -g wrangler
Wrangler를 사용하여 Cloudflare에 로그인
wrangler login
Cloudflare에서 KV 네임스페이스를 생성하세요
On the workers page navigate to KV, and create a namespace
wrangler.toml을 다음으로 업데이트하세요.
kv-namespaces = [{binding="KV_STATUS_PAGE", id="", preview_id=""}]
참고: kv-namespaces
kv_namespaces
로 변경해야 할 수도 있습니다.
패키지 설치
yarn install
CSS 만들기
yarn run css
달리다
yarn run dev
참고: 스타일이 적용되지 않으면 localhost:8787
대신 localhost:8080
8787을 사용해 보십시오.