Lavrigon - A Python Webservice to check the status of any given local service via a REST call

Related tags

GraphQLlavrigon
Overview

lavrigon

A Python Webservice to check the status of any given local service via a REST call (eg. using uptime kumar)


Purpose

Applications such as Uptime Kuma help monitoring web applications by making REST Api calls (and other fancy stuff). This Project extends this functionality to all services running locally. This is archieved by running scripts locally that check the functionality of the requested service and returning an appropriate html return code. The project is built on scripts users write to check whether a service is functioning. Those scripts have to registered in the config.yml.

Disclaimer

This is not designed to be exposed to the internet or used in a production deployment. But it is designed to be run at home for applications such as uptime kumar or similar apps. The app should work perfectly well in small environments.

Setup

Clone the repository and enter the directory

git clone https://github.com/LordBurtz/lavrigon.git && cd lavrigon

Install the requiered dependencies via pip

pip install -r requierements.txt 
Flask install fails If pip or pip3 fails to install Flask correctly try installing it via your package manager

Then run the flask app

cd app && flask run 

Alternatively you can specify port and host:

flask run -h 0.0.0.0 -p 5007



Le config options

All config options are specified in the config.yml.

Server:
  statusPage: 'status'

statusPage refers to the page you have to access a service eg. localhost:5000/{statusPage}/service

ReturnCodes:
  working:
      #return code of the script
      code: 0 
      #optional html message returned
      message: "Service up and runnning" 
      #html return code, important for eg. uptime kumar
      html: 200 
  error:
      code: 1
      message: "Service unreachable"
      html: 501
#This is where the actual scripts are registered
Scripts:
  # A short description
  # This script tests the basic functionality
  # The name defines the URL by which the service can checked eg 
  # localhost:5000/status/default in this case
  default:
    # whether the script is enabled or not
    enabled: true
    # executable used, eg bash for a script, python for a .py       
    exec: "/bin/bash" 
    # path of the script as seen by the flask app
    path: "scripts/defaultTest.sh" 



Contributing

Feel free to share the scripts you use and create a pull requests for them to be added to this git repo under scripts.

Owner
some random pupil who's bored enough to code and contribute
Adds GraphQL support to your Flask application.

Flask-GraphQL Adds GraphQL support to your Flask application. Usage Just use the GraphQLView view from flask_graphql from flask import Flask from flas

GraphQL Python 1.3k Dec 31, 2022
A new GraphQL library for Python πŸ“

Strawberry GraphQL Python GraphQL library based on dataclasses Installation ( Quick Start ) The quick start method provides a server and CLI to get go

Strawberry GraphQL 2.8k Jan 01, 2023
πŸ”ͺ Facebook Messenger to email bridge based on reverse engineered auth and GraphQL APIs.

Unzuckify This repository has a small Python application which allows me to receive an email notification when somebody sends me a Facebook message. W

Radon Rosborough 33 Dec 18, 2022
Support for Apollo's Automatic Persisted Queries in Strawberry GraphQL πŸ“

strawberry-apollo-apq Supporting Apollo's automatic persisted queries in Strawberry GraphQL πŸ“ Notes Don't use this for production yet, unless you kno

Bas 3 May 17, 2022
Pygitstats - a package that allows you to use the GitHub GraphQL API with ease in your Python programs

Pygitstats - a package that allows you to use the GitHub GraphQL API with ease in your Python programs

Dillon Barnes 4 Mar 29, 2022
A library to help construct a graphql-py server supporting react-relay

Relay Library for GraphQL Python GraphQL-relay-py is the Relay library for GraphQL-core. It allows the easy creation of Relay-compliant servers using

GraphQL Python 143 Nov 15, 2022
Ariadne is a Python library for implementing GraphQL servers using schema-first approach.

Ariadne Ariadne is a Python library for implementing GraphQL servers. Schema-first: Ariadne enables Python developers to use schema-first approach to

Mirumee Labs 1.9k Jan 01, 2023
Lightning fast and portable programming language!

Photon Documentation in English Lightning fast and portable programming language! What is Photon? Photon is a programming language aimed at filling th

William 58 Dec 27, 2022
tartiflette-aiohttp is a wrapper of aiohttp which includes the Tartiflette GraphQL Engine, do not hesitate to take a look of the Tartiflette project.

tartiflette-aiohttp is a wrapper of aiohttp which includes the Tartiflette GraphQL Engine. You can take a look at the Tartiflette API documentation. U

tartiflette 60 Nov 08, 2022
GraphQL framework for Python

Graphene πŸ’¬ Join the community on Slack We are looking for contributors! Please check the ROADMAP to see how you can help ❀️ The below readme is the d

GraphQL Python 7.5k Jan 01, 2023
MGE-GraphQL is a Python library for building GraphQL mutations fast and easily

MGE-GraphQL Introduction MGE-GraphQL is a Python library for building GraphQL mutations fast and easily. Data Validations: A similar data validation w

MGE Software 4 Apr 23, 2022
Blazing fast GraphQL endpoints finder using subdomain enumeration, scripts analysis and bruteforce.

Graphinder Graphinder is a tool that extracts all GraphQL endpoints from a given domain. Run with docker docker run -it -v $(pwd):/usr/bin/graphinder

Escape 76 Dec 28, 2022
GraphQL security auditing script with a focus on performing batch GraphQL queries and mutations

BatchQL BatchQL is a GraphQL security auditing script with a focus on performing batch GraphQL queries and mutations. This script is not complex, and

Assetnote 267 Dec 24, 2022
A Python dependency resolver

python-resolver A Python dependency resolver. Issues Only supports wheels (no sdists!) Usage Python library import packaging.requirements import resol

Filipe LaΓ­ns 19 Jun 29, 2022
This is a minimal project using graphene with django and user authentication to expose a graphql endpoint.

Welcome This is a minimal project using graphene with django and user authentication to expose a graphql endpoint. Definitely checkout how I have mana

yosef salmalian 1 Nov 18, 2021
An unofficial Blender add-on for Autodesk's Arnold render engine.

Arnold for Blender Arnold for Blender (or BtoA) provides a bridge to the Arnold renderer from within Blender's standard interface. BtoA is an unoffici

Luna Digital, Ltd. 89 Dec 28, 2022
Modular, cohesive, transparent and fast web server template

kingdom-python-server 🐍 Modular, transparent, batteries (half) included, lightning fast web server. Features a functional, isolated business layer wi

T10 20 Feb 08, 2022
UltraGraphQL - a GraphQL interface for querying and modifying RDF data on the Web.

UltraGraphQL - cloned from https://git.rwth-aachen.de/i5/ultragraphql Updated or extended files: build.gradle: updated maven to use maven {url "https:

DrSnowbird 1 Jan 07, 2023
A python graphql api, which serves ECB currency rates from last 90 days.

Exchange Rate Api using GraphQL Get Code git pull https://github.com/alaturqua/exchangerate-graphql.git Create .env file with following content and s

Isa 1 Nov 04, 2021
Graphql-codegen library - a pure python implementation

turms DEVELOPMENT Inspiration Turms is a pure python implementation of the awesome graphql-codegen library, following a simliar extensible design. It

Johannes Roos 22 Dec 23, 2022