Argus
Argus will query websites at a user defined interval for new software releases and then trigger Gotify/Slack notification(s) and/or WebHook(s) when one has been found. For example, you could set it to monitor the Argus repo (release-argus/argus). This will query the GitHub API and track the "tag_name" variable. When this variable changes from what it was on a previous query, a GitHub-style WebHook could be sent that triggers something (like AWX) to update Argus on your server.
Table of Contents
Demo
A demo of Argus can be seen on our website here.
Command-line arguments
$ argus -h
Usage of /usr/local/bin/argus:
-config.check
Print the fully-parsed config.
-config.file string
Argus configuration file path. (default "config.yml")
-log.level string
ERROR, WARN, INFO, VERBOSE or DEBUG (default "INFO")
-log.timestamps
Enable timestamps in CLI output.
-test.gotify string
Put the name of the Gotify service to send a test message.
-test.service string
Put the name of the Service to test the version query.
-test.slack string
Put the name of the Slack service to send a test message.
-web.cert-file string
HTTPS certificate file path.
-web.listen-host string
IP address to listen on for UI, API, and telemetry. (default "0.0.0.0")
-web.listen-port string
Port to listen on for UI, API, and telemetry. (default "8080")
-web.pkey-file string
HTTPS private key file path.
-web.route-prefix string
Prefix for web endpoints (default "/")
Building from source
Prereqs
The backend of Argus is built with Go and the frontend with React. The React frontend is built and then embedded into the Go binary so that those web files can be served.
Go changes
To see the changes you've made by modifying any of the .go
files, you must recompile Argus. You could recompile the whole app with a make build
, but this will also recompile the React components. To save time (and CPU power), you can use the existing React static and recompile just the Go part by running make go-build
. (Running this in the root dir will produce the argus
binary)
React changes
To see the changes after modifying anything in web/ui/react-app
, you must recompile both the Go backend as well as the React frontend. This can be done by running make build
. (Running this in the root dir will produce the argus
binary)
Getting started
To get started with Argus, simply download the binary from the releases page, and setup the config for that binary.
For further help, check out the Getting Started page on our website.
Config formatting
The config can be broken down into 6 key areas. (Further help)
- defaults - This is broken down into areas with defaults for services, gotifies, slacks and webhooks.
- settings - Settings for the Argus server.
- service - A dictionary mapping of all the services to monitor as well as what to notify when a new release is found.
- gotify - A dictionary mapping of targets for Gotify messages.
- slack - A dictionary mapping of targets for Slack messages.
- webhook - A dictionary mapping of targets for WebHooks.