Introduction
Create a new LXC in Proxmox; you can use the Helper Script below to make it easier.
bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/debian.sh)"
Install Krill
After creating the LXC, run the following to add the Krill packages.
update all the packages on the LXC
sudo apt update
Install the prerequisites
sudo apt install \
ca-certificates \
curl \
gnupg \
lsb-release
add the GPG key from NLnet
curl -fsSL https://packages.nlnetlabs.nl/aptkey.asc | sudo gpg --dearmor -o /usr/share/keyrings/nlnetlabs-archive-keyring.gpg
Choose the main repo with the following
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/nlnetlabs-archive-keyring.gpg] https://packages.nlnetlabs.nl/linux/debian \
$(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/nlnetlabs.list > /dev/null
finally, install Krill
sudo apt update
sudo apt install krill
After it is installed, use nano to open the config file to get the admin_token and, if needed, change the service_url
nano /etc/krill.conf
After recording the admin_token start Krill as a service with sudo systemctl enable --now krill
Install Caddy
run the following in the LXC to add and install Caddy
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy
First, stop the background caddy instance with Caddy stop, then launch the internal reverse proxy with the following
caddy reverse-proxy \
--from :80 \
--to https://localhost:3000 \
--internal-certs \
--insecure
After starting, you should be able to visit the Krill WebGui with the LCX’s IPv4 address

For the CA Handle, you can call it anything; I will be using as-name from RIPE.

You will need to add RIPE’s Repository to publish the ROA’s and the Parent to import the IPv6/ASN.

RIPE setup
We will need to configure RIPE to delegate the RPKI to Krill. On the Right side, click RPKI, then click the Delegated radio button.

Choose I accept. Create my Certificate Authority

Krill Adding a Parent
Under Krill, go over to the Parents tab then click on Add an additional parent

Download the Child Request to upload to RIPEDB

On RIPE, click Choose File and select the child_request.xml, then click Upload.

After the file is uploaded, click on Download this server's identity XML file (used to configure your local Certificate Authority) to download the parent XML to upload to Krill

For the Parent Name, you can put RIPE, then click on Confirm.

You will see your ASN under resources

Krill Adding a Repository
Under Krill, go to Repository and click on Add a repository

Download the Publisher's Request

In RIPE, click on + Provision new repository

Upload the publisher request xml from Krill, then click on Upload.

Download the Repository Response XML from RIPE and upload it to Krill

Upload the Repository Response, then click on Confirm.

You will see your RIPE Repository

Creating ROA
Under the ROAs tab of Krill, Click on Add ROA

Fill out ASN, Prefix, Max Length, and Comment, then click on Confirm.

You will see the new ROA added; it will push to RIPE when the next sync happens.

