Uptime Atomic, fork of Tinystatus (https://github.com/bderenzo/tinystatus)
Go to file
mischa 4b134b0049 change link in LICENSE 2023-10-21 13:25:15 +00:00
status added RSS feed, moved health processing to a function 2023-06-03 15:09:17 +00:00
.gitignore move config to uptimeatomic.conf 2023-06-03 16:04:03 +00:00
LICENSE change link in LICENSE 2023-10-21 13:25:15 +00:00
README.md change 1 ping to 3 2023-06-11 06:53:03 +00:00
checks.csv Initial commit 2023-05-30 13:04:46 +00:00
favicon.ico adding favicon.ico 2023-05-31 11:31:53 +00:00
incidents.txt add example incident 2023-10-21 13:01:51 +00:00
pastincidents.txt trim example pastincidents.txt 2023-10-21 13:02:14 +00:00
uptimeatomic add logic to move pastincidents to seperate page 2023-10-21 13:03:21 +00:00
uptimeatomic.conf-example add variable PASTHTMLFILE to uptimeatomic.conf, to move pastincidents to seperate page 2023-10-21 13:03:00 +00:00

README.md

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 and maintenance history (manual)
  • RSS feed for incidents and maintenance messages
  • Crontab friendly

Demo

An example site is available here

Setup

To install uptimeatomic:

  • Clone the repository and go to the created directory
  • Edit uptimeatomic.conf 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, Timeout (sec)
http, 200, Google Website, https://google.com,20
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.

The default timeout is set in uptimeatomic but can be set in checks.csv per host.

Incidents / Maintenance

The syntax of the incidents.txt and pastincidents.txt files is:

Datetime, Type, Description
202305231230, Incident, There was a service disruption on 2023-05-23 at 12:23 UTC
202306031700, Maintenance, Server maintenance is scheduled on 2023-07-13 at 00:00 UTC

Parameters

./uptimeatomic -c CHECKFILE -i INCIDENTSFILE -p PASTINCENTSFILE -o HTMLFILE -r RSSFILE
Default:
	-c = checks.csv (default)
	-i = incidents.txt (default)
	-p = pastincidents.txt (default)
	-o = index.html (default)
	-r = rss file (no default, optional)

For example:

./uptimeatomic -c services.csv -o status.html -r rss.xml