Skip to main content

Django PowerDNS with DNSSEC support

Welcome to the PowerDNS app for Django.

This application allows easy administration of PowerDNS records stored in an SQL database by leveraging the standard Django Admin app. You may also use the Django PowerDNS application as part of a larger project to programatically modify your DNS records.

Note: This is an updated and enhanced fork of django-powerdns which looks abandoned as of November 2012.

Quickstart

Simply add powerdns and lck.django.common to INSTALLED_APPS in your settings.py. Use South for database migrations.

Customizing resource record types

If you’re not using DNSSEC or the other less common record types, you can simplify the user interface even more by specifying a sequence of types the app should use. Simply put this in your settings.py:

POWERDNS_RECORD_TYPES = (
    'A', 'AAAA', 'CNAME', 'HINFO', 'MX', 'NAPTR', 'NS',
    'PTR', 'SOA', 'SRV', 'TXT',
)

Consult PowerDNS documentation for a list of supported resource record types.

Using a separate database for PowerDNS

If your Django application is using a different database than the one used by PowerDNS, provide the configuration for the DNS database in settings.py as a separate entry in DATABASES, for example:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'project_db',
        'USER': 'user',
        'PASSWORD': 'secret',
        'HOST': '127.0.0.1',
        'PORT': '3306',
        'OPTIONS': {
            "init_command": "SET storage_engine=INNODB",
        },
    },
    'powerdns': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'powerdns',
        'USER': 'pdns',
        'PASSWORD': 'pdns',
        'HOST': '127.0.0.1',
        'PORT': '3306',
        'OPTIONS': {
            "init_command": "SET storage_engine=INNODB",
        },
    },
}

For Django to automatically route powerdns requests to the right database, add this setting to settings.py:

DATABASE_ROUTERS = ['powerdns.routers.PowerDNSRouter']

You have to sync and migrate the default and the powerdns databases separately. First the default database:

$ python manage.py syncdb
$ python manage.py migrate

Then the powerdns database:

$ python manage.py syncdb --database=powerdns
$ python manage.py migrate --database==powerdns powerdns

Note that the powerdns database will maintain its own separate South migration history table. This is especially helpful if your connecting several Django projects to a single PowerDNS database.

Also note that due to South limitations, migrate will create all powerdns tables also in the default database. This is harmless, even though creates some clutter.

Change Log

0.9.3

  • Fixed issue #3: HTTP 500 in record admin form if no type given

0.9.2

  • Fixed issue #2: numeric sorting of IP addresses in admin

0.9.1

  • Domain foreign keys support auto completion and have “Edit separately” links

  • Field choices use radio selects whenever that makes sense (fever clicks necessary)

  • Forward/reverse domain filter (requires Django 1.4+)

  • The 0002 database migration in 0.9.0 was incomplete, this is now fixed

0.9.0

  • DNSSEC tables supported.

  • Support for multiple databases.

  • Updated the project to require at least Django 1.3.

  • UI translations supported (currently Polish translation added).

  • South migrations.

  • Source code compliant with PEP8.

  • Minor fixes.

0.2.0

  • First release with basic PowerDNS support.

Authors

Application written by Peter Nixon and Łukasz Langa. NSEC3 code based on George Notaras’ work with django-powerdns-manager.

Metadata

Release files for django-powerdns-dnssec 0.9.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for django-powerdns-dnssec 0.9.3
File Size Uploaded
django-powerdns-dnssec-0.9.3.tar.gz 15.5 kB Details

Release files / django-powerdns-dnssec-0.9.3.tar.gz

Download URL django-powerdns-dnssec-0.9.3.tar.gz
Size 15.5 kB
Tags Source
SHA-256 checksum
How to use checksums
520b8dcf6b0e8ad9b3472e66d05fc87fff72a16c93f9007cdf63a6d10ce6191a
BLAKE2b-256 checksum
How to use checksums
2e4c2923a406ff0809c59a2e0a401a3b486dc3bb2fe9d7242de2e7918b69878c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.9.3 This release

1 release file

0.9.2

1 release file

0.9.1

1 release file

0.9.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page