Pi-DNS

About

This is a really simple Dynamic DNS service built for Raspberry Pi users but accessible to everyone. The service easily enables you to create an easy to remember name to point to your device's public IP. You can then access your public IP using a hostname like myname.pi-dns.me rather than having to remember the IP address every time it changes.

No registration

There is no registration required for this service, mainly because there isn't any need for it and I don't want to have to manage your personal data.

How to use

I've made it as simple as possible to get started, you only need one command to get your DNS entry created. It uses the cURL command which is pretty much standard across all linux distributions although you could use anthing that can all a web URL.

curl 'https://api.pi-dns.me/v1/beta/create?name=myname'

Obviously use your own chosen name instead of myname. You should get a response something like this:

{"response": "81f07d49-f03a-450f-b0d7-99a0217b075f", "statusCode": 201}

The long string in the response section is quite important because that is the secret key which lets you keep your DNS entry up to date. You'll want to make a note of that somewhere and not share it with anyone.

If you have tried to create a name that someone has already taken then you'll get a response to tell you that. It will look like this:

{"response": "Already Taken", "statusCode": 200}

Don't worry, just try another name.

Once you have created your DNS name you need to keep it updated in case your internet provider changes it. This can be done with one command using the name that you have chosen and the secret key. The command below uses cURL but again you can do this from anything including a web browser. You'll need to change the name to the one you chose and the secret to the one you got just now.

curl 'https://api.pi-dns.me/v1/beta/update?name=myname&secret=81f07d49-f03a-450f-b0d7-99a0217b075f'

There are three responses you are likely to get. The first is a success code if the entry has been updated:

{"response": "Updated", "statusCode": 200}

The second response is if you have tried to update a name that does not exist.

{"response": "Not Found", "statusCode": 404}

The third response is if you have not got your secret key right or are trying to update someone else's name. Check your details and maybe create a new name of your own.

{"response": "Not Authorised", "statusCode": 401}

You will need to update your IP at least once a day, this is because any names not updated at least once a day will be deleted. The best way to so this on a Raspberry Pi is to set up a cron job to run the command. To do this just run crontab -e and paste the line below at the bottom of the cron list then save and exit.

*/15 * * * * /usr/bin/curl 'https://api.pi-dns.me/v1/beta/update?name=myname&secret=81f07d49-f03a-450f-b0d7-99a0217b075f' >/dev/null 2>&1