Skip to content

feat(dkim): publish DKIM as a CNAME (dns.dkim_cname_domain)#3

Merged
thib-d merged 1 commit into
mainfrom
feat/dkim-cname
Jul 3, 2026
Merged

feat(dkim): publish DKIM as a CNAME (dns.dkim_cname_domain)#3
thib-d merged 1 commit into
mainfrom
feat/dkim-cname

Conversation

@thib-d

@thib-d thib-d commented Jul 3, 2026

Copy link
Copy Markdown

Implements #2 — DKIM via CNAME.

When dns.dkim_cname_domain is set (e.g. dkim1.startuppack.eu), a sending domain uses a short CNAME at <selector>._domainkey.<domain><dkim_identifier>.<dkim_cname_domain> instead of pasting the raw key; the key TXT is hosted on our side. Verification is unchanged (the TXT lookup follows the CNAME).

  • dns.dkim_cname_domain config (optional; TXT mode when unset)
  • Domain#dkim_cname? / #dkim_cname_value
  • setup view + API v2 serialize expose the CNAME
  • Verified end-to-end: CNAME → hosted key TXT, dns_check returns dkim=OK.

Closes #2

Adds an option to let a sending domain use a short CNAME for DKIM instead of
pasting the full key. When dns.dkim_cname_domain is set (e.g.
dkim1.startuppack.eu), the DKIM record shown in the setup UI and returned by
API v2 becomes a CNAME at <selector>._domainkey.<domain> pointing to
<dkim_identifier>.<dkim_cname_domain>, which hosts the key TXT on our side.

- config_schema: new dns.dkim_cname_domain (optional; TXT mode when unset)
- Domain#dkim_cname? / #dkim_cname_value helpers
- setup.html.haml renders a CNAME instruction when enabled
- API v2 domain serialize exposes dkim_cname + dkim_cname_value
- verification unchanged: check_dkim TXT lookup follows the CNAME to the key

Verified end-to-end: CNAME -> hosted key TXT, dns_check returns dkim=OK.

Closes #2

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
@thib-d
thib-d merged commit 3890fdc into main Jul 3, 2026
3 of 4 checks passed
@thib-d
thib-d deleted the feat/dkim-cname branch July 3, 2026 23:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

DKIM via CNAME: allow a CNAME record instead of pasting the raw key

2 participants