$Id: INSTALL 219 2012-01-13 23:11:38Z kdeugau $

Requirements
============

- Any CGI-capable web server that can execute arbitrary files or
  files with administrator-defineable extensions
- PostgreSQL >= 7.4.  It should be possible to trivially convert to
  other DBMSes, however I recommend against any that don't fully
  support transactions on all changes.
- Perl >= 5.6
  - Standard modules:
    These should be included in any base Perl install
    - CGI::Carp
    - POSIX
    - Text::Wrap - for WHOIS response linewrapping
  - Extra modules:
    - CGI::Simple
    - HTML::Template
    - CGI::Session
    - Crypt::PasswdMD5 (primary password encryption)
    - Digest::MD5 (for imported VegaDNS passwords)
    - Net::Whois::Raw
    - Net::DNS
    - DBI
    - DBD::Pg
    - NetAddr::IP >= 4.x.  3.x may work, however 4.x has been out for
      more than 4 years.
    - Frontier::Responder (only required if using dns-rpc.cgi)
- tinydns - support for other DNS server software is planned

Installing DeepNet DNS Administrator
====================================

1) Untar in a convenient location.  You should be able to simply use the
unpacked tarball as-is, or you can run "make install" to install files
in /usr/local/share/dnsadmin-#VERSION#, with configuration in
/usr/local/etc/dnsdb.

The Makefile supports substitution on most standard GNU/FHS-ish paths,
so you could also run:

  make install prefix=/opt

to install it under /opt.

The Makefile also supports DESTDIR for packaging, so you can use:

  make install datadir=/usr/share sysconfdir=/etc DESTDIR=/tmp/dnsdbpkgroot

to install for packaging under /tmp/dnsdbpkgroot with the core scripts
and HTML packaged under /usr/share/dnsdb-#VERSION#, and the configuration
packaged under /etc/dnsdb.

2) Configuration:  By default DNS Administrator looks for configuration in
/etc/dnsdb/dnsdb.conf.  Edit this file with the database name, user, and
password, and the database host if necessary.

Setting the options under the "mail" heading is also recommended.

3) As a Postgres superuser, create a database user and the database (replace
the database name, user and password as appropriate):

shell> psql template1
pg# create user dnsdb with password "dnsdbpwd";
pg# create database dnsdb owner dnsdb;

Create the inital tables using dns.sql:

shell> psql -U dnsdb dnsdb <dns.sql

4) Configure your webserver to call the DNS Administrator scripts
at an appropriate web path.  A webroot pointing to the unpacked tarball
directory or the default install location /usr/local/lib/dnsadmin-#VERSION#
should work fine;  a directory alias under an existing virtual host should
work as well.

The directory containing the HTML and scripts must have at least the
following Apache directives (or other server equivalent) set:

  Options ExecCGI IncludesNoEXEC

5) A default user "admin", password "admin" is created when you create
the initial tables in step 3.  You should at least change the password
on this account, or create another superuser account and remove this
one.

---

Basic installation should now be complete!  Log in and start adding
your domains and domain records.

A minimal export script is included (export.pl).  This should be modified
to create the tinydns data file where appropriate for your installation,
and set to be called from cron on a regular basis.
