A web-based management interface for ISC KEA DHCP4 server, packaged as a lightweight Docker container.
- Web UI Management: Modern, responsive web interface for KEA DHCP configuration
- Subnet Management: Add, delete, and configure DHCP subnets with pools and options
- Static Reservations: Manage MAC-to-IP static reservations
- Lease Monitoring: View active DHCP leases in real-time
- Configuration Editor: Direct JSON configuration editing with validation
- Secure Authentication: SQLite-based user management with password reset functionality
- Service Control: Restart KEA DHCP service from the web interface
# Pull and run the container
docker run -d \
--name kea-manager \
--hostname kea-manager \
--network host \
-e TZ=UTC \
--restart always \
cyb3rdoc/kea-manager:latest
services:
kea-manager:
image: cyb3rdoc/kea-manager:latest
container_name: kea-manager
hostname: kea-manager
network_mode: host
environment:
- TZ=UTC
restart: always
- Access the web interface at
http://localhost:5000
- Complete the initial setup by creating an admin account
- Configure your first DHCP subnet and pool
- Start the KEA DHCP service
The container exposes /etc/kea
as a volume where all configuration files are stored:
kea-dhcp4.conf
- Main KEA DHCP configurationauth.db
- User authentication databasepassword_reset.key
- Temporary password reset keys
If you forget your admin credentials:
- Access the container:
docker exec -it kea-manager sh
- Generate a reset key from the web UI ("Forgot Password")
- Read the reset key:
cat /etc/kea/password_reset.key
- Use the key in the web interface to reset both username and password
Host networking is strongly recommended for DHCP servers because:
- DHCP relies on broadcast packets that may not work properly with Docker's bridge networking
- Direct access to network interfaces is required for proper DHCP relay and client discovery
- Eliminates potential issues with DHCP packet forwarding and NAT
Access the web interface at http://HOST_IP:5000
when using host networking.
When using host networking, these ports are exposed directly on the host:
5000/tcp
- Web management interface67/udp
- DHCP server port
TZ
- Timezone (default: UTC)SECRET_KEY
- Flask session secret (auto-generated if not provided)
git clone <repository-url>
cd kea-manager
docker build -t kea-manager .
This project is licensed under the MIT License - see the LICENSE file for details.
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
For issues and questions, please use the GitHub Issues page.