Development docs, for main @ c56b482 - what's coming, not yet released. This page for v2026.10.05-5, the latest release →
Janus documentation
An immutable, API-driven Linux distribution for HAProxy load balancers: no shell, no SSH, no package manager - every change goes through an mTLS API.
User guide
Install Janus, run the Controller, configure HAProxy, the network and the extensions, and operate your nodes.
Technical
How Janus works inside: the architecture, the boot chain and A/B updates, the images, the gRPC API.
Developer
Contribute to Janus - or integrate it into your private cloud: images, first boot, automation, networking.
Most read
- Quick startA Janus node in a virtual machine on your workstation, configured through its API, serving HTTP - in about ten minutes, with nothing but QEMU and…
- Provisioning a nodeFour ways to create a Janus node that registers itself with an existing Controller: on its first boot, the node announces itself and shows up in the…
- The ControllerA web UI for managing one or more Janus nodes. The node list shows each node's live status at a glance (online, version and available update, HAProxy…
- Using janusctljanusctl is Janus's command-line client: every node's API from your terminal, signed in to a Controller - or keeping a fleet itself, without one. Every…
- Your haproxy.cfgA Janus node runs a stock HAProxy (3.4, AWS-LC as its TLS library, the Prometheus exporter built in) under janusd: an existing configuration mostly works…
- Network configurationA Janus node's hostname, interfaces (physical and 802.1Q VLANs), DNS resolvers and NTP servers are one JSON document, managed through the API…
- VRRP (keepalived)Nodes built with the keepalived extension share virtual IPs with VRRP: one node holds each virtual IP, and another takes it over when that node fails - or…
- Terraform / OpenTofuterraform-provider-janus lets Terraform - or OpenTofu, or Terragrunt on top of either - tell a Janus Controller which nodes to have. The Controller does…