Coder Social home page Coder Social logo

dhenry123 / utdon Goto Github PK

View Code? Open in Web Editor NEW
14.0 3.0 2.0 1.28 MB

Self-hosted web application to monitor the obsolescence of your FOSS applications in production. UptoDateOrNot ???

License: GNU Affero General Public License v3.0

JavaScript 0.19% Dockerfile 0.41% TypeScript 89.69% HTML 0.27% SCSS 8.16% Shell 1.28%

utdon's Introduction

Documentation en Français

UTDON (UpToDateOrNot??) - [Translated by deepl.com]

Are your FOSS (Free and open-source software) applications in production up to date?

Introducing

UTDON was born from a shell that compares :

  • the version of an application currently running (production)
  • the latest version available (GITHUB repository).

As UTDON only works with applications whose source repository is located on "GitHub", it currently only works with GitHub.

dashboard

Use cases

  • Monitoring by UI.
  • Monitoring by API call.
  • Monitoring by API call and update of a monitoring service (ping type).
  • API call to trigger update by action on CI/CD chain.

UTDON Versioning

UDON follows the "semver" protocol (https://semver.org/), accessible via the "/api/v1/version" entrypoint, which returns a value in JSON format: {"version":"[\d+].[\d+].[\d+]} (3 groups of numbers separated by a dot).

GitHub "tags" and container "tags" will remain similar to this response.

Release Candidates will be defined as follows: "[\d+].[\d+].[\d+]-rc-[\d+]".

How does it work?

Flow

graph TD
ag(api tags github)

s(server)
ps(production server)
pr(production release)
lr(last release)
cp(compare)
res(result as JSON)
mps(monitoring ping service)
s-->|call|ag
ag-->|apply expression and get|lr
s-->|call|ps
ps-->|apply expression and get|pr
cp-->lr
cp-->pr
s-->cp
cp-->|give|res
res-->|update internal state|s
s-->|update|mps
Loading

Stack

  • Nodejs
  • React/Redux
  • JSON databases: located in RAM, replacing files during execution has no effect. Database contents are saved after each modification and when the service receives the SGINT | SIGTERM | SIGUSR2 signal.
  • RegExp and Jmespath filters for Json.
  • Swagger.

Security

Never expose UTDON directly to the Internet (use a VPN if necessary). UTDON is an internal, self-hosted tool that performs actions on your private resources (Monitoring/CI-CD).

Refuse all SAAS hosting: This product has not been designed to be multi-tenant, and is not protected by an E2E solution. Authentication data is encrypted using a string that would be supplied by the potential host and therefore decipherable by it. Understand that UTDON "controls" contain the url of the service to be monitored, and potentially access to your CI/CD chain and/or monitoring service.

Encryption

The contents of both databases are partially encrypted:

  • user.json: Administrator password (non-reversible) and authentication token (reversible)
  • database.json:
    • Authentication strings for monitoring urls and CI/CD chain (reversible).
    • HTTP header associated with the production scrap process

If you've lost the admin password

Stop the service, delete the "user.json" file, then restart. Then log in with the default account/password: admin/admin, then change it immediately.

Session

Sessions are managed in RAM, so a simple service restart resets all sessions.

Roadmap

  • Github authentication to remove rate-limit barrier.
  • Duplicate a control.
  • Addition of a "readonly" token per user for use with a CI/CD chain
  • S3 storage.
  • Entrypoint API metrics.
  • LDAP authentication.

Credits

If you like this application

Give it a star...

utdon's People

Contributors

dhenry123 avatar luclu7 avatar

Stargazers

Amélie R. avatar  avatar Matthieu Borgognon avatar Maxime SOURDIN avatar Tomasz Kapias avatar  avatar Maxence M. avatar  avatar Skid avatar  avatar Albin Tendron avatar Thomas Labarussias avatar Nomis avatar  avatar

Watchers

 avatar  avatar Amélie R. avatar

Forkers

luclu7 ouisouss

utdon's Issues

Add support for HTTP Headers

Hello,

First of all, I'd like to thank you for this very useful tool.

I've just tested the tool a little. I have the impression that it's not possible to set HTTP headers to query the production URL.

For example, I have a TrueNas Scale at home and to get its version, it is necessary to use HTTP API with HTTP header Authorization.

Did I miss something or is it a real request feature ?

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.