Serve PACC on the mail domain
Deploy instance / deploy (push) Successful in 1s
Lint and reload / lint (push) Successful in 1s
Lint and reload / reload (push) Successful in 0s

Stalwart implements PACC - /.well-known/user-agent-configuration.json,
one JSON document advertising JMAP, IMAP, SMTP, CalDAV, CardDAV, WebDAV,
ManageSieve and how to authenticate. Unlike autoconfig and Autodiscover
it is defined to be fetched from the mail domain itself rather than from
a guessed subdomain, so the apex is exactly where it belongs, and it was
only reachable at mail.<domain>. /.well-known/mail-v1.xml goes with it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015GeH3y8fwTaTudaD88P57o
This commit is contained in:
Bendik Lynghaug
2026-10-07 10:43:16 +02:00
co-authored by Claude Opus 5
parent aeef98389a
commit 82744011ed
+11
View File
@@ -123,6 +123,17 @@ jobs:
# answers for; it never sees a request for the bare domain
# otherwise. (MTA-STS cannot be served here - RFC 8461 requires
# mta-sts.<domain> - so it keeps its own record and route.)
# PACC, the standard that replaces guessing at hostnames: one JSON
# document on the mail domain itself advertising every protocol,
# which is why it belongs here and not on a subdomain. Stalwart
# generates it, and /.well-known/mail-v1.xml beside it.
@pacc path /.well-known/user-agent-configuration.json /.well-known/mail-v1.xml
handle @pacc {
reverse_proxy stalwart:8080 {
header_up Host mail.{$DOMAIN}
}
}
handle /.well-known/autoconfig/* {
reverse_proxy stalwart:8080 {
header_up Host mail.{$DOMAIN}