3 uptimeatomic alerts when downtime happens and generates an html status page via shell script.
8 * HTTP, ping, port checks
9 * HTTP expected status code (401, ...)
10 * Minimal dependencies (curl, nc and coreutils)
11 * Easy configuration and customisation
12 * Tiny (~1kb) optimized result page
13 * Incident and maintenance history (manual)
14 * RSS feed for incidents and maintenance messages
19 An example site is available [here](https://ops.lowfive.nl/)
23 To install uptimeatomic:
25 * Clone the repository and go to the created directory
26 * Edit `uptimeatomic.conf` variables to your liking
27 * Edit the checks file `checks.csv`
28 * To add incidents or maintenance, edit `incidents.txt`
29 * To add past incidents or maintenance, edit `pastincidents.txt`
30 * Generate status page `./uptimeatomic`
31 * Serve the page with your favorite web server
35 The syntax of `checks.csv` file is:
38 Command, Expected Code, Status Text, Host to check, Timeout (sec)
39 http, 200, Google Website, https://google.com,20
40 maint, 200, Google Drive Maintenance, https://drive.google.com
41 ping, 0, Google ping, 8.8.8.8
42 port, 0, Google DNS, 8.8.8.8 53
46 * `http` - Check http status
47 * `ping` - Check ping status
48 * `port` - Check open port status
49 * `maint` - Host is in maintance
51 There are also `http4`, `http6`, `ping4`, `ping6`, `port4`, `port6` for IPv4 or IPv6 only check.
52 Note: `port4` and `port6` require OpenBSD `nc` binary.
54 The default timeout is set in `uptimeatomic` but can be set in `checks.csv` per host.
56 ## Incidents / Maintenance
59 The syntax of the `incidents.txt` and `pastincidents.txt` files is:
62 Datetime, Type, Description
63 202305231230, Incident, There was a service disruption on 2023-05-23 at 12:23 UTC
64 202306031700, Maintenance, Server maintenance is scheduled on 2023-07-13 at 00:00 UTC
70 ./uptimeatomic -c CHECKFILE -i INCIDENTSFILE -p PASTINCENTSFILE -o HTMLFILE -r RSSFILE
72 -c = checks.csv (default)
73 -i = incidents.txt (default)
74 -p = pastincidents.txt (default)
75 -o = index.html (default)
76 -r = rss file (no default, optional)
82 ./uptimeatomic -c services.csv -o status.html -r rss.xml