Do I need a second domain to run my own authoritative dns server?
I have a static ip (lets say 142.251.208.110).
I own the domain: website.tld
My registrar is godaddy.
If I want to change my nameserver godaddy won't allow me to enter a static ip.
It wants a hostname.
I observed that many use ns1.website.tld and ns2.website.tld.
I don't understand how this can work because ns1.website.tld would be served by my dns server which is not yet known by others.
Do I need a second domain like domains.tld where I use the registrars dns server for serving ns1.domains.tld which I can then use as the nameserver for website.tld?
I would like to avoid the registrars nameserver and avoid getting a second domain just for dns.
The thing you want is "glue records" the upper level server would serve ns1.example.com (this is an approved domain for example use, better to use example.com than making your own example up) as the authoritative name server. Then provide the glue record which says "ns1.example.com is at IP address X".
It should ask for IP addresses as well as hostname. Otherwise they only assumed people will "host" their domain in another hosted, as opposed to self-hosting.
In that case (and in any other case) change your registrar to someone else who supports glue records.
I just switched to porkbun. Saves me about 20EUR per year.
Thanks for the tip.
I missed the keyword "glue records". Ultimately I managed to get my dns server to work but decided against using it for now as the acme plugin is not able to do what I want. https://github.com/mariuskimmina/coredns-tlsplus/issues/2
You'll need to register your apex domain with a registrar and then check the option to use custom name servers. The only subdomains you'll need to configure are the glue records for your ns1 and ns2 name servers.
I don't use godaddy, so I'm only guessing here. Have you tried to enter the name (even though there is no way it would find them) and then see if it figures out it can't look them up and maybe then it'll prompt for an IP instead?