A Status Page built on Cloudflare Worker and Pages (Vue + Tailwind).
Inspired by Cachet, Statusfy, and Atlassian Statuspage.
- Create a Pages project with Vue preset.
- Create a KV and Worker.
- Create an Environment Variable in the worker for
AUTH_SECRET
with a<secret>
as value for authentication. - Copy
worker/wrangler.toml.sample
toworker/wrangler.toml
and add youraccount_id
,api_token
, andkv_namespaces
. wrangler build
andwrangler publish
POST (header: Authorization: <secret>) /system
[
{
"name": "Website",
"level": 1
},
{
"name": "API",
"level": 3
},
{
"name": "CDN",
"level": 4
}
]
POST (header: Authorization: <secret>) /incident/new
{
"name": "Incident Title",
"open": true,
"maintenance": false,
"level": 5,
"systems": ["api", "website"],
"activities": [
{
"timestamp": "2021-10-28T14:59:02.999Z",
"status": "Investigating",
"message": "Something."
}
]
}
POST (header: Authorization: <secret>) /incident/<YYYY-MM>/<id>
{
"name": "New Incident Title",
"open": false,
"maintenance": false,
"level": 5,
"systems": ["api", "website"],
"activities": [
{
"timestamp": "2021-10-28T14:59:02.999Z",
"status": "Investigating",
"message": "Something."
},
{
"timestamp": "2021-10-28T15:22:13.999Z",
"status": "Resolved",
"message": "Fixed it."
}
],
"date": "2021-10-30",
"timestamp": 1635619333,
"id": "kve5iqpyijjcl8qj1g"
}
Contributions are welcome 😄