Use $STORAGE_ROOT

Better to use $STORAGE_ROOT instead of hardcoded /home/user-data/
Merge pull request #111 from h8h/patch-1

Output SSL Cert Fingerprint can point to a wrong dir: Better to use $STORAGE_ROOT
Vagrant typo
refuse to start if the system has less than 768 MB of RAM, except when testing within Vagrant
move the welcome message to after the system checks
check that we're running as root before doing anything
hide lots of unnecessary and scary output during setup
whats_next: move the admin alias check to the system section
add a comment
write explanatory text as we build DNS zones so we can help the user manage DNS off of the box
run management/dns_update.py from the console to dump the DNS records, with explanations, in case the user wants to host DNS off of the box
don't create a www. subdomain on any domains that are themselves subdomains within a zone, i.e. don't create www.PUBLIC_HOSTNAME if PUBLIC_HOSTNAME is a subdomain of another domain, which is what we normally recommend
Add IPv6 glue records as well

The dns_update script didn't generate IPv6 (AAAA) glue records for the name servers.

This caused http://dnscheck.pingdom.com to complain about a mismatch between the glue records reported by the parent name server and mailinabox nsd.

Here's the failing dnscheck output for reference:
> Checking glue for ns1.my.domain.tld (1.2.3.4).
> Child glue for bgwe.eu found: ns1.my.domain.tld (1.2.3.4)
> Checking glue for ns1.my.domain.tld (1234::1).
> Missing glue at child: ns1.my.domain.tld
> Checking glue for ns2.my.domain.tld (1.2.3.4).
> Child glue for bgwe.eu found: ns2.my.domain.tld (1.2.3.4)
> Checking glue for ns2.my.domain.tld (1234::1).
> Missing glue at child: ns2.my.domain.tld

I'm not very familiar with Python and DNS, please verify ;)
Update dns_update.py

Add new extra bool parameter.
Add AAAA records for ns1/ns2

Merges branch 'patch-1' of https://github.com/sfPlayer1/mailinabox
the cron job to re-sign DNSSEC zones wasnt working after adding the API key to the management daemon because the script relied on a bash-ism but cron runs it with (probably) sh
the check for whether a custom DNS setting is valid was in the wrong place
refactor custom DNS records
in the custom DNS yaml config, treat 'local' as an alias for the box's own IP/IPv6 addresses
dont serve web for domains with custom DNS records that point A/AAAA elsewhere, and in whats_next only check that an A record exists on a domain if we are serving web on the domain