No description
Find a file
paspo ae1ab28632
All checks were successful
Container Publish / on-success-skip (push) Has been skipped
Container Publish / build-image (arm64) (push) Successful in 28s
Container Publish / build-image (amd64) (push) Successful in 35s
Container Publish / update docker manifest (push) Successful in 10s
Add conditional login to Docker registry based on deployment branch
2026-03-10 11:45:19 +01:00
.forgejo/workflows Add conditional login to Docker registry based on deployment branch 2026-03-10 11:45:19 +01:00
rootfs allow webserver access from everywhere 2025-05-06 09:27:33 +02:00
Dockerfile fixed alpine release 2026-03-10 11:42:17 +01:00
LICENSE initial import 2025-05-06 09:08:19 +02:00
README.md initial import 2025-05-06 09:08:19 +02:00
renovate.json Update renovate.json to extend recommended configuration, enable Dockerfile manager, and set automerge rules 2026-03-10 11:42:47 +01:00

Dockerized PowerDNS

Usage with docker compose

services:
  dns:
    image: docker.asperti.com/paspo/powerdns:latest
    container_name: dns
    ports:
      - 127.0.0.1:1053:53
      - 127.0.0.1:1053:53/udp
      - 127.0.0.1:8081:8081  # api endpoint
    environment:
      API_KEY=ciaociao  # please use a serious key
      DB_PATH=/db/pdns.sqlite
    volumes:
      - ./db:/db

list zones

curl -H "X-API-Key: ciaociao" http://127.0.0.1:8081/api/v1/servers/localhost/zones | jq

add a zone

curl -H "X-API-Key: ciaociao" -X POST -d \
  '{"name":"ciao.com.", "kind":"native", "masters": [], "nameservers":[] }' \
  http://127.0.0.1:8081/api/v1/servers/localhost/zones | jq

list zone content

curl -H "X-API-Key: ciaociao" http://127.0.0.1:8081/api/v1/servers/localhost/zones/ciao.com | jq

add a record

curl -H "X-API-Key: ciaociao" -X PATCH -d \
  '{"rrsets": [{"name": "test.ciao.com.", "type": "A", "ttl": 3600, "changetype": "REPLACE", "records": [{"content": "192.168.254.5", "disabled": false}]}]}' \
  http://127.0.0.1:8081/api/v1/servers/localhost/zones/ciao.com

RFC2136 dns updates

TODO