desired subdomains are assigned to deployed services #110

Open
opened 2025-02-11 14:26:05 +01:00 by kiara · 2 comments
Owner

As a Fediversity user,
I want to use selected sub-domains for my services,
so that I may configure the URLs to my visitors' needs.

implementation notes

clients / utils
v client / > server hickory acme bind technitium powerdns eon knot deSEC commercial DNS providers
octodns many
DNS control many
eilean (example) none

| godns | | | | | |

  • judgement: given this compatibility matrix, the path of least resistance to automating DNS would seem server bind (optionally with client octodns (thru TF / NixOS-DNS)) or (given a nix package/module, possibly thru ngipkgs) deSEC.
  • as an alternative to interfacing with upstream DNS providers, we could initially presume hosting providers would have registrar status (pilot with ProcoliX: EURid registrar), significantly reducing the number of potential upstreams to interface with.
    • EURid has a €2500 signup fee, lacks public API documentation, and ProcoliX isn't a registrar with them so far, tho EURid's interface is like EPP
  • metaregistrar (dutch commercial entity, TF DNS challenge 1 2) was suggested by procolix as a registrar that serves many registries, for short-term demo purposes (with long-term intent to instead do an open-source registrar connecting many registries). (for what it's worth, this registrar appears not currently suggested by any of our listed DNS clients.) - seems not as convenient so far as the automation already available for the below
  • opusdns (DE, not for individual consumers) offers a TF provider for domain registration, while for DNS seeming covered by octodns. as such, this might make for one easy way for us to get going in an automation-friendly manner.

c.f.:

open questions

  • should we integrate with external registrars / DNS providers (e.g. openprovider)?
**As** a Fediversity user, **I want** to use selected sub-domains for my services, **so that** I may configure the URLs to my visitors' needs. ## implementation notes <details> <summary> clients / utils </summary> - 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) - given an API spec may generate client [for python](https://github.com/openapi-generators/openapi-python-client) - 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) </details> | v client / > server | hickory | acme | **bind** | technitium | powerdns | [eon](https://ryan.freumh.org/eon.html) | knot | deSEC | commercial DNS providers | |-|-|-|-|-|-|-|-|-|-| | **[octodns](https://octodns.readthedocs.io/en/latest/#providers)** | | | ✅ | | ✅ | | ❌ | ✅ | many | | [DNS control](https://docs.dnscontrol.org/provider/index) | | | [✅](https://docs.dnscontrol.org/provider/bind) | | [✅](https://docs.dnscontrol.org/provider/powerdns) | | | | many | | [eilean](https://github.com/RyanGibb/eilean-nix/tree/main/modules/services/dns) ([example](https://github.com/RyanGibb/eilean-nix/blob/38d1e94d7307d41ad0fbce0cf719af581d4c8696/modules/mailserver.nix#L75-L102)) | | | ✅ | | | ✅ | | | ❌ none | ~~| [`godns`](https://github.com/TimothyYe/godns#supported-dns-providers) | | | | | |~~ - judgement: given this compatibility matrix, the path of least resistance to automating DNS would seem server `bind` (optionally with client octodns (thru TF / NixOS-DNS)) or (given a nix package/module, possibly thru ngipkgs) deSEC. - ~~as an alternative to interfacing with upstream DNS providers, we could initially presume hosting providers would have registrar status (pilot with ProcoliX: [EURid](https://eurid.eu/) registrar), significantly reducing the number of potential upstreams to interface with.~~ - ~EURid has a €2500 signup fee, lacks public API documentation, and ProcoliX [isn't a registrar](https://eurid.eu/en/get-your-eu/find-a-registrar/?country=NL&retailer=true) with them so far, tho EURid's interface [is like EPP](https://claude.ai/share/d07077db-805c-4270-b6f0-276340fda40d)~ - ~[metaregistrar](https://metaregistrar.com/apidocs/) (dutch commercial entity, TF DNS challenge [1](https://registry.terraform.io/providers/vancluever/acme/latest/docs/guides/dns-providers-metaregistrar) [2](https://registry.terraform.io/providers/binlab/acme/latest/docs/guides/dns-providers-metaregistrar)) was suggested by procolix as a registrar that serves many registries, for short-term demo purposes (with long-term intent to instead do an open-source registrar connecting many registries). (for what it's worth, this registrar appears not currently suggested by any of our listed DNS clients.)~ - seems not as convenient so far as the automation already available for the below - [opusdns](https://www.opusdns.com/) (DE, not for individual consumers) offers a [TF provider](https://registry.terraform.io/providers/OpusDNS/opusdns/latest/docs/resources/domain) for domain registration, while for DNS seeming covered by **octodns**. as such, this might make for one easy way for us to get going in an automation-friendly manner. c.f.: - [selfhostblocks ticket](https://github.com/ibizaman/selfhostblocks/issues/63) ### open questions - should we integrate with external registrars / DNS providers (e.g. [openprovider](https://github.com/openprovider/api-documentation))?
kiara added this to the Fediversity project 2025-04-18 10:21:02 +02:00

This needs to be rewritten to a user story instead of being phrased in terms of implementation details. If I try imagining what it would be like, I don't see the difference to #109. Isn't all of this actually about being able to (register and then) select a DNS record before deployment?

This needs to be rewritten to a user story instead of being phrased in terms of implementation details. If I try imagining what it would be like, I don't see the difference to #109. Isn't all of this actually about being able to (register and then) select a DNS record before deployment?
kiara changed title from The deployment process informs the DNS service of the IP of provisioned VMs, so that the right subdomain can be assigned to it to desired subdomains are assigned to deployed services 2025-04-30 14:33:51 +02:00
kiara removed this from the Fediversity project 2025-06-10 19:07:00 +02:00
kiara added this to the Fediversity project 2025-11-04 19:34:50 +01:00
Author
Owner

a new idea suggested by @koen is to check up with eurid on whether they might have a testing environment available for us

edit: actually, that would not result in actual domains, so wouldn't really help to test more than just that one bit, rather than our whole application

a new idea suggested by @koen is to check up with eurid on whether they might have a testing environment available for us edit: actually, that would not result in actual domains, so wouldn't really help to test more than just that one bit, rather than our whole application
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
fediversity/fediversity#110
No description provided.