Coder Social home page Coder Social logo

mexhigh / status-api Goto Github PK

View Code? Open in Web Editor NEW
4.0 1.0 0.0 6.99 MB

An API to provide information about the status of your services. This API checks the status periodically instead of at every request to prevent overload of the services. Docker Image available.

Home Page: https://git.leon.wtf/leon/status-api

Dockerfile 1.23% Go 70.76% HTML 0.64% CSS 0.50% JavaScript 26.87%

status-api's Introduction

Status API

Status API Dashboard

The Status API is a dashboard to log the uptime of server services. Unlike other uptime tools, the services are checked at the application level - and not only via TCP/UDP. This allows for more protocol-related information like HTTP status code or the number of connected users on a Minecraft server.

Additionally, the dashboard can display status messages like planned maintenance or other defects. The Status API also generates an Atom feed from them, so service users always stay up to date.

The public dashboard is kept simple and is able to show the uptime-timeline for the last 30-days -- or less when on mobile to preserve some space. The API itself ist CORS-compliant to be used from other web applications.

A public example used in production can be seen here: https://status.leon.wtf

Supported protocols

The so called "Procotol Checkers" are modular pieces of code that can be attached to the Status API to support additional protocols to check your services with. See below for the current list of supported protocols.

Protocols are implemented as Protocol Checker Modules in server/protocols/checkers/. They define, which protocols are supported to be used to check services. Curently, the following Protocol Checkers are implemented:

  • HTTP(S)
    • Optionally with basic authentication
    • Can expect status codes (or status code ranges), HTML content or response headers
  • SMTP
    • Supports StartTLS, implicit and explicit TLS
  • Minecraft
    • Supports displaying the number of connected users
  • Teamspeak (over SSH query)
    • Checks the Teamspeak server without requiring authentication data!

Each protocol can have a deviating test URL and a friendly URL this will be displayed on the dashboard.

By default, all services are checked in a 120 seconds interval.

Supported notifiers

The Status API can inform you if one of your services goes down. Just list the Protocol Checkers, the so-called Notifiers are modular, too. Currently, the following Notifiers are supported:

  • Log (Default Notifier, just logs to STDOUT)
  • Gotify Server
  • E-Mail (coming soon, see #2)

Configuration

The Status API is configured via a single config.json file. Visit the repository wiki on how to do it.

Tech stack

The frontend was built with React 17.0.1 and craco 6.1.1 using node v16.20.2. For styling, Tailwind CSS was used.

The server (API backend) was built using go 1.20.

status-api's People

Contributors

mexhigh avatar nweber9 avatar

Stargazers

 avatar  avatar  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.