Monitor services in your home lab for free, without all that enterprise hassle. Define services you want to monitor, and Monitor queries them over HTTP according to a specified interval. Report to one of more of the supported external services when something is wrong.
{
"services": [
{
"service": "vg.no",
"schedule": "every 1 minute",
"url": "https://www.vg.no",
"okStatusCode": 200
},
{
"service": "nas",
"schedule": "every 1 minute",
"url": "http://192.168.1.200:5000",
"okStatusCode": 200
},
{
"service": "Home Assistant",
"schedule": "every 10 minutes",
"url": "http://192.168.1.89:4357",
"okStatusCode": 200
},
{
"service": "Nginx",
"schedule": "every 1 minute",
"url": "http://macbook-server:80",
"okStatusCode": 301
}
],
"healthcheck": {
"url": "https://hc-ping.com/1234567890",
"schedule": "every 10 minutes"
}
}The healthcheck property is optional. Skipping it will make this tool function just as a uptime checker.
Runs as a docker container. Assuming you have saved your config in ./config/config.json, run this command:
docker run -v ./config:/config -p 3000:3000 bendiksolheim/monitor:latestSee docker-compose.yml for a docker compose example.
- Node.js 20+
- pnpm 9+ (install via
corepack enableor see pnpm installation)
-
Enable corepack (if not already enabled):
corepack enable -
Install dependencies:
pnpm install
-
Create an example configuration:
pnpm run create-config
-
Generate some test data:
pnpm run generate-test-data
-
Run development server:
pnpm dev
