At this point in time, and until a basic Certificate Authority is implemented, running Krill is interesting mostly for developers. This means the instructions are somewhat developer centric. We will do proper packaging and a Docker image in the future, but for now you will need to check out the source code and compile a binary locally.
There are three things you need for Krill: Rust, a C toolchain and OpenSSL. You can install the Krill on any Operating System where you can fulfil these requirements, but will will assume that you will run this on a UNIX-like OS.
While some system distributions include Rust as system packages,
Krill relies on a relatively new version of Rust, currently 1.30 or
newer. We therefore suggest to use the canonical Rust installation via a
rustup and Rust, simply do:
curl https://sh.rustup.rs -sSf | sh
Alternatively, get the file, have a look and then run it manually. Follow the instructions to get rustup and cargo, the rust build tool, into your path.
You can update your Rust installation later by simply running:
Some of the libraries Krill depends on require a C toolchain to be
present. Your system probably has some easy way to install the minimum
set of packages to build from C sources. If you are unsure, try to run
cc on a command line and if there’s a complaint about missing input
files, you are probably good to go.
Your system will likely have a package manager that will allow you to
install OpenSSL in a few easy steps. For Krill, you will need
openssl-dev. On debian like Linux distributions,
this should be as simple as running:
sudo apt-get install -y libssl-dev
Note: we use Ubuntu xenial (16.04.5 LTS) in our Travis CI environment.
On macOS you can use Homebrew or MacPorts to get started.
Nodejs and Yarn¶
Note: this applies to the enrico-ui branch only at this time, but this will be merged to master soon.
Fear not. There is no need to run nodejs when you run krill!
However, nodejs and yarn are used for development of the Vue.js based
user interface. Vue.js uses small components in development. The stuff
that you find under
./ui/dev/src. As part of the build process these
components are used to generate minified HTML, CSS and JS under the
So, when you build krill locally you will need some additional packages. The following works on Ubuntu xenial:
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash - curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list sudo apt update sudo apt-get install -y nodejs sudo apt-get install -y yarn
Note that once we build binary versions you will not need nodejs on your system. Secondly, for now we have one Krill project that includes both the UI and the API. We may split the project in future if it turns out that there are users who do not need the UI, and prefer a more light-weight version.
The easiest way to get Krill is to clone the repository and build it using cargo:
git clone email@example.com:NLnetLabs/krill.git cd $project cargo build --release
If you want to see the tests run, you can use the following cargo option:
The package will contain three brinaries:
Choose the executable to start using the
--bin flag, e.g.:
cargo run --bin krilld