Skip to content

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.

Notifications You must be signed in to change notification settings

MexHigh/Status-API

Repository files navigation

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.

About

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.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published