Git Product home page Git Product logo

ikaruswill / argus Goto Github PK

View Code? Open in Web Editor NEW

This project forked from release-argus/argus

0.0 1.0 0.0 8.1 MB

Argus is a lightweight monitor to notify of new software releases via Gotify/Slack/other messages and/or WebHooks.

Home Page: https://release-argus.io

License: Apache License 2.0

Shell 0.20% JavaScript 0.03% Go 87.75% TypeScript 10.70% CSS 0.99% Makefile 0.10% HTML 0.13% Dockerfile 0.11%

argus's Introduction

Argus

GitHub Go Report Card GitHub go.mod Go version (subdirectory of monorepo) GitHub package.json dependency version (subfolder of monorepo) GitHub Workflow Status 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.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 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.

argus's People

Contributors

dependabot[bot] avatar josephkav avatar larsl-net avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.