ตรวจสอบเว็บไซต์ของคุณ สถานะการแสดง รวมถึงประวัติรายวัน และรับการแจ้งเตือน Slack ทุกครั้งที่สถานะเว็บไซต์ของคุณเปลี่ยนแปลง การใช้ Cloudflare Workers , ทริกเกอร์ CRON และ ที่เก็บข้อมูล KV ตรวจสอบหน้าสถานะของฉัน!
คุณจะต้องมีบัญชี Cloudflare Workers ด้วย
เตรียมความลับต่อไปนี้ด้วย
Edit Cloudflare Workers
คุณสามารถปรับใช้ด้วย ปุ่ม Cloudflare Deploy โดยใช้ GitHub Actions หรือปรับใช้ด้วยตัวเอง
คลิกปุ่มและทำตามคำแนะนำ คุณจะพบกับโคลนของที่เก็บนี้
ไปที่ ที่เก็บ 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/*
(ตรวจสอบให้แน่ใจว่าคุณรวม /*
เนื่องจาก Worker ให้บริการไฟล์คงที่ด้วย)(ไม่บังคับ) แก้ไข wrangler.toml เพื่อปรับการตั้งค่าผู้ปฏิบัติงานหรือกำหนดเวลาทริกเกอร์ CRON โดยเฉพาะอย่างยิ่งหากคุณใช้แผน Workers Free
หากต้องการเปิดใช้งานการแจ้งเตือนทางโทรเลข คุณจะต้องดำเนินการขั้นตอนเพิ่มเติมสองสามขั้นตอน
SECRET_TELEGRAM_API_TOKEN
ในที่เก็บ GitHub ของคุณ/start
)curl https://api.telegram.org/bot/getUpdates | jq '.result[0] .message .chat .id'
SECRET_TELEGRAM_CHAT_ID
คุณสามารถโคลนพื้นที่เก็บข้อมูลได้ด้วยตัวเอง และใช้ Wrangler CLI เพื่อพัฒนา/ปรับใช้ รายการเพิ่มเติมที่คุณต้องดูแล:
KV_STATUS_PAGE
เข้ากับ wrangler.tomlSECRET_SLACK_WEBHOOK_URL
SECRET_DISCORD_WEBHOOK_URL
แผน Workers Free มีการใช้งาน KV ที่จำกัด แต่โควต้าเพียงพอสำหรับการตรวจสอบ 2 นาทีเท่านั้น
crons = ["*/2 * * * *"]
) ใน wrangler.toml สูงสุด 25 จอภาพเพื่อรับชมในกรณีที่คุณใช้การแจ้งเตือน Slack เนื่องจากข้อจำกัดของคำขอย่อยที่ Cloudflare Worker สามารถทำได้ (50)
แผนนี้รองรับได้มากถึง 49 รายการโดยการส่งการแจ้งเตือน Slack เพียงครั้งเดียวต่อการเรียกใช้ตามกำหนดเวลา
ความล่าช้าในการจำลอง KV - คุณอาจได้รับการแจ้งเตือน Slack ทันที อย่างไรก็ตาม อาจต้องใช้เวลาสองสามวินาทีเพื่อดูการเปลี่ยนแปลงบนหน้าสถานะของคุณ เนื่องจาก Cron Triggers มักจะทำงานบนเครื่องในช่วงเวลาที่เงียบสงบซึ่งใช้งานน้อยเกินไป
ความล่าช้าเริ่มต้น (ไม่มีข้อมูล) - ใช้เวลาสองสามนาทีในการกำหนดเวลาและเรียกใช้ทริกเกอร์ CRON เป็นครั้งแรก
WIP - รองรับ Durability Objects - ผลิตภัณฑ์ของ Cloudflare เพื่อการประสานงานที่มีเวลาแฝงต่ำและพื้นที่จัดเก็บข้อมูลที่สม่ำเสมอสำหรับแพลตฟอร์ม Workers มีต้นแบบที่ใช้งานได้ แต่เรากำลังรอเวอร์ชันเบต้าแบบเปิดเป็นอย่างน้อย
นอกจากนี้ยังมีเวอร์ชันที่ได้รับการจัดการของโปรเจ็กต์นี้ ซึ่งขณะนี้อยู่ในรุ่นเบต้า อย่าลังเลที่จะตรวจสอบ https://statusflare.com (https://twitter.com/statusflare_com)
ความต้องการ
npm i -g yarn
)ติดตั้งแรงเลอร์
npm i -g wrangler
เข้าสู่ระบบด้วย Wrangler สู่ Cloudflare
wrangler login
สร้างเนมสเปซ KV ของคุณใน cloudflare
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