Skip to content

memphisx/netcheck-api

Repository files navigation

NetCheck

GitHub Release Date GitHub issues GitHub issues by-label GitHub Workflow Status GitHub stars GitHub forks GitHub watchers GitHub language count


Performance & availability monitoring app

Built on Spring Boot & Quasar Frameworks


Netcheck lets you monitor the availability and performance of your websites or web services by running on your own servers/machines or hosting providers of your preference. It is inspired by services like Pingdom and Statuscake

This git repository is for the api/backend side of the app. For an easy way to control the app and check the state and performance of your websites check out the Netcheck Frontend Repository and its instructions on how to run it.

WARNING: The app is still under heavy development and quite rough around the edges. Feel free to report any bugs you may encounter, provide feedback or request features you would love to see in the future through the github issues page.


Quick Start

The fastest way to run Netcheck is through docker, and the provided docker-compose.docker-hub.yml file to get all the required dependencies up and running.

docker compose -f ./docker-compose.dockerhub.yml up -d

Running a private instance locally with OpenJDK

Coming soon™

Using docker (recommended)

  • Follow the official documentation to install Docker and docker-compose.

  • Install Java 17 and maven (It is recommended to install both through SDKMan)

  • copy database.env.example to database.env and change the credentials for the db to something more appropriate. This env file is going to be used both by the postgres docker container to init the db and the netcheck app in order to connect to it.

  • copy .env.example to .env. The default values are enough for connecting to the db in the previous step. If you want Notifications support through pushover change the SETTINGS_NOTIFICATIONS_PUSHOVER_ENABLED to true and fill the SETTINGS_NOTIFICATIONS_PUSHOVER_APITOKEN and SETTINGS_NOTIFICATIONS_PUSHOVER_USERIDTOKEN with the values you are going to get from Pushover after creating a new app.

  • Execute docker compose -f ./test-depedancies.docker-compose.yml up -d to bring up the required services for the integration tests

  • Execute mvn install to install all dependencies with maven, run tests and compile the final jar file Note: At that point you can execute docker compose -f ./test-depedancies.docker-compose.yml down to bring the previous services if you are not planning on working with the source code and compiling the jar file again.

  • Execute docker-compose build && docker-compose up -d to build the docker image and bring everything up.

  • Visit http://127.0.0.1:8080/docs/v1/ from your favorite browser to check what you can do with the api or bring up the Netcheck frontend by following the instructions in the README file

Running publicly through traefik reverse proxy

Coming soon™



Features:
⚡️ Built on Spring Boot (backend - this repo) and Quasar (Frontend)
⚡️ Supports live checking of domains through HTTP and HTTPS
⚡️ Supports scheduled checks with custom check intervals per domain
⚡️ Customizable endpoint, request headers and timeout threshold on all checks
⚡️ HTTPS Certificate validation checks
⚡️ Metric Generation for uptime and response times
⚡ Aggregation of arbitrary metrics sent by Servers
⚡️ State change notification system (currently supports Webhooks, SSE and Pushover)

Other key features coming:
⚡️ Authentication
⚡️ Multi user/teams support through KeyCloak
⚡️ Additional notification providers (Email, Pushbullet, Telegram, Discord, Slack, Kafka, etc)
⚡ Additional check implementations (SSH, TCP, UDP, RDP, etc)
⚡️ Multi location support for the scheduled checks
⚡️ Scalability of the service when running in clusters (Kubernetes, Docker Swarm, etc)


What is Netcheck designed for

Netcheck is designed for realtime monitoring and performance metric collection of websites through scheduled checks. It is similar to 3rd party services like Pingdom, DownDetector and StatusCake.

Netcheck may not include the vast feature set the aforementioned services provide, but it gives you full control over your data and doesn't lock you in to a single provider. And since it is self hosted it can also run exclusively on your intranet/cluster and check non publicly available services.


About

Netcheck API - Website performance and availability monitoring app

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •