Upkeep is a monitoring agent I built for my homelab, but it could be used to monitor just about anything with an IP address
or hostname
.
UpKeep is still in beta
so no releases are available at this time. If you'd still like to take it for a spin:
- Make sure you have Node.js installed
- Set your
working directory
to where you wish to install UpKeep - Run
npm install https://github.com/funkybunch/UpKeep.git
- Change your
working directory
to UpKeep - Setup configuration files (for a quickstart, you can just rename
config/config-sample.json
toconfig/config.json
and.env-sample
to.env
) - Run
npm start
- To access the web UI navigate to http://localhost:3000
This was a weekend hack project so I'm sure I'll be adding more to this as time goes on.
- Easy setup using a JSON config file.
- CRON-based task scheduling.
- Integrates with Signal-CLI to notify you via Signal if anything goes down.
- Available as a Docker image [Planned, not finished]
UpKeep uses Internet Control Message Protocol (https://en.wikipedia.org/wiki/Internet_Control_Message_Protocol) to detect if a service is responding at a specific hostname
or Internet Protocol (IP
) address. If you're here reading this, you're probably familiar with this by a simpler name, Ping. Your services must be 'pingable' for this utility to work.
This is not some super advanced monitoring tool that checks to make sure your services are responding correctly, but simply checks to see if the service is alive.
Configuration is done via a simple JSON file (example included). This file is loaded when the application is started and checked periodically for changes. Changes will be loaded automatically when detected. If a ping fails, two more attempts will be made before marking the service as down (3 attempts total). UpKeep keeps track of each service and its status. Upon a change in the status, the event will be logged and if you are using the Signal Integration a notification will be sent. To avoid spamming you, a log entry and notification are only made in 2 cases:
- When a service goes down
- When a service comes back up
If you use Signal, you can have UpKeep message you via the Signal App when something goes wrong. UpKeep can interface with Signal-CLI out of the box.
Full details on how to set this up on the wiki.
This application uses Winston for logging. The log files are stored in {App Directory}/logs/ and are in JSON format. You can configure logging with Winston in the app.js
file to suit your needs.
Please keep in mind that excess logging may be in place while this project is in development.
This software is open source under the MIT License.