Nuts node development


Go >= 1.18 is required.


Just use go build.

Building for exotic environments

You can build and run the Nuts node on more exotic environments, e.g. Raspberry Pis:

  • 32-bit ARMv6 (Raspberry Pi Zero): env GOOS=linux GOARCH=arm GOARM=6 go build

Running tests

Tests can be run by executing

go test ./...

Code Generation

Code generation is used for generating mocks, OpenAPI client- and servers, and gRPC services. Make sure that GOPATH/bin is available on PATH and that the dependencies are installed

Install protoc:

MacOS: brew install protobuf
Linux: apt install -y protobuf-compiler

Install Go tools:

make install-tools

Generating code:

To regenerate all code run the run-generators target from the makefile or use one of the following for a specific group




make gen-mocks


make gen-api

Protobuf + gRCP

make gen-protobuf


make run-generators

Docs Generation

To generate the documentation, you’ll need to build a docker image and run it from the docs directory:

cd docs
docker build -t nutsfoundation/nuts-node-docs .
docker run --rm -v $PWD:/docs nutsfoundation/nuts-node-docs make html


The readme is auto-generated from a template and uses the documentation to fill in the blanks.

make gen-readme


The documentation can be build by running the following command from the /docs directory:

make html