# Uptime Atomic uptimeatomic alerts when downtime happens and generates an html status page via shell script. ## Features * Parallel checks * HTTP, ping, port checks * HTTP expected status code (401, ...) * Minimal dependencies (curl, nc and coreutils) * Easy configuration and customisation * Tiny (~1kb) optimized result page * Incident history (manual) * Crontab friendly ## Demo An example site is available [here](https://ops.lowfive.nl/) ## Setup To install uptimeatomic: * Clone the repository and go to the created directory * Edit `uptimeatomic` variables to your liking * Edit the checks file `checks.csv` * To add incidents or maintenance, edit `incidents.txt` * To add past incidents or maintenance, edit `pastincidents.txt` * Generate status page `./uptimeatomic` * Serve the page with your favorite web server ## Configuration file The syntax of `checks.csv` file is: ``` Command, Expected Code, Status Text, Host to check http, 200, Google Website, https://google.com maint, 200, Google Drive Maintenance, https://drive.google.com ping, 0, Google ping, 8.8.8.8 port, 0, Google DNS, 8.8.8.8 53 ``` Command can be: * `http` - Check http status * `ping` - Check ping status * `port` - Check open port status * `maint` - Host is in maintance There are also `http4`, `http6`, `ping4`, `ping6`, `port4`, `port6` for IPv4 or IPv6 only check. Note: `port4` and `port6` require OpenBSD `nc` binary. ## Parameters ``` ./uptimeatomic -c CHECKFILE -i INCIDENTSFILE -o HTMLFILE Default: -c = checks.csv -i = incidents.txt -p = pastincidents.txt -o = index.html ```