main branch status | |
GitHub status | |
Versions | 1.0.1 |
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 |
lmann99 | Kept it running while I did not have access to github and added 2FA support |
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.
I lost access to my GitHub account and they were not able to help me recover
it. The old account has been renamed texasaggie97-zz
and I have back
texasaggie97
. Given this though, the original repo name has been retired
and cannot be used, so I have renamed the repo to hover-dns-updater-new
:(
-
Python 3.10
-
pip
- Linux -
sudo apt-get install -y python3-pip
- Windows -
python -m ensurepip --upgrade
pip install -U pip
- Linux -
-
Poetry
pip install -U poetry==1.8.2
poetry install
- this will create the poetry venv with all dependencies installed
- 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 texasaggie97/hover-dns-updater:vX.X.X ; docker push texasaggie97/hover-dns-updater
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: hover-dns-updater: image: texasaggie97/hover-dns-updater environment: USERNAME: "username" PASSWORD: "password" TOPTKEY: "secret code" 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!
poetry run black .
- linter, may update formatting if requiredpoetry run flake8
poetry run pytest
- only test currently is a simple one that will pass if the file is loadable
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.