Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/xunleii/go-tinystatus
tinystatus but in Go
https://github.com/xunleii/go-tinystatus
Last synced: about 1 month ago
JSON representation
tinystatus but in Go
- Host: GitHub
- URL: https://github.com/xunleii/go-tinystatus
- Owner: xunleii
- License: mit
- Created: 2022-02-05T20:11:52.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2022-02-19T18:27:57.000Z (almost 3 years ago)
- Last Synced: 2024-11-03T08:35:12.088Z (3 months ago)
- Language: Go
- Size: 36.1 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# go-tinystatus
go-tinystatus reimplements [tinystatus](https://github.com/bderenzo/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.## Features
* `tinystatus` Parallel checks
* `go-tinystatus` Group several checks by category
* `tinystatus` HTTP, ping, port checks
* `tinystatus` HTTP expected status code (401, ...)
* `tinystatus` Minimal dependencies (curl, nc and coreutils)
* `tinystatus` Easy configuration and customisation
* `tinystatus` Tiny (~1kb) optimized result page
* `tinystatus` Incident history (manual)
* `go-tinystatus` Self-embedded web server
* `go-tinystatus` Automatic update of checks and incidents### Unavailable features
* `go-tinystatus` cannot handle `ping6` checks
* But it is possible to use `ping` with an IPv6 target _(cannot force IPv6)_.
* `go-tinystatus` cannot be setup using environment variable
* But it uses flags instead. See `--help` for more information.## Demo
Because `go-tinystatus` use the same HTML code that `tinystatus`, you can see a demo on
its `README.md` : [tinystatus](https://github.com/bderenzo/tinystatus)## Setup
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`## Configuration file
The syntax of `checks.csv` file is:
```
Command, Expected Code, Status Text, Host to check, Category
```Command can be:
* `http` - Check http status
* `ping` - Check ping status
* `port` or `tcp` - Check open port statusThere 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.