Have a DNS service running to allow users to tie services to their own domain #104

Open
opened 2025-02-11 12:24:21 +01:00 by kiara · 0 comments
Owner

implementation notes

if we may put off related front-ends until #350, we should be able to handle DNS using Nix options such as NixOS-DNS, including for the purpose of migration (#100).

v client / > server hickory acme bind technitium powerdns
octodns
DNS control ?

| godns | | | | | |

given this compatibility matrix, the path of least resistance to automating DNS would seem server bind (optionally with client octodns (thru TF / NixOS-DNS)).

c.f.:

## implementation notes - [dns servers](https://search.nixos.org/packages?channel=unstable&from=0&size=50&sort=relevance&type=packages&query=dns) seem ([compared](https://en.wikipedia.org/wiki/Comparison_of_DNS_server_software#Feature_matrix)): - [`powerdns`](https://github.com/PowerDNS/pdns) aka [`pdns`](https://github.com/NixOS/nixpkgs/blob/master/pkgs/by-name/pd/pdns/package.nix) (GPL-2.0, C++, stringly [module](https://search.nixos.org/options?channel=unstable&show=services.pdnsd.serverConfig&query=services.pdnsd)), front-end [powerdns-admin](https://github.com/PowerDNS-Admin/PowerDNS-Admin) - procolix currently has most experience operating this - [`hickory-dns`](https://github.com/hickory-dns) (MIT/Apache, rust, structured [module](https://search.nixos.org/options?channel=unstable&show=services.hickory-dns.settings.zones.*.file&query=services.hickory-dns)) - [`acme-dns`](https://github.com/joohoi/acme-dns/) (MIT, go, semi-stringly [module](https://search.nixos.org/options?channel=unstable&show=services.acme-dns.settings.general.records&query=services.acme-dns)) - [`bind`](https://gitlab.isc.org/isc-projects/bind9) (Apache, C, structured [module](https://search.nixos.org/options?channel=unstable&show=services.bind.zones&query=services.bind), [wiki](https://wiki.nixos.org/wiki/Bind)) - [`technitium-dns-server`](https://github.com/TechnitiumSoftware/DnsServer) (GPL-3.0, python, simple [module](https://search.nixos.org/options?channel=unstable&from=0&size=50&sort=relevance&type=packages&query=services.technitium-dns-server)) - [`core-dns`](https://github.com/coredns/coredns) (stringly? [module](https://search.nixos.org/options?channel=unstable&show=services.coredns.config&query=services.coredns)) - [`tinydns`](https://github.com/projectdiscovery/tinydns) (stringly [module](https://search.nixos.org/options?channel=unstable&show=services.tinydns.data&query=services.tinydns)) - clients - [octodns](https://github.com/octodns/octodns) ([wiki](https://wiki.nixos.org/wiki/Octodns), [providers](https://octodns.readthedocs.io/en/latest/#providers), [TF](https://registry.terraform.io/providers/topicusonderwijs/octodns/latest/docs)): may ([without TF](https://github.com/Janik-Haag/NixOS-DNS/issues/5)) be configured using [NixOS-DNS](https://janik-haag.github.io/NixOS-DNS/) ([source](https://github.com/janik-haag/NixOS-DNS/)) - [DNS control](https://dnscontrol.org/) ([wiki](https://wiki.nixos.org/wiki/Dnscontrol), [providers](https://docs.dnscontrol.org/provider/index)) - ~~[clan dyndns module](https://github.com/clan-lol/clan-core/blob/main/clanServices/dyndns/default.nix)~~: tied to their service - [`godns`]() ([module](https://search.nixos.org/options?channel=unstable&show=services.godns.settings&query=services.godns), [providers](https://github.com/TimothyYe/godns#supported-dns-providers)) - utilities - [`dns.nix`](https://github.com/nix-community/dns.nix): zone files - [nixcloud-webservices](https://github.com/nixcloud/nixcloud-webservices/tree/dns/modules/services/dns): [helpers to generate strings for a few resource records](https://discourse.nixos.org/t/nix-dns-a-nix-dsl-for-dns-zone-files/2466/5) if we may put off related front-ends until #350, we should be able to handle DNS using Nix options such as `NixOS-DNS`, including for the purpose of migration (#100). | v client / > server | hickory | acme | bind | technitium | powerdns | |-|-|-|-|-|-| | [octodns](https://octodns.readthedocs.io/en/latest/#providers) | | | ✅ | | ✅ | | [DNS control](https://docs.dnscontrol.org/provider/index) | | | [✅](https://docs.dnscontrol.org/provider/bind) | [?](https://github.com/StackExchange/dnscontrol/pull/3218) | [✅](https://docs.dnscontrol.org/provider/powerdns) | ~~| [`godns`](https://github.com/TimothyYe/godns#supported-dns-providers) | | | | | |~~ given this compatibility matrix, the path of least resistance to automating DNS would seem server `bind` (optionally with client octodns (thru TF / NixOS-DNS)). c.f.: - [selfhostblocks ticket](https://github.com/ibizaman/selfhostblocks/issues/63)
kiara added a new dependency 2025-02-11 12:24:39 +01:00
kiara removed a dependency 2025-02-11 13:32:42 +01:00
kiara added a new dependency 2025-02-11 13:33:07 +01:00
kiara removed a dependency 2025-02-11 15:15:38 +01:00
kiara added a new dependency 2025-02-11 15:16:01 +01:00
kiara added the
estimation low: <2h
label 2025-02-13 16:26:02 +01:00
hans was assigned by kiara 2025-02-13 16:26:41 +01:00
kiara added the
component: fediversity panel
label 2025-02-13 16:44:21 +01:00
kiara added a new dependency 2025-04-02 08:47:21 +02:00
kiara added this to the Fediversity project 2025-04-18 10:20:55 +02:00
kiara added the
type: user story
label 2025-05-01 12:20:32 +02:00
hans was unassigned by kiara 2025-05-01 16:29:04 +02:00
kiara added a new dependency 2025-05-01 16:29:14 +02:00
kiara added
type: task
and removed
type: user story
labels 2025-05-01 16:29:48 +02:00
kiara added a new dependency 2025-05-01 16:30:14 +02:00
kiara removed the
estimation low: <2h
label 2025-05-16 10:25:25 +02:00
kiara removed this from the Fediversity project 2025-06-10 19:07:04 +02:00
kiara removed the
component: fediversity panel
label 2025-09-24 11:39:47 +02:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Blocks Depends on
#200 reproduce DNS VM
fediversity/fediversity
Reference: fediversity/fediversity#104
No description provided.