jlentink / go-transip-dyndns Goto Github PK
View Code? Open in Web Editor NEWEasy update your hostname hosted with TransIP to your dynamic address.
License: MIT License
Easy update your hostname hosted with TransIP to your dynamic address.
License: MIT License
Trying to install the tool, did the following steps, but am getting command not found error.
wget https://github.com/jlentink/go-transip-dyndns/releases/download/v1.0.3/go-transip-dyndns_Linux_x86_64.tar.gz
sudo tar xzvf go-transip-dyndns_Linux_x86_64.tar.gz
go-transip-dyndns validate
Now I have no idea how to proceed. Did I make a mistake or could you maybe point me to the standard procedure of installing these kind of binaries?
When the config does not exist, and you want to create a config with the command init
, it throws an FATAL:
FATAL - Error parsing config file. (While parsing config: (1, 1): parsing error: keys cannot contain ๏ฟฝ character)
When I run
docker-compose run --rm --entrypoint /usr/bin/go-transip-dyndns go-transip-dyndns -v verify
I get the error Error: unknown command "verify" for "go-transip-dyndns"
.
Create does work as expected.
Also, to start the daemon, the command should be (using docker-compose v3.8):
docker-compose up -d go-transip-dyndns
But you now have it written in the readme as:
docker-compose up go-transip-dyndns -d
I have IPv6 enabled, On test-ipv6.com I get 10/10. When I curl an IPv6 only domain using the machine that runs the docker container I get a response just fine.
Somehow the function to retrieve the IPv6 returns an IPv4 address. The logging around that function still mentions IPv4 in it's hard coded message too :)
I tried looking at the code but I am not familiar with go. I'll try some more.
Got it running for my domains in a Synology docker. Works great.
But I also have a DNS spf txt record like: "v=spf1 ip4:IP_ADDRESS ~all". Which I also would like to update to the new address if possible. Is that something that is build in in this tool? \
Hi,
for spf I use a txt record. In this record both the IP4 and the IP6 address should be defined.
That apparently is not that easy: I get a TXT file with the IP4 twice in there.
The rule: ...ip4:{{.IPv4}} ip6:{{.IPv6}}....
The result: ...ip4://ip4 address// ip6://ip4 address//
Am I doing something wrong here?
Update: the original title of the issue reported issues with updating the @ entery in DNS, but I changed it after finding out the actual issue at hand. See this message for the TL;DR
I have setup transip-dyndns (latest version) and a configuration file with these records to update:
[[record]]
hostname = "makaay.nl"
entry = "here-is"
ttl = 60
type = "A"
[[record]]
hostname = "makaay.nl"
entry = "@"
ttl = 60
type = "A"
When the target records already contain the correct IP addresses as content, things are peachy:
DEBUG - Log level set to debug...
DEBUG - Found IP address. (145.144.245.6)
DEBUG - DNS [A] record has not been changed.
2024-02-22 15:01:08 - ๐ Record still up to date: here-is.makaay.nl [A]
2024-02-22 15:01:08 - ๐ Record still up to date: @.makaay.nl [A]
However, when my IP address changes, updating the @
entry fails.
Here is what happens if I update the @
record and then run the program (last line with added line break for readability):
DEBUG - Log level set to debug...
DEBUG - Found IP address. (145.144.245.6)
DEBUG - DNS [A] record has not been changed.
2024-02-22 15:06:13 - ๐ Record still up to date: here-is.makaay.nl [A]
2024-02-22 15:06:13 - โ Could not update the record to update @.makaay.nl [A] -
Could not find match for DNS entry '@ 60 A'
This looks like an awesome little tool. I got it to work (mostly) on my Synology NAS.
For some reason the cronjob won't work. So I thought if I could add a bash file to the task scheduler (adding the link to the binary directly gives the error that it is not an executable file) it might work. However I can't figure out how to make the bash file. Do you have any pointers?
Thanks in advance!
Hi,
(English as not-dutch speakers may also read this)
First a big thank you for this script, it is REALLY useful!
I ran into the below:
โ Could not update the record to update @.<domain.nl> [TXT] - template: content:1:35: executing "content" at <.IP4>: can't evaluate field IP4 in type transipClient.recordContent
my config:
[[record]]
hostname = "<domain.nl>"
entry = "@"
ttl = 60
type = "TXT"
content = "v=spf1 a:mx a:mail.<domain.nl> ip4:{{.IP4}} ip6:{{.IP6}} ~all"
Am I doing something wrong here, or is this a parsing issue in the code?
thanks,
Hendrik-Jan
I would like to run this on my Unifi USG, which has a MIPS64 architecture:
admin@USG:~$ uname -srm
Linux 3.10.107-UBNT mips64
Could you also build a MIPS64 release?
I currently have 2 TXT records with "@" as name for the domain.
I only need to update one of them but I am guessing that because I have 2, the update will not work.
The error message is:
โ Could not update the record to update @..nl [TXT] - Could not find match for DNS entry '@ 1 TXT'
Is there any way around this? Both of the entries are for the full domain. one of the 2 is this "google domain verification".
thanks.
Hi first I want to thank you for this awesome tool.
Second I like the idea of using this tool to automatically update the A record to the correct IP. But I also like to see support for multiple domains. I have 3 domains but when I add them double I can't run it.
The only workaround is to create a directory and run multiple programs alongside.
Would be great to see support for that.
Script can't get the public IP Address from https://www.ipify.org API.
When running I encounter:
FATAL - Error getting IP address. (Get "https://api6.ipify.org?format=json": dial tcp [2607:f2d8:4010:c::2]:443: connect: network is unreachable)
Looking at https://github.com/jlentink/go-transip-dyndns/blob/master/internal/gipify/get.go on line 19, api is https://api6.ipify.org?format=json
but https://www.ipify.org reference tells either api.ipify.org
or api64.ipify.org
Zojuist go install
gedaan en go-transip-dyndns
valt te draaien. Echter liep ik tegen meerdere zaken aan:
go-transip-dyndns init
moet draaien om een configuratie bestand te maken. Dit bestand wordt nooit gemaakt. In plaats daarvan geeft het een error:FATAL - Config File "go-transip-dyndns" Not Found in "[/etc /etc/go-transip-dyndns.d /home/ubuntu]"
Als ik dan de file handmatig aanmaak en init
nog een keer draai krijg ik de error โ Config file already exists. exiting... Remove the old one to write a fresh one.
@
wil niet werken. Validate geeft een goede uitkomst. Ik zal beiden even hier neerzetten.Output van update
(met fake IP natuurlijk, want die gooi ik maar niet op Github)
DEBUG - Log level set to debug...
DEBUG - Found IP address. (799.788.777.766)
โ Could not update the record to update @.somedomain.nl [A] - Error setting Dns Entries
Output van validate
DEBUG - Log level set to debug...
- Verify access to API.
๐ Connection successful.
- Verify IP fetch
DEBUG - Found IP address. (799.788.777.766)
๐ IPv4 fetch successful - 799.788.777.766.
๐ IPv6 disabled.
- Verify access to domain(s)
๐ Found domain: somedomain.nl
Renewal date: 2023-01-24 00:00:00 +0100 CET
DEBUG - Domain: {Tags:[] AuthCode:blablabla CancellationDate:0001-01-01 00:00:00 +0000 UTC CancellationStatus: IsDNSOnly:false IsTransferLocked:false IsWhitelabel:false Name:somedomain.nl RegistrationDate:2022-01-24 00:00:00 +0100 CET RenewalDate:2023-01-24 00:00:00 +0100 CET} - Verify target domain record(s)
DEBUG - Config record: {Hostname:somedomain.nl Entry:@ Content: TTL:60 Type:A}
DEBUG - Record: {Name:@ Expire:60 Type:A Content:37.97.254.27}
๐ Found record: @.somedomain.nl (A)
DEBUG - Record found details: {Hostname:somedomain.nl Entry:@ Content: TTL:60 Type:A}
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.