Daplie Tools
Taking Back the Internet!
https://daplie.com/articles/introducing-daplie/
That's what we're doing and that's what these tools are for.
What can I do with 'em?
daplie-tools
is a CLI suite of tools for managing Internet infrastructure:
-
Manage Domains
- purchase your own domain
- transfer from your current registrar
- get a
daplie.me
subdomain
-
Manage DNS
- Glue Records
- Domain Nameservers
- Static Record Types (CNAME, MX, SRV, TXT)
- Device (server) Record Types (A, AAAA)
-
Dynamic DNS (DDNS)
(NAT automation and Reverse VPN purchase are planned for the future)
Install
This is alpha software (not quite beta yet).
We're intending this to be used by people that are happy to submit to us bug reports
and not give up when it doesn't work quite right.
(remember: computers are like people - no two are alike and although it works
as expected for everyone else, it will somehow fail for you)
Minimal
curl -sL bit.ly/nodejs-min | bash
npm install -g daplie-tools
Note: you will need curl
and git
installed.
With Development Tools
# install node.js 4.3 or greater
curl -sL bit.ly/nodejs-dev-install -o node-dev; bash ./node-dev
# install daplie-tools
npm install -g daplie-tools
If you don't want to use the scripts you can always download node.js here: https://nodejs.org/en/download/
(but then you have to fix permissions on /usr/local
and perhaps deal with quirks).
Windows
Download and install the node.js installer from https://nodejs.org/en/download/
npm install -g daplie-tools
Windows is not as well tested, but our goal is to make it a first-class citizen,
so please open issues for anything that doesn't work as you expect.
I just got a Surface Book (yay!) so hopefully I'll find the bugs before you do.
We shall see.
Walkthroughs & FAQs
Get a daplie.me subdomain
In short, you just enter the purchase console, type the domain you want, and end with .daplie.me
:
daplie domains:search
Oh, and you can also script the domain purchase directly:
daplie help domains:search
daplie domains:search --domainnames "example.daplie.me" --tip 1 -max-purchase-price 1
Note: although we don't check right now, excessive use of daplie.me domains will be reclaimed.
If you have a large number of users you would like to supply domains for, email aj@daplie.com
and I'll help you get your own domain set up for your users.
Purchase your own .com, .org, .net, etc
- Open the purchase console
- Type the name of the domain you want
- If it is not available the price turns into
N/A
- Follow the prompts once you find an available domain
daplie domains:search
Oh, and you can also script the domain purchase directly:
daplie help domains:search
daplie domains:search --domainnames "example.daplie.me," --tip 1 -max-purchase-price 30
Transfer a Domain
Before you can transfer a domain, there are a few things you need to do through
the company you bought it from:
- You must TURN OFF WHOIS PRIVACY
- You must UNLOCK your domain
- You must get an EPP Transfer Code (the name may vary by registrar)
- Copy your DNS records (copy and paste, screenshot, csv, whatever they offer)
Note: Usually your DNS records will remain active with your current company for
2 weeks or more, but don't forget to transfer them over.
With the EPP code you can perform the transfer in this format:
daplie domains:search --domainnames 'DOMAIN1:EPP1,DOMAIN2:EPP2'
Example:
daplie domains:search --domainnames 'example.com:^%efea$#!0,example.net:afe187e7cc'
- It will take 1-10 days for the transfer to complete
- Make sure that you have added your DNS records to our nameservers (See Manage DNS section below)
- You must update the nameservers once the transfer completes
- Wait anywhere between a few minutes and a few days for the changes to propagate
Example:
daplie ns:set -n example.com --defaults
DO NOT DO THIS until you've copied the DNS records over (see the next section Manage DNS)
Or set custom nameservers like this:
daplie help ns
daplie help ns:set
daplie ns:list -n example.com
daplie ns:set -n example.com --nameservers 'ns1.example.com,ns2.example.com'
Manage DNS with Servers (Digital Ocean, Azure, AWS, etc)
- Set IP address to each device (names are arbitrary)
- Set the device to corresponding domains
- Set non-device records
daplie devices:set --device 'aws-west-1' --addresses '127.0.0.1,::1'
daplie devices:attach --device 'aws-west-1' -n 'example.com'
daplie dns:set -n example.com --type MX --answer mxa.mailgun.org --ttl 3600
daplie dns:set -n example.com --type MX --answer mxb.mailgun.org --ttl 3600
daplie dns:set -n mail.example.com --type CNAME --answer mailgun.org --ttl 3600
Note: (ANAME and FWD records are not yet supported)
Dynamic DNS with Raspberry Pi, Router, cron, etc
- Set IP address to each device (names are arbitrary)
- Set the device to corresponding domains
- Set non-device records
daplie devices:set --device 'rpi2' --addresses '127.0.0.1,::1'
daplie devices:attach --device 'rpi2' -n 'example.com'
daplie devices:token --device 'rpi2'
Now schedule cron
with a script to check your IP address every 5 minutes or so
and then run curl
with the url+token if the IP has changed.
Note: (A more comprehensive devices:update
method will be implemented soon)
Why do we require a credit card?
Many of the popular free DNS services are blocked by corporate, government, and school
firewalls because of abuse from non-paying anonymous users.
In order to ensure that our service remains available to all of our users
we require a valid credit card and physical address as a method of
deterring abusive and/or malicious users.
White-Label Subdomains and/or Dynamic DNS
You could offer your subdomains to your users in the same way that we offer daplie.me
subdomains
for our users.
Right now that's a manual process. If you're interested contact aj@daplie.com.
Vanity Nameservers
More often than not, the company that you pay for your domain will set your nameservers
automatically to promote their brand, something like: ns1.domainregistrar.com
, ns2.domainregistrar.com
.
Vanity Nameservers promote your brand instead. So if you own example.com
you would want the nameservers
ns1.example.com
, ns2.example.com
, etc.
Right now Daplie Domains uses generically branded nameservers,
but we plan to move to completely using Vanity Nameservers before our public launch.
To play with Vanity Nameservers
(WARNING: you may experience DNS resolution issues while we are still in development)
you can set the nameserver glue records for your domain to us even today:
daplie glue:set -n example.com --defaults
daplie ns:set -n example.com --nameservers 'ns1.example.com,ns2.example.com'
You can, of course, also use your own nameservers too:
Example:
daplie glue:set -n ns1.example.com --address 127.0.0.1
daplie glue:set -n ns2.example.com --address 127.0.0.2
daplie ns:set -n example.com --nameservers 'ns1.example.com,ns2.example.com'
Commands
See COMMANDS.md
Authors
daplie-tools is developed by AJ ONeal.
Versioning
This is an Alpha, so we really just bump the build version.
When it goes into RC is when we'll try to keep all of the command flags the same so that scripts you build won't break.
The format is: v<major.minor.patch>-<class>+<build>
More information is available at http://semver.org/
License
daplie-tools
is licensed under the MPLv2 license.