Pantau situs web Anda, tampilkan status termasuk riwayat harian, dan dapatkan pemberitahuan Slack setiap kali status situs web Anda berubah. Menggunakan Cloudflare Worker , Pemicu CRON, dan penyimpanan KV . Periksa halaman status saya!
Anda memerlukan akun Cloudflare Workers
Siapkan juga rahasia berikut ini
Edit Cloudflare Workers
Anda dapat menerapkan dengan Cloudflare Deploy Button menggunakan GitHub Actions atau menerapkannya sendiri.
Klik tombol dan ikuti instruksinya, Anda akan mendapatkan tiruan dari repositori ini
Navigasikan ke repositori GitHub baru Anda > Pengaturan > Rahasia dan tambahkan rahasia berikut:
- 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
Navigasikan ke pengaturan Tindakan di repositori Anda dan aktifkan
Edit config.yaml untuk menyesuaikan konfigurasi dan mencantumkan semua situs web/API yang ingin Anda pantau
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
Dorong ke cabang main
untuk memicu penerapan
?
(opsional) Buka pengaturan Cloudflare Workers dan tetapkan domain/rute khusus
status-page.eidam.dev/*
(pastikan Anda menyertakan /*
karena Pekerja juga menyajikan file statis)(opsional) Edit wrangler.toml untuk menyesuaikan pengaturan Pekerja atau jadwal Pemicu CRON, terutama jika Anda menggunakan paket Pekerja Gratis
Untuk mengaktifkan notifikasi telegram, Anda perlu melakukan beberapa langkah tambahan.
SECRET_TELEGRAM_API_TOKEN
di repositori github Anda./start
)curl https://api.telegram.org/bot/getUpdates | jq '.result[0] .message .chat .id'
SECRET_TELEGRAM_CHAT_ID
Anda dapat mengkloning repositori sendiri dan menggunakan Wrangler CLI untuk mengembangkan/menerapkan, daftar tambahan hal-hal yang perlu Anda tangani:
KV_STATUS_PAGE
ke wrangler.tomlSECRET_SLACK_WEBHOOK_URL
SECRET_DISCORD_WEBHOOK_URL
Paket Bebas Pekerja mencakup penggunaan KV terbatas, namun kuota cukup untuk pengecekan 2 menit saja
crons = ["*/2 * * * *"]
) di wrangler.toml Maksimum 25 monitor yang harus diperhatikan jika Anda menggunakan notifikasi Slack , karena batas subpermintaan yang dapat dibuat oleh Cloudflare Worker (50).
Rencananya adalah untuk mendukung hingga 49 dengan hanya mengirimkan satu notifikasi Slack per jadwal pengoperasian.
Keterlambatan replikasi KV - Anda mungkin mendapatkan notifikasi Slack secara instan, namun mungkin diperlukan beberapa detik lagi untuk melihat perubahan pada halaman status Anda karena Cron Triggers biasanya berjalan pada mesin jam tenang yang kurang dimanfaatkan.
Penundaan awal (tidak ada data) - Diperlukan beberapa menit untuk menjadwalkan dan menjalankan Pemicu CRON untuk pertama kalinya
WIP - Dukungan untuk Objek Tahan Lama - Produk Cloudflare untuk koordinasi latensi rendah dan penyimpanan yang konsisten untuk platform Pekerja. Ada prototipe yang berfungsi, namun kami menunggu setidaknya beta terbuka.
Ada juga versi terkelola dari proyek ini, yang saat ini masih dalam versi beta. Silakan memeriksanya https://statusflare.com (https://twitter.com/statusflare_com).
Persyaratan
npm i -g yarn
)Instal penengkar
npm i -g wrangler
Masuk Dengan Wrangler ke Cloudflare
wrangler login
Buat namespace KV Anda di cloudflare
On the workers page navigate to KV, and create a namespace
Perbarui wrangler.toml Anda dengan
kv-namespaces = [{binding="KV_STATUS_PAGE", id="", preview_id=""}]
Catatan: Anda mungkin perlu mengubah kv-namespaces
menjadi kv_namespaces
Instal paket
yarn install
Buat CSS
yarn run css
Berlari
yarn run dev
Catatan: Jika gaya tidak muncul, coba gunakan localhost:8787
daripada localhost:8080