Application for monitoring a Nuts network. Used for security and health monitoring.
To build for production:
npm install
npm run dist
go run .
This will serve the front end from the embedded filesystem.
During front-end development, you probably want to use the real filesystem and webpack in watch mode:
npm install
npm run watch
go run . live
Generate APIs with:
make apis
There's a small test suite that can be run with
make test
docker run -p 1313:1313 nutsfoundation/nuts-monitor
The location of the config file can be set using a cmdline flag or environment variable:
./monitor --configfile=./server.config.yaml
NUTS_CONFIGFILE=./server.config.yaml ./monitor
You can also configure the application using environment variables (capitalize all keys and prefix with NUTS_
):
NUTS_NUTSNODEADDR=http://nuts-node-address:1323 ./monitor
When running in Docker without a config file mounted at /app/server.config.yaml
it will use the default configuration, or you can change the command parameters.
You specify the Nuts node address with nutsnodeaddr
(NUTS_NUTSNODEADDR
).
If you've bound the /internal
endpoints to a different HTTP interface, you can specify it using nutsnodeinternaladdr
(NUTS_NUTSNODEINTERNALADDR
).
The nutsnodeapikeyfile
config parameter should point to a PEM encoded private key file. The corresponding public key should be configured on the Nuts node in SSH authorized keys format.
nutsnodeapiuser
Is required when using Nuts node API token security. It must match the user in the SSH authorized keys file.
nutsnodeapiaudience
must match the config parameter set in the Nuts node.
Check https://nuts-node.readthedocs.io for Nuts node API security details.
The monitor exposes a status and health check endpoints on /status
and /health
. The health endpoint returns a sprint actuator style body.
Frontend framework is vue.js
Icons are from https://heroicons.com
CSS framework is https://tailwindcss.com