A handbook for operating MirageOS unikernels.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Hannes Mehnert 8452cd897d add initial readme 4 weeks ago
README.md add initial readme 4 weeks ago


Operator Manual for MirageOS unikernels


After several years of experience in operating MirageOS unikernels, we thought it is a good idea to write down how we do it. This is work in progress, and we are open for feedback, in the form of additional topics, too extensive discussion of aspects, ...

We have not yet decided on the technology stack, but we plan to write text and examples in markdown, and render a webpage automatically.


For persons who would like to deploy unikernels. There's no need to install OCaml, write (or read) a single line of OCaml code, or understand functors. This is purely from the operators perspective (giving insight to some new concepts, such as solo5).

The used versions of tools will be specified here, and on update either the entire document will be updated, or version differences will be marked at the specific sites.

Contents (WIP)


Motivation behind unikernels

Unikernel concepts

Available and useful unikernels

Technical deep dive: from a host to the unikernel

Networking for unikernels

Firewall (NAT/port forwarding)

Physical network device on the same bridge

Routing or VPN

Deployment of unikernels


Using systemd





Useful unikernels

Web server (unipi, contruno, tlstunnel)


Opam mirror

DNS unikernels

SMTP unikernels

VPN services

CalDAV server

Local router: DNS and DHCP

QubesOS unikernels

Setup of reproducible build infrastructure

Further material