PowerDNS-Admin

⚡ PowerDNS-Admin — Modified by Alsyundawy

Version Python Latest Release License Maintenance

GitHub Issues GitHub Pull Requests GitHub Stars GitHub Forks Contributors

Donate PayPal Donate Ko-fi GitHub Sponsor


A modern, secure, and feature-rich Web Management Interface for PowerDNS, enhanced with advanced security hardening, Role-Based Access Control (RBAC), multi-backend authentication, dynamic zone templating, Python 3.12+/3.13 compatibility, and automated database migration idempotency — maintained by @alsyundawy.


🌟 Key Features

Category Features
🌐 Zone Management Forward & Reverse DNS (IPv4/IPv6 PTR), Zone Templating, IDN/Punycode, DNSSEC Management
🔐 Authentication Local, SAML 2.0, LDAP (OpenLDAP/Active Directory), OAuth2 (Google, GitHub, Azure, OpenID)
🛡️ Security TOTP 2FA with Replay Protection, RBAC, API Key Isolation, CSRF Protection, SSRF Prevention
📊 Monitoring Real-time PowerDNS Stats, Activity Logging, Audit Trail, Zone Change History
Automation RESTful API for Zone/Record Automation, DynDNS2 Protocol, Docker & Compose Ready
🐍 Compatibility Python 3.10–3.13, Flask 3.x, SQLAlchemy 1.4+, PostgreSQL / MySQL / SQLite

🚀 Quick Start

docker run -d \
  --name powerdns-admin \
  -e SECRET_KEY='replace-with-a-long-secure-random-key' \
  -v pda-data:/data \
  -p 9191:80 \
  alsyundawy/powerdns-admin:latest

Access the interface at http://localhost:9191.

Option 2 — Docker Compose

git clone https://github.com/alsyundawy/PowerDNS-Admin.git
cd PowerDNS-Admin
docker-compose up -d

⚙️ Configuration & Environment Variables

PowerDNS-Admin supports configuration via environment variables or custom config files (docker_config.py / config.py):

Variable Description Default
SECRET_KEY Secret key for session encryption (Required)
SQLALCHEMY_DATABASE_URI Database connection URI sqlite:////data/pdns.db
PDNS_STATS_URL PowerDNS API endpoint URL http://127.0.0.1:8081
PDNS_API_KEY PowerDNS API Key ""
CAPTCHA_ENABLE Enable CAPTCHA on registration page True

📸 Interface Preview

Dashboard Preview


📋 Changelog Summary

🚀 [0.4.3-alsyundawy] — 2026-08-11

Comprehensive maintenance, security hardening, database migration idempotency, UI/UX redesign, and Python 3.12+/3.13 compatibility — built on top of 0.4.2-alsyundawy-fix.

🛡️ Security Enhancements

⚡ Database & Migration Idempotency

🐛 Bug Fixes & UI Stability

🎨 UI/UX Redesign (login.html & register.html)

🔧 Code Quality & CI/CD


🛠️ [0.4.2-alsyundawy-fix] — 2026-08-09

Frontend security and template hardening. Commit: bcbb766.


🔒 [0.4.2-alsyundawy] — 2026-08-09

Comprehensive security & CodeQL remediation release. Commit: 789c185.


📦 [0.4.2] — 2022-01-31 (Upstream)

SQLAlchemy 1.4 upgrade (postgresql:// URI required), OAuth auto-config, case-insensitive user lookup.


📖 Documentation & Resources

Resource Link
📄 API Reference docs/API.md
🔑 OAuth Setup Guide docs/oauth.md
📋 Full Changelog CHANGELOG.md
📝 Technical Notes docnote/changelog.md
🤝 Contribution Guide docs/CONTRIBUTING.md

📜 License

This project is licensed under the MIT License. Maintained with ❤️ by @alsyundawy.