updog/README.md
2024-01-30 13:35:56 -06:00

1.8 KiB

Updog

What's updog?

Not much, you?

(it's a simple, extensible uptime monitor)

Warning

Extensions will be executed with no safety checks! Make sure an extension isn't malicious before adding it.

Docs

Docs are in the ./docs/ folder, but here's a quick overview on how to use this:

  1. Clone this repository - git clone --depth 1 https://git.askiiart.net/askiiart/updog
  2. Install your extensions in the appropriate folders: ./extensions/checkers, ./extensions/alerts (optional), and ./extensions/logging
  3. Create your services.json file, example below.
{
    "site": {
        "name": "A Website",
        "checker": "CheckerTemplate",
        "checker-args": {
            "url": "https://example.net",
            "port": 443,
            "lol": "CheckerTemplate ignores these options lol"
        },
        "rate": 60,
        "alerts": "AlertsTemplate",
        "alerts-args": {
            "url": "https://example.com/webhook-url-or-whatever-goes-here",
            "lol": "irrelevant, AlertsTemplate ignores these options lol"
        },
        "logging": "LoggingTemplate",
        "logging-args": {
            "lol": "irrelevant, LoggingTemplate ignores these options lol"
        }
    }
}

To-do

  • Add basic functionality
    • Read services.json file
    • Call the extensions
  • Add support for logging and alert extensions
  • Add maintenance windows (optionally recurring)
  • Add ability to set default extensions that can be overridden on a per-service basis
    • And groups (lower priority)
  • Add ability for checkers to have preferred alerts and logging extensions - will print a warning if the preferred extension(s) are not used
  • Add "keywords" to be replaced in the config (for current directory, service name, maybe some others)

All specs are still a work-in-progress, breaking changes are likely!