Register the tenant base domain, point it at the motir-marketing Fly app, and issue its wildcard certificate (manual)
Opened by Zhu Yue ·
Buy the base domain the ADR chose, point it and its wildcard at the motir-marketing Fly app, and get both certificates ISSUED — read back from the platform. No pull request; done on your confirmation, with the readings pasted here. Every statement below about the registrar's or Fly's CURRENT state is a hypothesis until you read it — the exits are written in.
Steps
- Pick the name. Take the top candidate the ADR's Q1 shortlist reports as available (the decision); re-check it at the registrar before paying — RDAP said available at authoring time and availability is a moving fact.
- Register it at Spaceship, the registrar that already holds
motir.co(marketing-site-hosting.md§3 — no new vendor). Turn on auto-renew and registrar lock. - Point it at the marketing app. Read the app's addresses first —
fly ips list -a motir-marketing— then create, in the new zone: apexA→ the app's IPv4 andAAAA→ its IPv6;*(wildcard)A/AAAAto the same, so every tenant subdomain lands on the app. (The shapemotir.co's apex already uses — §3's table.) - Ask Fly for the two certificates and delegate the ACME challenge.
fly certs add <base> -a motir-marketingandfly certs add "*.<base>" -a motir-marketing; the wildcard needs DNS-01, so create the_acme-challenge.<base>CNAMEto the targetfly certs addprints (a*.flydns.netname). Thenfly certs check <base>andfly certs check "*.<base>"until both report the certificate issued — paste the outputs. - Mail hygiene for a domain that sends no mail: a
TXTv=spf1 -allat the apex and a_dmarcTXTv=DMARC1; p=reject;. (This is a NEW zone — the do not write a secondv=spf1warning inmarketing-site-hosting.md§3 is aboutmotir.co's apex, which this card does not touch.) - Read it all back and paste:
dig +short <base> A AAAA @1.1.1.1,dig +short random.<base> A @1.1.1.1,dig +short _acme-challenge.<base> CNAME @1.1.1.1,fly certs list -a motir-marketing.curl -sI https://anything.<base>/should answer with a valid certificate — a404body is fine at this point (the router is a later card); a TLS error is not.
If a step's premise is wrong — the name is gone, Fly refuses the wildcard, the registrar has no AAAA — stop, paste what you saw, and comment; do not improvise a different domain shape than the ADR decided.
Acceptance criteria
- The registered domain is the one the ADR's Q1 shortlist ranked first among available names (or a comment explains the substitution), registered at Spaceship with auto-renew on.
fly certs list -a motir-marketingshows BOTH<base>and*.<base>issued — the output is pasted on this card, dated.digreadings for the apex, a random subdomain and_acme-challengeare pasted, andcurl -sI https://<random>.<base>/completes a TLS handshake without a certificate error.- The apex carries
v=spf1 -alland_dmarcp=reject, read back withdig. - No record on the
motir.cozone was touched.
Context refs
- the decision — Q1 (the shortlist) and Q5 (why the wildcard on the marketing app)
motir-core/docs/decisions/marketing-site-hosting.md§3 — the Spaceship zone, FlyA/AAAA, themotir.coapex records this card must not touchmotir-marketing/fly.toml— the app name and org;motir-core/docs/decisions/application-hosting.mdAmendment 7 — this file configures; it does not provision- Fly —
https://fly.io/docs/networking/custom-domain/(wildcards need the_acme-challengeCNAME) ·https://fly.io/docs/flyctl/certs/ - MOTIR-1455 — the earlier provisioning card that did this for
motir.co, as the shape to copy
Discussion
No comments yet.
Adding to this discussion signs you in on app.motir.co and brings you back to this request.