Argus

module
v0.0.0-...-3f15f89 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 27, 2025 License: Apache-2.0

README

Argus
Argus

Keeping an eye on releases.

GitHub Go Report Card GitHub go.mod Go version (subdirectory of monorepo) GitHub package.json dependency version (subfolder of monorepo) Codecov
GitHub Workflow Status GitHub release (latest by date) GitHub all releases GitHub release (latest by SemVer)
GitHub Workflow Status Docker Image Version (latest semver) Docker Image Size (latest semver) Docker Pulls

Argus will query websites at a user defined interval for new software releases and then trigger Gotify/Slack/Other 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.notify string
        Put the name of the Notify service to send a test message.
  -test.service string
        Put the name of the Service to test the version query.
  -web.basic-auth.password string
        Password for basic auth
  -web.basic-auth.username string
        Username for basic auth
  -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

Prerequisites

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 compile Argus. Run make build the first time to ensure the web components are available locally. Any future builds that don't need the web-ui to be rebuilt can be done with make go-build (faster than make build). (Running either of these in the root dir will produce an argus binary)

React changes

To see the changes after modifying anything in web/ui/react-app, you must recompile both the Go backend and 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 set up 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 5 key areas. (Further help)

  • defaults - This is broken down into areas with defaults for services, notify 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.
  • notify - A dictionary mapping of targets for Notify messages.
  • webhook - A dictionary mapping of targets for WebHooks.

Directories

Path Synopsis
./healthcheck http://localhost:8080/api/v1/healthcheck
./healthcheck http://localhost:8080/api/v1/healthcheck
cmd
argus
Argus monitors GitHub and/or other URLs for version changes.
Argus monitors GitHub and/or other URLs for version changes.
Package command provides the Command struct and methods for services.
Package command provides the Command struct and methods for services.
Package config provides the configuration for Argus.
Package config provides the configuration for Argus.
db
Package db provides database functionality for Argus to keep track of versions found/deployed/approved.
Package db provides database functionality for Argus to keep track of versions found/deployed/approved.
types
Package types provides types for the Database.
Package types provides types for the Database.
notify
shoutrrr
Package shoutrrr provides the shoutrrr notification service to services.
Package shoutrrr provides the shoutrrr notification service to services.
shoutrrr/types
Package types provides Shoutrrr type-changes for the Web API.
Package types provides Shoutrrr type-changes for the Web API.
Package service provides the service functionality for Argus.
Package service provides the service functionality for Argus.
deployed_version
Package deployedver provides the deployed_version lookup.
Package deployedver provides the deployed_version lookup.
latest_version
Package latestver provides the latest_version lookup service to for a service.
Package latestver provides the latest_version lookup service to for a service.
latest_version/filter
Package filter provides filtering for latest_version queries.
Package filter provides filtering for latest_version queries.
latest_version/types/base
Package base provides the base struct for latest_version lookups.
Package base provides the base struct for latest_version lookups.
latest_version/types/github
Package github provides a github-based lookup type.
Package github provides a github-based lookup type.
latest_version/types/github/api_type
Package types provides types for the GitHub API.
Package types provides types for the GitHub API.
latest_version/types/web
Package web provides a web-based lookup type.
Package web provides a web-based lookup type.
option
Package option provides options for a service.
Package option provides options for a service.
status
Package status provides the status functionality to keep track of the approved/deployed/latest versions of a Service.
Package status provides the status functionality to keep track of the approved/deployed/latest versions of a Service.
Package testing provides utilities for CLI-based testing.
Package testing provides utilities for CLI-based testing.
Package util provides utility functions for the Argus project.
Package util provides utility functions for the Argus project.
log
Package logutil provides a logger.
Package logutil provides a logger.
web
Package web provides the web server for Argus.
Package web provides the web server for Argus.
api/types
Package types provides the types for the Argus API.
Package types provides the types for the Argus API.
api/v1
Package v1 provides the API for the webserver.
Package v1 provides the API for the webserver.
metric
Package metric provides Prometheus metrics for the Argus service.
Package metric provides Prometheus metrics for the Argus service.
ui
Package ui provides the embedded React files.
Package ui provides the embedded React files.
Package webhook provides WebHook functionality to services.
Package webhook provides WebHook functionality to services.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL