PowerDNS Plugin for Charon
This is an example DNS provider plugin for Charon that adds support for PowerDNS Authoritative Server.
Building
To build this plugin, you must use CGO_ENABLED=1 and the same Go version as the Charon binary:
cd plugins/powerdns
CGO_ENABLED=1 go build -buildmode=plugin -o ../powerdns.so main.go
Installation
- Build the plugin as shown above
- Copy
powerdns.soto/app/plugins/(or your configured plugin directory) - Restart Charon to load the plugin
- The PowerDNS provider will appear in the DNS providers list
Configuration
The PowerDNS plugin requires:
- API URL: The PowerDNS HTTP API endpoint (e.g.,
https://pdns.example.com:8081) - API Key: Your PowerDNS API key (X-API-Key header value)
- Server ID (optional): PowerDNS server ID (default:
localhost)
Caddy Requirement
This plugin only handles the Charon UI/API integration. To use PowerDNS for DNS challenges, Caddy must be built with the caddy-dns/powerdns module.
Security
Always verify the plugin source before loading it. Plugins run in the same process as Charon and have full access to system resources.