Zero-config Kea DHCP management
Point it at your server. It finds your config.
EZ-Kea gives ISC Kea a web interface without asking you to restructure
anything. It scans /proc for running
kea-dhcp4 and kea-dhcp6 processes, reads the
config path each daemon was actually launched with, and edits that
file in place.
- No paths to configure
- IPv4 and IPv6
- MIT-licensed source
- Free to 100 leases
Discovery
Built for the Kea you already run.
Most tools ask you to describe your deployment before they'll show you
anything. EZ-Kea reads it off the running system instead — and if Kea
isn't installed at all, it builds a sandbox under
./data/ and runs in demo mode so you can model a network
offline.
config paths to enter — discovery reads them from the running daemons, and you can override them in the UI
active leases on the free tier, with every feature included
tests, running with no Kea installation and no network access
It edits your real config, in place.
No parallel database, no exported-then-imported copy of the truth, no new source of drift between what the UI shows and what your DHCP server is actually serving.
One config, not two.
EZ-Kea writes to the same file keactrl reads. There's no
sync step to forget and nothing to reconcile after someone edits the
JSON by hand. What you see in the tables is what's on disk.
Safe edits, with a way back.
Back up, restore, and syntax-check from the UI before anything is
applied, then reload the daemons with keactrl — or a
SIGHUP for Docker-based installs. A bad edit is a restore away, not
an outage.
Runs where your DHCP runs.
Binds to loopback by default and refuses to listen on a routable address while the secret key is still the default. Fonts and icons are vendored, so it renders correctly on an isolated management VLAN with no internet egress.
Capabilities
Everything Kea does. One interface.
Shared networks, pools, prefix delegation, reservations, high availability, leases, and logs — for both address families, in the same UI.
Auto-discovery
Finds running Kea daemons and binds to their live config files. There are no paths to configure to get started, though you can override every one of them in the UI when your layout is non-standard.
IPv4 and IPv6
Shared networks, standalone subnets, address pools, prefix delegation, and per-subnet DHCP options. IPv6 is a first-class view, not a bolted-on afterthought.
Reservations
MAC-based reservations for DHCPv4, and DUID-based reservations for DHCPv6 covering both fixed addresses and delegated prefixes.
High availability
Configure Kea's libdhcp_ha.so hook for hot-standby,
load-balancing, or passive-backup, then watch peer state live over
the control socket.
Safe edits
Back up, restore, syntax-check, and apply configuration from the UI,
then reload the daemons with keactrl — or SIGHUP for
Docker installs.
Leases and logs
Active DHCPv4 and DHCPv6 lease tables plus a searchable daemon log
viewer, so troubleshooting a client doesn't mean SSH and
grep.
Access control
Multi-user from the start.
Accounts with optional TOTP two-factor, recovery codes, and SMTP-backed password reset. Admin accounts additionally manage users, licensing, and email settings — so the person who runs the server isn't the same as everyone who needs to read a lease table.
Two-factor and recovery
TOTP enrollment with QR provisioning and downloadable recovery codes, for a tool that by definition can reconfigure your network's addressing.
Hardening documented
Secret keys, file permissions, reverse-proxy TLS, and exposure guidance are covered in the Security Hardening guide rather than left as an exercise.
Screenshots
See it before you install it.
These are from the public demo, which runs the real application against a fully synthetic data set.
Licensing
Free to start, and honest about the line.
The source in the repository is MIT licensed. The application it builds is open-core, and it's worth knowing exactly where the line sits before you deploy it.
- 01 Free tier — every feature, up to 100 active DHCP leases. Not a trial, not a feature-gated edition.
- 02 Past 100 leases — a banner appears and a seven-day grace period starts. Nothing changes about how the tool works during it.
- 03 After the grace period — configuration changes are blocked until a commercial license key is entered. Existing config stays readable and Kea keeps serving DHCP.
EZ-Kea never stops your DHCP server. It only stops editing it.
Quick start
Running in five commands.
Requires Python 3.10 or newer. ISC Kea is optional — without it, EZ-Kea starts in demo mode against a local sandbox.
$ git clone https://github.com/fenleytech/ez-kea.git
$ cd ez-kea
$ python3 -m venv venv && source venv/bin/activate
$ pip install -r requirements.txt
$ python3 app.py
# Open http://127.0.0.1:8080 and sign in with admin / changeme.
# You'll be required to change both on first login.
Running it as a systemd service, pointing it at a non-standard Kea layout, and Docker-based Kea deployments are all covered in the Installation guide.
Ready to see it against your own config?
The demo is a shared sandbox on entirely synthetic data, and it resets
every 30 minutes — so create and delete whatever you like. Log in with
demo / demo.