https://github.com/ftsiadimos/dhcp-dns-manager
A Flask web application to manage Kea DHCP and BIND/named DNS services running on the host. The app runs in a Docker container with host networking to communicate with the services.
https://github.com/ftsiadimos/dhcp-dns-manager
dns kea-dhcpd named
Last synced: about 2 months ago
JSON representation
A Flask web application to manage Kea DHCP and BIND/named DNS services running on the host. The app runs in a Docker container with host networking to communicate with the services.
- Host: GitHub
- URL: https://github.com/ftsiadimos/dhcp-dns-manager
- Owner: ftsiadimos
- Created: 2026-04-02T13:32:19.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2026-04-02T20:41:15.000Z (2 months ago)
- Last Synced: 2026-04-03T02:56:21.694Z (2 months ago)
- Topics: dns, kea-dhcpd, named
- Language: Python
- Homepage:
- Size: 83 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Kea DHCP & Named DNS Manager
A Flask web application to manage **Kea DHCP** and **BIND/named DNS** services running on the host. The app runs in a Docker container with host networking to communicate with the services.
Dashboard
---
## Features
### DHCP (via Kea Control Agent API)
- View / Add / Edit / Delete **subnets** (pools, options)
- View / Add / Delete **reservations** (MAC → IP mapping)
- View / Delete **leases**
- Service status dashboard
### DNS (via dynamic updates & rndc)
- Browse zone records (AXFR)
- Add / Edit / Delete records (A, AAAA, CNAME, MX, TXT, PTR, NS, SRV)
- PTR (reverse DNS) management
- rndc console (status, reload, flush, freeze/thaw, etc.)
## Prerequisites
On the **host machine**:
1. **Kea DHCP** with Control Agent enabled on port 8000:
```bash
systemctl enable --now kea-ctrl-agent
systemctl enable --now kea-dhcp4-server
```
2. **BIND/named** with:
- Zone transfers (AXFR) allowed from localhost
- Dynamic updates enabled (or TSIG key configured)
- `rndc` key available at `/etc/bind/rndc.key`
3. **Docker** (with compose plugin)
## Quick Start
### Option 1 — Pre-built image from GitHub Container Registry
Pull and run directly without cloning the repository:
```bash
docker run -d \
--name dhcp-dns-manager \
--network host \
--restart unless-stopped \
ghcr.io/ftsiadimos/dhcp-named-manager:latest
```
Or with Docker Compose:
```yaml
# docker-compose.yml
services:
dhcp-dns-manager:
image: ghcr.io/ftsiadimos/dhcp-named-manager:latest
network_mode: host
restart: unless-stopped
volumes:
- ./data:/data
```
```bash
docker compose up -d
```