Sign inSign up

cyrius44/pdns

By cyrius44

Updated about 1 year ago

PowerDNS Authoritative Server

Image
0

1.1K

cyrius44/pdns repository overview

Powerdns (without database)

This image only contains the Powerdns component without a database. Requires adding a MariaDB database and specifying the following environment variables:

  • PDNS_DB_HOST: database server (default: mariadb)
  • PDNS_DB_PORT: port (default: 3306)
  • PDNS_DB_DBNAME: database name (default: powerdns)
  • PDNS_DB_USER: username for database (default: powerdns)
  • PDNS_DB_PASSWORD: password (default: powerdns)
  • PDNS_DB_SOCKET: socket connection
  • PDNS_DB_DNSSEC: Dns secure (default: no)
Example

docker run -p 53:53/tcp -p 53:53/udp -e PDNS_DB_HOST=db -e PDNS_DB_PASSWORD=helloworld cyrius44/pdns:latest

Variables

You can use any variables available in the PowerDNS documentation, if you prefix them with PDNS_

Example:

pdns.conf: allow-axfr-ips=1.2.3.4,127.0.0.0/8,::1

docker run -e PDNS_ALLOW-AXFR-IPS=1.2.3.4,127.0.0.0/8,::1 -p 53:53 cyrius44/pdns:latest

Docker compose

If you want to have a complete stack with an admin interface, here is an example of a docker-compose.yaml file:

version: '3.7'
services:
  pdns-db:
    image: mariadb:latest
    restart: unless-stopped
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - pdns-db:/var/lib/mysql:Z
    environment:
      - MARIADB_ROOT_PASSWORD=mariadb-root
      - MARIADB_AUTO_UPGRADE=True
      - MARIADB_USER=powerdns
      - MARIADB_PASSWORD=powerdns
      - MARIADB_DATABASE=powerdns
    healthcheck:
      test: ['CMD', 'mariadb-admin', 'ping', '-h', 'localhost']
      timeout: 10s
      retries: 5

  pdns:
    image: cyrius44/pdns:latest
    restart: unless-stopped
    environment:
      - PDNS_DB_HOST=pdns-db
      - PDNS_DB_DBNAME=powerdns
      - PDNS_DB_USER=powerdns
      - PDNS_DB_PASSWORD=powerdns
      - PDNS_API=yes
      - PDNS_API-KEY=0123456789
      - PDNS_DB_DNSSEC=true
      - PDNS_WEBSERVER=yes
      - PDNS_WEBSERVER-PORT=8081
      - PDNS_WEBSERVER-ADDRESS=0.0.0.0
      - PDNS_WEBSERVER-ALLOW-FROM=127.0.0.1,127.0.0.0/8,::1,172.16.0.0/12,192.168.0.0/16
    volumes:
      - /etc/localtime:/etc/localtime:ro
    depends_on:
      - pdns-db
    ports:
      - 53:53/tcp
      - 53:53/udp

  pdns-admin:
    image: powerdnsadmin/pda-legacy:latest
    restart: unless-stopped
    depends_on:
      - pdns-db      
    environment:
      - SQLALCHEMY_DATABASE_URI=mysql://powerdns:powerdns@pdns-db/powerdns
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - pdns-data:/data
    ports:
      - 80:80/tcp

volumes:
  pdns-db:
  pdns-data:

Tag summary

Content type

Image

Digest

sha256:28529556b

Size

41.8 MB

Last updated

about 1 year ago

docker pull cyrius44/pdns