uptimeatomic/README.md

1.6 KiB

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

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