Irrlicht

A flexible, cloud-ready netboot server.

Irrlicht flow editor
Flexible, intuitive flows

Flexible, intuitive flows

Fill the gap between thousand-line install scripts, and command line flag googling. Easily compose snippets in readable, maintainable workflows you don't need a degree in CS in to understand.

Cross-platform

We provide binaries for Linux, Windows, and even macOS.

We even have windows aarch64 binaries.

Integrates with all your tools

We believe in treating third-party tools as first class citizens, so everything you can do in the UI, you can do via our extensive REST API. Check the api docs)

irrlicht — zsh
$ curl https://netboot.internal/api/v1/clients
[
  { "mac_address": "9e:ea:ff:5b:c9:e5", "name": "utm-test", "arch": "aarch64", "firmware": "uefi" },
  { "mac_address": "00:50:56:2a:12:65", "name": "vmware-pxe", "arch": "aarch64", "firmware": "uefi" }
]

$ curl https://netboot.internal/api/v1/boot-profiles/7aec330c-c1ff
{
  "name": "tinyx",
  "kernel_path": "/images/alpine/tinyx-vmlinuz",
  "flow_id": "8512bb49-ffa8-4f09-a342-5530b70226cf"
}

Firewall Friendly

Irrlicht only needs 443 and 9001*. Everything is HTTP(S), no weird TCP Streams you cannot route.
* work is underway to drop this down to just 443.

Agent Friendly

Connect your Agents to the builtin mcp endpoint for enhanced analytics.

Remote Shell. Builtin.

Debug your clients with just one click.

Extensible by design

Need a feature we haven't built yet? Need to mangle some config files? We don't judge. Use jinja2 templating to customize to your hearts content!

install.conf.j2
# {{ client.name }} — generated by Irrlicht
hostname: {{ client.name | default(client.mac) }}

{% if client.arch == "aarch64" %}
bootloader: grub-efi-arm64
{% else %}
bootloader: grub-pc
{% endif %}

disk: {{ client.disk | default("/dev/sda") }}

And that's only some of the picks.

Edit scripts your way
01 / 03

Edit scripts your way

Every step is a real shell script, editable in place, with optional Vim keybindings for muscle memory.