Uptime Atomic, fork of Tinystatus (https://github.com/bderenzo/tinystatus)
4b134b0049 | ||
---|---|---|
status | ||
.gitignore | ||
LICENSE | ||
README.md | ||
checks.csv | ||
favicon.ico | ||
incidents.txt | ||
pastincidents.txt | ||
uptimeatomic | ||
uptimeatomic.conf-example |
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 statusping
- Check ping statusport
- Check open port statusmaint
- 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