PowerDNS-WebUI is a web user interface for reading and searching DNS zones managed by a PowerDNS server via its REST API.
- Display DNS zones and their records.
- Advanced search by name, type, or content of DNS records.
- Modern user interface based on Bulma.
- Go 1.24 or higher.
- A PowerDNS server configured with the REST API enabled.
For security purposes, create a dedicated user to run the application:
sudo useradd -r -s /bin/false powerdns-webuiCreate the necessary directories for the application and its configuration:
sudo mkdir -p /opt/powerdns-webui
sudo mkdir -p /etc/powerdns-webui
sudo chown -R powerdns-webui:powerdns-webui /opt/powerdns-webui /etc/powerdns-webui-
Build the application:
make build
-
Copy the binary to
/opt/powerdns-webui:sudo cp ./build/powerdns-webui /opt/powerdns-webui/ sudo chown powerdns-webui:powerdns-webui /opt/powerdns-webui/powerdns-webui
-
Copy the configuration file to
/etc/powerdns-webui:sudo cp ./config.toml /etc/powerdns-webui/ sudo chown powerdns-webui:powerdns-webui /etc/powerdns-webui/config.toml
Create a systemd service file at /etc/systemd/system/powerdns-webui.service:
sudo nano /etc/systemd/system/powerdns-webui.serviceAdd the following content:
[Unit]
Description=PowerDNS WebUI
After=network.target
[Service]
User=powerdns-webui
Group=powerdns-webui
WorkingDirectory=/opt/powerdns-webui
ExecStart=/opt/powerdns-webui/powerdns-webui --config /etc/powerdns-webui/config.toml
Restart=always
RestartSec=5
Environment="PORT=8080"
[Install]
WantedBy=multi-user.targetReload systemd to apply the new service file, then start and enable the service:
sudo systemctl daemon-reload
sudo systemctl start powerdns-webui
sudo systemctl enable powerdns-webuiCheck the status of the service to ensure it is running:
sudo systemctl status powerdns-webuiYou should see output indicating that the service is active and running.
Open a web browser and navigate to the following URL (replace 0.0.0.0 with your server's IP address if necessary):
http://0.0.0.0:8080
-
To update the configuration, edit
/etc/powerdns-webui/config.tomland restart the service:sudo systemctl restart powerdns-webui
-
Logs can be viewed using
journalctl:sudo journalctl -u powerdns-webui -f
To run the application, use the following command:
./build/powerdns-webui --config config.tomlGLOBAL OPTIONS:
--config value Path to the configuration file (TOML format) [$CONFIG_FILE]
--help, -h show helpCreate a config.toml file with the following content:
powerdns_url = "http://localhost:8081"
api_key = "my_awesome_api_key"
server_id = "localhost"
listen_address = "0.0.0.0"
port = "8080"To run the application in development mode:
make runTo run unit tests:
make testContributions are welcome! Please submit a pull request or open an issue to report a problem or suggest an improvement.
This project is licensed under the MIT License. See the LICENSE file for more details.

