You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

97 lines
3.7 KiB

<!doctype html>
<html lang=en>
<title>Setup Nullhex</title>
<meta charset=utf-8>
<meta name=viewport content="width=device-width,initial-scale=1.0">
<meta name=Description content="An email service for members of Cyberia">
<link href="style.css" rel="stylesheet">
<a href=''>&lt- cyberia</a> <a href=''>webmail</a> <a href=''>setup</a> <a href=''>support 📧</a>
<pre class="fullpage wrap">
<b class="purple">How to use Nullhex</b>
<b><i>1. Get a DNS record</i></b>
We do not support anything besides custom domains, because we want our users to have authority over their email routing, and because custom domains are cool af.
I recommend using for domain purchasing. But use whatever you like!
For the sake of example, lets pretend we have purchased ""
<b><i>2. Set up all of them pesky records</i></b>
Here's the BIND representation of what you need to do. The exact steps will differ between DNS providers.
<pre class="code"> 3000 IN MX 10 3000 IN MX 20 3000 IN TXT "v=spf1 a mx ~all" 3000 IN CNAME 3000 IN TXT "v=DMARC1; p=quarantine;" 3000 IN CNAME 3000 IN SRV 0 1 443 3000 IN SRV 0 1 465 3000 IN SRV 0 1 993
<b><i>3. Test your records</i></b>
Use our testing script to check whether things are kosher:
<pre class="code">
if [ -z "$1" ]; then
echo "error: domain missing ("
exit 1
dig +short MX "$domain" | grep -q '' || errors=" record not found"
dig +short MX "$domain" | grep -q '' || errors="$errors\ record not found"
dig +short TXT "$domain" | grep -q '^"v=spf1 a mx ~all"$' || errors="$errors\nspf record not found"
dig +short CNAME "key1._domainkey.$domain" | grep -q '' || errors="$errors\nkey1._domainkey.$domain record not found"
dig +short TXT "_dmarc.$domain" | grep -q '^"v=DMARC1; p=quarantine;"$' || errors="$errors\ndmarc TXT record is missing"
dig +short SRV "_autodiscover._tcp.$domain" | grep -q '443' || errors="$errors\nautodiscover SRV record is missing"
dig +short SRV "_imaps._tcp.$domain" | grep -q '993' || errors="$errors\nimap SRV record is missing"
dig +short SRV "_submissions._tcp.$domain" | grep -q '465' || errors="$errors\nsmtp SRV record is missing"
dig +short CNAME "autoconfig.$domain" | grep -q '' || errors="$errors\nautoconfig CNAME record is missing"
if [ ! -z "$errors" ]; then
echo "$errors"
exit 1
echo "success! u are redy"
<b><i>4. Set up an account</i></b>
Email and tell us:
- that you're ready for onboarding
- which email address(es) you'd like to have, initially
- we will respond!
(c) Attribution-ShareAlike 4.0 International
Cyberia Computer Club 2020-∞