go-tinystatus reimplements tinystatus - a shell script generating a html status page - in Golang.
Why ? I really love the concept on tinystatus; generates the smallest HTTP page as possible with minimal
dependencies. But, because it still requires some dependencies (nc
, curl
, coreutils
and ... an HTTP server), I
wanted to remove all remaining dependencies.
tinystatus
Parallel checksgo-tinystatus
Group several checks by categorytinystatus
HTTP, ping, port checkstinystatus
HTTP expected status code (401, ...)tinystatus
Minimal dependencies (curl, nc and coreutils)tinystatus
Easy configuration and customisationtinystatus
Tiny (~1kb) optimized result pagetinystatus
Incident history (manual)go-tinystatus
Self-embedded web servergo-tinystatus
Automatic update of checks and incidents
go-tinystatus
cannot handleping6
checks- But it is possible to use
ping
with an IPv6 target (cannot force IPv6).
- But it is possible to use
go-tinystatus
cannot be setup using environment variable- But it uses flags instead. See
--help
for more information.
- But it uses flags instead. See
Because go-tinystatus
use the same HTML code that tinystatus
, you can see a demo on
its README.md
: tinystatus
To install go-tinystatus:
- Clone the repository and go to the created directory
- Build the project with
go build .
- Edit the checks file
checks.csv
- To add incidents or maintenance, edit
incidents.txt
- Generate status page
./go-tinystatus > index.html
and serve the page with your favorite web server - Or run the embedded web server with
./go-tinystatus --daemon
The syntax of checks.csv
file is:
Command, Expected Code, Status Text, Host to check, Category
Command can be:
http
- Check http statusping
- Check ping statusport
ortcp
- Check open port status
There are also http4
, http6
, ping4
, ping6
, port4
, port6
for IPv4 or IPv6 only check.
Note: ping6
is not available on go-tinystatus
, but you can use ping
with an IPv6 target.