Some checks are pending
Go Benchmark / Performance Regression Check (push) Waiting to run
Cerberus Integration / Cerberus Security Stack Integration (push) Waiting to run
Upload Coverage to Codecov / Backend Codecov Upload (push) Waiting to run
Upload Coverage to Codecov / Frontend Codecov Upload (push) Waiting to run
CodeQL - Analyze / CodeQL analysis (go) (push) Waiting to run
CodeQL - Analyze / CodeQL analysis (javascript-typescript) (push) Waiting to run
CrowdSec Integration / CrowdSec Bouncer Integration (push) Waiting to run
Docker Build, Publish & Test / build-and-push (push) Waiting to run
Docker Build, Publish & Test / Security Scan PR Image (push) Blocked by required conditions
Quality Checks / Auth Route Protection Contract (push) Waiting to run
Quality Checks / Codecov Trigger/Comment Parity Guard (push) Waiting to run
Quality Checks / Backend (Go) (push) Waiting to run
Quality Checks / Frontend (React) (push) Waiting to run
Rate Limit integration / Rate Limiting Integration (push) Waiting to run
Security Scan (PR) / Trivy Binary Scan (push) Waiting to run
Supply Chain Verification (PR) / Verify Supply Chain (push) Waiting to run
WAF integration / Coraza WAF Integration (push) Waiting to run
36 lines
1.2 KiB
Markdown
Executable File
36 lines
1.2 KiB
Markdown
Executable File
# 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:
|
|
|
|
```bash
|
|
cd plugins/powerdns
|
|
CGO_ENABLED=1 go build -buildmode=plugin -o ../powerdns.so main.go
|
|
```
|
|
|
|
## Installation
|
|
|
|
1. Build the plugin as shown above
|
|
2. Copy `powerdns.so` to `/app/plugins/` (or your configured plugin directory)
|
|
3. Restart Charon to load the plugin
|
|
4. 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](https://github.com/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.
|