Hi there π,
This is a small presentation of one of my recent projects : Downtime, an uptime/response time monitor.
It generates SVG badges that you can use anywhere to display whether your server is up or not :
The real badges are actually transparents, rendering nice on both light/dark mode
π¦ How to setup (< 2min) ?
It is based on the Keep It Simple Stupid philosophy, so it's super-straightforward :
0: Fork the repository
1: Edit the config.yml
to add your hosts
The config.yml
is just a list of domain/server/ip/port you want to monitor :
hosts:
# Check if google.com is up
- name: google.com
title: Google
# Check if a given url is up
- name: github.com/lowlighter/downtime
title: Downtime repository
# Test an ip/domain with port using ncat (any protocol)
- name: "8.8.8.8"
title: Google DNS
port: 53
use: ncat
2: (optional) You can also enable GitHub pages and get a webpage with all your servers status !
βοΈ How does it works ?
A GitHub action workflow is ran each 5 minutes, testing connections with the hosts you specified in config.yml
. It can either use curl
(for HTTP/HTTPS) or ncat
/telnet
(any protocol). It records if target is reachable and its response time.
Since it use the default GITHUB_TOKEN
to update connection results, there is no need to create an additional personal token, keeping your account safe.
You can also set the repository private, keeping only the GitHub pages and the badges to embed elsewhere.
β¨ Inspiration
This has been inspired a lot by upptime, but I didn't liked the fact you needed a token with a lot of permissions (especially since the workflow update itself so you need to put a lot of trust in maintainers) and that you couldn't get a status badge to tell whether your server is up or not.
Thanks for reading !
If you like generated SVG images, you may also checkout GitHub metrics !
Top comments (0)