This article is born because Bunny.net does not support Dynamic DNS (for the moment?), I contacted the support but I received a negative result:
I wanted to migrate all my domain from OVH/Cloudflare to Bunny, because their DNS performances are on the top chart (they are the best?), it's free, the UI/UX of the admin panel is clean, and MOST OF ALL: They got rabbits EVERYWHERE.
However there is a big problem: to access my Synology NAS through a custom domain name, DDNS is required because:
After experimenting, I created a Node script executed regularly on my NAS that:
First, make sure you have loaded your domain on your Bunny admin interface, if not, here is the setup link:
https://dash.bunny.net/dns/zones/add
Create a A
Record and set the public IP of your Synology NAS. If the IP is not correct, it will be corrected with the Node Script on the next section:
In my case, I have a subdomain photos.domain.com
pointing to my Synology NAS. The Value
column shows the IP you entered (in my case I prefer to keep it private :D).
Finally on your Bunny account, get you API key, it will be use to update the IP of your A
Record:
https://dash.bunny.net/account/settings
Synology NAS has Node already installed, so I decided to create a Node Script instead of a Bash script, copy the following file to the directory of your choice. Personnally, I copied to /volume1/home/admin/ddns-bunny.js
:
https://github.com/steevepay/ddns-bunny-synology/blob/v1.0.0/ddns-bunny.js
Let's create a new Task executing the Script regularly, like every minutes.
Control Panel
application > Click on Task Scheduler
Create
> Schedule Task
> User Defined Script
DDNS Bunny
and select a User, like the admin.
Schedule
, and ensure the Run on the following day
is selected, and set at Daily
.
Schedule
, set the start time at midnight, and check Continue running the same day
. Set the Repeat into to 1 minutes
and Last Run Time
to 23h55
.
"User Defined Script"
input the following command. All the command must be on one single line, otherwise the API KEY and the URL won't be retrieved by the script: BUNNY_ACCESS_KEY="" NAS_URL="photos.domain.com" node /volume1/homes/admin/ddns-bunny.js
. Write your Bunny API key under the first double quotes for the environment variable BUNNY_ACCESS_KEY
. Then write the domain of your NAS between the second double quotes for the env NAS_URL
, without https://. Finally the command execute the Script with Node.
OK {YOUR PUBLIC IP}
. If something went wrong, it should print an error message detailing the issue.
/volume1/homes/admin/
, and you see a JSON file named DDNS_BUNNY_CONFIG.json. It is used to save: your current public IP, and metadata to requests the Bunny API.Now Bunny.net supports DDNS by simply requesting their DNS API, and I can migrate all my domains to Bunny, youhouuu 🐰🎉
Источник: dev.to
Наш сайт является информационным посредником. Сообщить о нарушении авторских прав.
synology nas javascript tutorial