Is a small little executable that will update a domain record of your choice that is hosted by TransIP. Run it via cron to keep your DNS record up to date.
This project is heavily inspired by go-transip-dyndns
made by Jason Lentink. The inner working is similar. I used GoMods, updated to GoLang 1.15 and created binaries for more platforms and architectures (amongst others OpenBSD and FreeBSD).
- Create a access key for the API.
(Control panel > My Account > API)
- Add a label and press create.
- Save Key to a file.
e.g. /etc/dyndns-transip.key
Binaries are available for download in multiple formats
- Windows (i386, amd64)
- Linux (i386, amd64, armv6 arm64)
- MacOS (amd64)
- OpenBSD (i386, amd64, armv6 arm64)
- FreeBSD (i386, amd64, armv6 arm64)
Download them here.
One-liner for Linux
on amd64
$ curl -s https://api.github.com/repos/egbertp/dyndns-transip/releases/latest \
| jq -r '.assets[] | select(.browser_download_url | contains("linux_amd64")) | .browser_download_url' \
| xargs -n 1 curl -O -sSL
Move the binary to /usr/local/bin
$ chmod +x dyndns-transip_1.0.0_linux_amd64
$ sudo mv dyndns-transip_1.0.0_linux_amd64 /usr/local/bin/.
$ sudo ln -s /usr/local/bin/dyndns-transip_1.0.0_linux_amd64 /usr/local/bin/dyndns-transip
name: dyndns-transip.yaml
place the config file at /etc/dyndns-transip.yaml
.
optional, you can place the file in the directory where you execute the command.
username: "transip-username"
private-key: "/etc/dyndns-transip.key"
verbose: false
domain: "yourdomain.nl"
domain-entry: "subdomain"
domain-ttl: 60
$ chown root:wheel /etc/dyndns-transip.yaml
$ chmod 0644 /etc/dyndns-transip.yaml
Place the TransIP key in /etc/dyndns-transip.key
-----BEGIN PRIVATE KEY-----
(...........................)
-----END PRIVATE KEY-----
$ chown root:wheel /etc/dyndns-transip.key
$ chmod 0400 /etc/dyndns-transip.key
$ dyndns-transip create
$ dyndns-transip
DEBUG - Log level set to debug...
DEBUG - Found IP address. (198.51.100.53)
DEBUG - Update Record..
DEBUG - IP is unchanged...
INFO - Record is up to date subdomain.yourdomain.nl with ip 198.51.100.53.
For more info: dyndns-transip help
$ crontab -e
Add to crontab
*/15 * * * * /usr/local/bin/dyndns-transip
This tool has been created to compensate for the fact that my ISP does not provide me with a static IP address. There is no association with Transip.
$ git tag -a v1.0.0 -m "Production release"
$ git push --follow-tags
git tag
mini cheat sheet
$ git fetch --all # fetch all remote to local
$ git push --delete origin v0.8.1 # Remove tag remote
$ git tag --delete v0.8.1 # Remove tag local
- Cobra - Cobra is both a library for creating powerful modern CLI applications as well as a program to generate applications and command files.
- Viper - Viper is a complete configuration solution for Go applications including 12-Factor apps.
- GoReleaser - Release Go projects as fast and easily as possible!
A big thanks to all authors and contributors of these libraries and tools!