master branch status | |
GitHub status | |
Versions | 0.1.0.dev0 |
Info | Hover DNS Updater for Dynamic IP. See GitHub for the latest source. |
Author | Mark Silva, based on a script from GitHub by Andrew Barilla |
hover-dns-updater will update the Hover DNS entries for one or more DNS records based on the external IP address. hover-dns-updater can do this one time or can run continuously checking after a certain amount of time.
-
Python 3
-
pip3
- Linux - sudo apt-get install -y python3-pip
- Windows - python -m ensurepip --upgrade
-
Installed packages
- requests
- Linux - sudo pip3 install --upgrade requests
- Windows - pip install --upgrade requests
- requests
- Login to Hover.com
- Enable 2FA and manually setup mobile app with the secret key. Save secret key as configuration value 'toptkey'. ** Note: remove spaces from key displayed at end of text "If you can't scan the code, enter this secret key manually: xxxx xxxx xxxx xxxx xxxx xxxx xx" (https://help.hover.com/hc/en-us/articles/217282267-Enable-two-step-sign-in-on-your-Hover-account)
- Login to Hover.com
- In the same browser go to https://www.hover.com/api/domains/YOURDOMAIN.COM/dns replacing YOURDOMAIN.COM with the domain you want to update
- This will return a json file. If you use Firefox, this will be nicely formatted.
- In the "entries" list, look for the DNS records you want to keep up to date and make a note of the associated "id"s. They should look something like "dns1234567"
-
Copy INSTALL.sh, hover-dns-updater.service, and hover-dns-updater.py to a folder on you Ubuntu system
-
./INSTALL.sh
-
This will install and enable, but not start, the hover-dns-updater service
-
sudo nano /etc/hover-dns-updater/hover-dns-updater.json (or use the editor of your choice)
- Fill in your hover username and password
- Add the dns ids you noted above
- Optional - change None to the log file name
- Optional - change poll time, in seconds. Default is 10 minutes
- When running as an Ubuntu service, the service value in the confg file is ignored.
-
After configuration file is updated, start the service sudo service hover-dns-updater start
-
Option - Verify service started correctly sudo service hover-dns-updater status
docker build -t hover-dns-updater . ; docker tag hover-dns-updater texasaggie97/hover-dns-updater:latest ; docker push texasaggie97/hover-dns-updater
I am using RancherOS to host and manage Docker running in a lightweight VM on FreeNAS. Here are the docker-compose.yml and rancher-compose.yml to easily recreate the container.
version: '2' volumes: logs: external: true driver: rancher-nfs services: alarmserver: image: texasaggie97/alarmserver environment: ALARMCODE: "1234" CALLBACKURL_BASE: "https://graph.api.smartthings.com/api/smartapps/installations" CALLBACKURL_APP_ID: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" CALLBACKURL_ACCESS_TOKEN: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" LOGFILE: "/logs/docker-alarmserver.log" ENVISALINKHOST: "192.168.0.149" stdin_open: true working_dir: /alarmserver volumes: - logs:/logs tty: true ports: - 8111:8111/tcp command: - python - alarmserver.py labels: io.rancher.container.pull_image: always hover-dns-updater: image: texasaggie97/hover-dns-updater environment: USERNAME: "username" PASSWORD: "password" DNS1: "dns00000000" DNS2: "dns00000001" LOGFILE: "/logs/docker-hover-dns-updater.log" stdin_open: true working_dir: /hover-dns-updater volumes: - logs:/logs tty: true command: - python - hover-dns-updater.py - --service labels: io.rancher.container.pull_image: always
version: '2' services: alarmserver: scale: 1 start_on_create: true hover-dns-updater: scale: 1 start_on_create: true
Contributions are welcome!
To report a bug or submit a feature request, please use the GitHub issues page.
hover-dns-updater is licensed under an GPL-style license (see LICENSE). Other incorporated projects may be licensed under different licenses.