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.
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
Coming soon™
-
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
todatabase.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 theSETTINGS_NOTIFICATIONS_PUSHOVER_ENABLED
totrue
and fill theSETTINGS_NOTIFICATIONS_PUSHOVER_APITOKEN
andSETTINGS_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 executedocker 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
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)
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.