NB: This project is no longer maintained and the repository has been archived.
This is a web based DNS zone editor written in Django. It relies upon the following components for the heavy lifting:
- Django DNS Manager - Django DNS Zone Editor
- Squab - CouchDB bindings for Python Applications
- CouchDB is used as a transport for replicating zone changes to disparate DNS slaves.
Integration with Unbound DNS is handled with Panubo DNS Integration.
- API
- Bind compatible zone file import (via API)
- Automatic Validation / Delegation Checking
- Delegate access to sub-organisations or users.
Create a virtual environment. Python Bootstrap is a handy tool for this.
Clone this repo to the base of your newly created virtual environment.
After entering the virtual environment. Run the following:
pip install bureaucrat
cp .env.example .env # edit as required
bureaucrat init
Running bureaucrat init
will run the deployment steps, and start the app.
Optionally: Add the following to bin/activate:
OLDIFS=$IFS; IFS=$'\n'; for l in $(cat $VIRTUAL_ENV/.env); do eval export echo "$l"; done; IFS=$OLDIFS
This will automatically load the .env settings when entering the virtual environment. Which makes it easier to manually run ./manage.py.
Build the Dockerfile
or pull the container.
Example Bind zone file upload to the API
curl -X POST -F "data=@${ZONE_FILE}" https://$USER:$PASS@dns/api/v1/zone-upload/$ZONE_NAME/