Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 159171bdfd |
@@ -0,0 +1,4 @@
|
||||
# These are supported funding model platforms
|
||||
|
||||
github: eidam
|
||||
ko_fi: eidam
|
||||
@@ -22,12 +22,13 @@ jobs:
|
||||
env:
|
||||
NODE_ENV: production
|
||||
- name: Publish
|
||||
uses: cloudflare/wrangler-action@v3
|
||||
uses: cloudflare/wrangler-action@1.3.0
|
||||
with:
|
||||
apiToken: ${{ secrets.CF_API_TOKEN }}
|
||||
preCommands: |
|
||||
wrangler kv:namespace create KV_STATUS_PAGE || true
|
||||
export KV_NAMESPACE_ID=$(npx @cloudflare/wrangler@1 kv:namespace list 2> >(tee stderr.log >&2) | head -1 | node -pe "JSON.parse(fs.readFileSync('/dev/stdin').toString()).find(kv => kv.title.includes('KV_STATUS_PAGE')).id")
|
||||
wrangler kv:namespace create KV_STATUS_PAGE
|
||||
apt-get update && apt-get install -y jq
|
||||
export KV_NAMESPACE_ID=$(wrangler kv:namespace list | jq -c 'map(select(.title | contains("KV_STATUS_PAGE")))' | jq -r ".[0].id")
|
||||
echo "[env.production]" >> wrangler.toml
|
||||
echo "kv_namespaces = [{binding=\"KV_STATUS_PAGE\", id=\"${KV_NAMESPACE_ID}\"}]" >> wrangler.toml
|
||||
[ -z "$SECRET_SLACK_WEBHOOK_URL" ] && echo "Secret SECRET_SLACK_WEBHOOK_URL not set, creating dummy one..." && SECRET_SLACK_WEBHOOK_URL="default-gh-action-secret" || true
|
||||
@@ -1,5 +1,4 @@
|
||||
# Cloudflare Worker - Status Page
|
||||
[](https://github.com/LAX18/cf-workers-status-page/actions/workflows/deploy.yml)
|
||||
|
||||
Monitor your websites, showcase status including daily history, and get Slack notification whenever your website status changes. Using **Cloudflare Workers**, **CRON Triggers,** and **KV storage**. Check [my status page](https://status-page.eidam.dev) out! 🚀
|
||||
|
||||
|
||||
+18
-91
@@ -1,7 +1,7 @@
|
||||
settings:
|
||||
title: 'Status Page'
|
||||
url: 'https://status-page.eidam.dev' # used for Slack messages
|
||||
logo: LAX18.jpeg # image in ./public/ folder
|
||||
logo: logo-192x192.png # image in ./public/ folder
|
||||
daysInHistogram: 90 # number of days you want to display in histogram
|
||||
collectResponseTimes: true # collects avg response times from CRON locations
|
||||
|
||||
@@ -15,98 +15,25 @@ settings:
|
||||
dayInHistogramNotOperational: ' incident(s)' # xx incident(s) recorded
|
||||
|
||||
monitors:
|
||||
- id: nicholaspease.com
|
||||
name: Portfolio
|
||||
url: 'https://www.nicholaspease.com/'
|
||||
- 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 # allows the title to be a link, default=true
|
||||
|
||||
- id: www-cloudflare-com
|
||||
name: www.cloudflare.com
|
||||
description: 'Built for anything connected to the Internet.'
|
||||
url: 'https://www.cloudflare.com'
|
||||
method: GET
|
||||
expectStatus: 200
|
||||
linkable: true # allows the title to be a link, default=true
|
||||
|
||||
- id: server1.nicholaspease.com
|
||||
name: Server1 Homepage
|
||||
url: 'https://server1.nicholaspease.com/'
|
||||
- id: blog-cloudflare-com
|
||||
name: The Cloudflare Blog
|
||||
url: 'https://blog.cloudflare.com/'
|
||||
method: GET
|
||||
expectStatus: 200
|
||||
|
||||
- id: plex.nicholaspease.com
|
||||
name: Plex
|
||||
url: 'https://plex.nicholaspease.com/'
|
||||
method: GET
|
||||
expectStatus: 401
|
||||
|
||||
- id: radarr.nicholaspease.com/
|
||||
name: Radarr
|
||||
url: 'https://radarr.nicholaspease.com/'
|
||||
method: GET
|
||||
expectStatus: 401
|
||||
|
||||
- id: sonarr.nicholaspease.com
|
||||
name: Sonarr
|
||||
url: 'https://sonarr.nicholaspease.com/'
|
||||
method: GET
|
||||
expectStatus: 200
|
||||
|
||||
- id: bittorrent.nicholaspease.com
|
||||
name: qBittorrent
|
||||
url: 'https://bittorrent.nicholaspease.com/'
|
||||
method: GET
|
||||
expectStatus: 200
|
||||
|
||||
- id: prowlarr.nicholaspease.com
|
||||
name: Prowlarr
|
||||
url: 'https://prowlarr.nicholaspease.com/'
|
||||
method: GET
|
||||
expectStatus: 401
|
||||
|
||||
- id: bazarr.nicholaspease.com
|
||||
name: Bazarr
|
||||
url: 'https://bazarr.nicholaspease.com/'
|
||||
method: GET
|
||||
expectStatus: 200
|
||||
|
||||
- id: petio.nicholaspease.com
|
||||
name: Petio
|
||||
url: 'https://petio.nicholaspease.com/'
|
||||
method: GET
|
||||
expectStatus: 200
|
||||
|
||||
- id: tautulli.nicholaspease.com
|
||||
name: Tautulli
|
||||
url: 'https://tautulli.nicholaspease.com/'
|
||||
method: GET
|
||||
expectStatus: 303
|
||||
|
||||
- id: gitea.nicholaspease.com
|
||||
name: Gitea
|
||||
url: 'https://gitea.nicholaspease.com/explore/repos'
|
||||
method: GET
|
||||
expectStatus: 200
|
||||
|
||||
- id: coder.nicholaspease.com
|
||||
name: Coder
|
||||
url: 'https://coder.nicholaspease.com/'
|
||||
method: GET
|
||||
expectStatus: 200
|
||||
|
||||
- id: drone.nicholaspease.com
|
||||
name: Drone CI
|
||||
url: 'https://drone.nicholaspease.com/'
|
||||
method: GET
|
||||
expectStatus: 303
|
||||
|
||||
- id: waakaapi.nicholaspease.com
|
||||
name: WakaAPI
|
||||
url: 'https://wakaapi.nicholaspease.com/'
|
||||
method: GET
|
||||
expectStatus: 200
|
||||
|
||||
- id: proxmox.nicholaspease.com
|
||||
name: Proxmox
|
||||
url: 'https://proxmox.nicholaspease.com/'
|
||||
method: GET
|
||||
expectStatus: 302
|
||||
|
||||
- id: netdata.nicholaspease.com
|
||||
name: Netdata
|
||||
url: 'https://netdata.nicholaspease.com'
|
||||
method: GET
|
||||
expectStatus: 302
|
||||
+1
-1
@@ -22,7 +22,7 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"autoprefixer": "^10.0.2",
|
||||
"node-fetch": "^2.6.1",
|
||||
"node-fetch": "^2.6.7",
|
||||
"postcss": "^8.2.13",
|
||||
"postcss-cli": "^8.3.0",
|
||||
"prettier": "^2.2.0",
|
||||
|
||||
+20
-1
@@ -88,7 +88,26 @@ export default function Index({ config, kvMonitors, kvMonitorsLastUpdate }) {
|
||||
/>
|
||||
)
|
||||
})}
|
||||
|
||||
<div className="flex flex-row justify-between mt-4 text-sm">
|
||||
<div>
|
||||
Powered by{' '}
|
||||
<a href="https://workers.cloudflare.com/" target="_blank">
|
||||
Cloudflare Workers{' '}
|
||||
</a>
|
||||
&{' '}
|
||||
<a href="https://flareact.com/" target="_blank">
|
||||
Flareact{' '}
|
||||
</a>
|
||||
</div>
|
||||
<div>
|
||||
<a
|
||||
href="https://github.com/eidam/cf-workers-status-page"
|
||||
target="_blank"
|
||||
>
|
||||
Get Your Status Page
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 1.4 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 10 KiB |
+1
-1
@@ -6,7 +6,7 @@ webpack_config = "node_modules/flareact/webpack"
|
||||
compatibility_date = "2021-07-23"
|
||||
|
||||
[triggers]
|
||||
crons = ["*/5 * * * *"]
|
||||
crons = ["* * * * *"]
|
||||
|
||||
[site]
|
||||
bucket = "out"
|
||||
|
||||
@@ -4659,10 +4659,12 @@ node-emoji@^1.8.1:
|
||||
dependencies:
|
||||
lodash.toarray "^4.4.0"
|
||||
|
||||
node-fetch@^2.6.1:
|
||||
version "2.6.1"
|
||||
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052"
|
||||
integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==
|
||||
node-fetch@^2.6.7:
|
||||
version "2.6.7"
|
||||
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad"
|
||||
integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==
|
||||
dependencies:
|
||||
whatwg-url "^5.0.0"
|
||||
|
||||
node-forge@^0.10.0:
|
||||
version "0.10.0"
|
||||
@@ -7125,6 +7127,11 @@ toidentifier@1.0.0:
|
||||
resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553"
|
||||
integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==
|
||||
|
||||
tr46@~0.0.3:
|
||||
version "0.0.3"
|
||||
resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
|
||||
integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==
|
||||
|
||||
tree-kill@^1.2.2:
|
||||
version "1.2.2"
|
||||
resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc"
|
||||
@@ -7368,6 +7375,11 @@ wbuf@^1.1.0, wbuf@^1.7.3:
|
||||
dependencies:
|
||||
minimalistic-assert "^1.0.0"
|
||||
|
||||
webidl-conversions@^3.0.0:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"
|
||||
integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==
|
||||
|
||||
webpack-cli@^3.3.12:
|
||||
version "3.3.12"
|
||||
resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.12.tgz#94e9ada081453cd0aa609c99e500012fd3ad2d4a"
|
||||
@@ -7509,6 +7521,14 @@ websocket-extensions@>=0.1.1:
|
||||
resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42"
|
||||
integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==
|
||||
|
||||
whatwg-url@^5.0.0:
|
||||
version "5.0.0"
|
||||
resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d"
|
||||
integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==
|
||||
dependencies:
|
||||
tr46 "~0.0.3"
|
||||
webidl-conversions "^3.0.0"
|
||||
|
||||
which-module@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
|
||||
|
||||
Reference in New Issue
Block a user