Skip to content

snydertechnologies/probind

 
 

Repository files navigation

ProBIND - Professional DNS management made easy

Build Status Scrutinizer Code Coverage SensioLabsInsight License Laravel Version GitHub release

Presentation

ProBIND is a web application designed for managing the DNS zones for one or more servers running the ISC BIND DNS server software. It works best for companies that need to manage a medium-sized pool of domains across a set of servers.

The application has been written using Laravel framework. It stores its data in a MySQL, Postgres database (see Laravel Database Backend) and generates configuration files for BIND on-demand.

What ProBIND Is

ProBIND is meant to be a time-saving tool for busy administrators, aiding in managing the configuration of DNS zones across multiple servers. It is intended for use by those already familiar with the components of a DNS zone file and who understand DNS concepts and methods.

This software acts as a configuration repository to help keep zones well-maintained and has several helping tools to ensure that common DNS issues are minimized.

What ProBIND Is Not

Although ProBIND uses a database to store zone data, it is not a replacement backend for ISC BIND. ProBIND merely creates the proper zone files for use with the default configuration method of BIND. If you are looking for a live SQL backend for ISC BIND, this is not one.

ProBIND is not a tool for those unfamiliar with DNS concepts. It assumes you know the differences between a CNAME and an A record. It also assumes you know about SOA records, what a lame server is, and what glue is.

ProBIND is not the ultimate solution to DNS management. It fits the needs of those who develop it, and it is hoped that others will also find it useful.

Changelog

See our CHANGELOG file in order to know what changes are implemented in every version.

Requirements

How to test ProBIND

There are two methods in order to test ProBIND:

Docker method

This will create several Docker containers to implement all ProBIND needs. An application server, a web server, a database server.

Prior this installation, you need to have installed this software:

  1. Clone the repository locally

    $ git clone https://github.com/pacoorozco/probind.git probind
    $ cd probind
  2. Install PHP dependencies with:

    NOTE: You don't need to install neither PHP nor Composer, we are going to use a Composer image instead.

    $ docker run --rm --interactive --tty \
          --volume $PWD:/app \
          --user $(id -u):$(id -g) \
          composer install
  3. Copy .env.example to .env.

    NOTE: You don't need to touch anything from this file. It works with default settings.

  4. Start all containers with Docker Compose

    $ docker-compose build
    $ docker-compose up -d
  5. Seed database in order to play with some data

    $ docker-compose exec app php artisan key:generate 
    $ docker-compose exec app php artisan migrate --seed
  6. Go to http://localhost/install and finish ProBIND installation. Enjoy!

    NOTE: Default credentials are admin/secret.

Homestead Vagrant Box method

This will create a VM box (a Vagrant one) where all needed software will be installed and configured. It's the best way to develop and test ProBIND.

Prior this installation, you need to have installed this software:

  1. Clone the repository locally

    $ git clone https://github.com/pacoorozco/probind.git probind
  2. Install dependencies with:

    $ cd probind
    $ composer install
  3. Copy .env.example to .env. By default this configuration will work with Homestead Vagrant Box.

  4. Prepare Homestead envionment and Vagrant box

    $ php vendor/bin/homestead make
    $ vagrant box add laravel/homestead
    $ vagrant up
  5. Create a new application key and seed some values.

    $ vagrant ssh
    $ cd code
    $ php artisan key:generate
    $ php artisan migrate --seed
    $ exit
  6. Go to http://192.168.10.10/install and finish ProBIND installation. Enjoy!

    NOTE: Default credentials are admin/secret.

Reporting issues

If you have issues with ProBIND, you can report them with the GitHub issues module.

Contibuting

Please see CONTRIBUTING for details.

License

ProBIND is released as free software under GPLv3

Authors

ProBIND was originally developed by Flemming S. Johansen as part of his duties as resident DNS manager at Proventum Solutions. Later, a fork of ProBIND called ProBIND2 was developed by Alexei P. Roudnev, a senior network/software engineer, at Exigen Group LTD.

With both projects lying dormant for a number of years, Michael Johnson, Systems Administrator at PhD Computing, attempted to revive the ProBIND project. The enhancements made in ProBIND2 were merged in and development were once again resumed.

Later, in 2016, Paco Orozco recoded all this application using Laravel Framework to bring a new version of this software. It was named ProBIND v3.

See AUTHORS for a complete list of contributors.

Packages

No packages published

Languages

  • PHP 68.2%
  • HTML 29.8%
  • Shell 1.7%
  • Dockerfile 0.3%