A line under the cards says where the rest is: detailed metrics, the
delivery queue, logs and server settings are in Stalwart's own
administration. It links there when the operator sets STALWART_ADMIN_URL,
and stays plain text otherwise, because STALWART_URL is how this server
reaches Stalwart and is often an address no browser can open.
Several servers: a servers file entry may now be an object,
{"url": ..., "adminUrl": ...}, and a session routed to that server gets its
adminUrl. A routed domain without one gets no link rather than the default
server's, for the same reason routing never falls back. The URL is sent
only to a session that may administer.
The shipped example file stopped the server at startup: its "_comment"
key was read as a domain and refused as not a URL, while the test that
checks the example skipped it. Keys starting with an underscore are notes
now -- no mail domain starts with one -- and the example is also loaded
through the real parser in a test, so the two cannot disagree again.
Two new strings, in all nine catalogues.
32 lines
1.5 KiB
JSON
32 lines
1.5 KiB
JSON
{
|
|
"_comment": [
|
|
"Optional: which Stalwart a domain signs in to.",
|
|
"",
|
|
"STALWART_URL stays required and stays the default. This file only adds",
|
|
"domains that go somewhere else -- delete it and nothing changes.",
|
|
"",
|
|
"Point at it with STALWART_SERVERS_FILE=/etc/ihasmail/servers.json and mount",
|
|
"it read-only. Read once at startup, so editing it means restarting.",
|
|
"",
|
|
"A domain that is not listed here, and a bare username with no domain at",
|
|
"all, go to STALWART_URL. A domain that IS listed never falls back: if its",
|
|
"server is unreachable that sign-in fails, because falling back would",
|
|
"authenticate somebody against a server their domain was routed away from.",
|
|
"",
|
|
"Keys are lower-cased and stripped of a trailing dot when read. Malformed",
|
|
"JSON, a duplicate domain, or a value that is not an http(s) URL stops the",
|
|
"server at startup rather than failing quietly at somebody's sign-in.",
|
|
"",
|
|
"A value may instead be an object that also says where that server's own",
|
|
"administration is, for the link on ihasmail's Administration dashboard:",
|
|
"{\"url\": ..., \"adminUrl\": ...}. STALWART_ADMIN_URL is the same for the",
|
|
"default server. A listed domain without adminUrl gets no link, never the",
|
|
"default server's.",
|
|
"",
|
|
"Docs: https://docs.ihasmail.org/configure/#several-stalwart-servers"
|
|
],
|
|
|
|
"example.com": "https://mail.example.com",
|
|
"customer-b.test": { "url": "https://jmap.customer-b.test", "adminUrl": "https://admin.customer-b.test" }
|
|
}
|