Files
mesh-catalog/modules/mailu
jschoubben 35ff67bda0
mesh/delivery-group group feat/774-l3-reland rejected: composed together: the checker's verdict at the members' heads (b48c90fea31f): integration: mesh-self-ch…
mesh/delivery closed: a newer head of the same pull request
mesh/check failed: integration: mesh-self-check/cmd/mesh-self-check.TestTheSelfCheckWholeRunsOnTheBus: the run answered {Run:doctor-1793351737-1 At:20…
Design 47's last milestones: the keeper, self-check, healers, hand-acts, provisioner, vault, artifact sweep, disk readings, credential forms (issues 774, 1952, 1953, 1954, 1955)
One commit with exactly the tree of the reviewed head 35b4509c0a, on main 12c2574c9d, so two compiled programs added and removed on the branch leave no trace in history (issue 1577).
2026-10-30 02:21:51 +01:00
..

mailu

Mail — Mailu, with its provisioner (the smtp provision) and tools, on the tool runtime.

Settings

A definition names no mesh (novox/hq ADR 0112, ADR 0155), so the values that are this installation's are settings on the assignment, settings set mailu <file>:

{"domain": "…", "sitename": "…", "website": "https://…", "proxy-address": "…"}

domain is the mail domain (also the provisioner's, for a consumer's address); sitename and website are shown by the web front; proxy-address is what REAL_IP_FROM trusts a real-IP header from — the address the proxy forwards with. The front's own hostname is the name of its web route, told to it by the mesh.

Mail client autoconfiguration

mailu-automx answers what mail clients ask for their settings (Thunderbird, Outlook, Apple) for the domains in AMX_MAIL_DOMAINS, naming the IMAP and SMTP servers and ports of mailu's environment (AMX_IMAP_ADDRESS, AMX_IMAP_PORT, AMX_SMTP_ADDRESS, AMX_SMTP_PORT). It is cmd/automx, a Go program of the standard library only in this module's go.mod (ADR 0480 clauses 1, 2, 9). It runs in the mirrored alpine image the route proxy's trust step runs, from the program-automx archive mounted read-only at /opt/mesh; the container is restarted with the archive and with mailu.env, which the program reads at each start. It keeps no database. The file the Python automx kept in data-automx is left where it is on the machine, not deleted by the mesh (ADR 0480 clause 10). The answers it gave before are the fixtures in cmd/automx/testdata/captured, with how they were taken (CAPTURED) and what the program answers differently (DIFFERENCES).

Files it does not know

Each directory or archive this module declares says how it treats a file it did not write (ADR 0422, ADR 0416).

  • ${dir:mesh-state}: everything in it is the program's; the mesh moves nothing out (ADR 0422 §2).
  • ${dir:state}: everything in it is the program's; the mesh moves nothing out (ADR 0422 §2).
  • ${dir:grants}: everything in it is the program's; the mesh moves nothing out (ADR 0422 §2).
  • the archive program-automx (${dir:state}/automx): everything in it is the program's; the mesh moves nothing out (ADR 0422 §2).
  • ${dir:data-certs}: everything in it is the program's; the mesh moves nothing out (ADR 0422 §2).
  • ${dir:data-data}: everything in it is the program's; the mesh moves nothing out (ADR 0422 §2).
  • ${dir:data-dkim}: everything in it is the program's; the mesh moves nothing out (ADR 0422 §2).
  • ${dir:data-mail}: everything in it is the program's; the mesh moves nothing out (ADR 0422 §2).
  • ${dir:data-mailqueue}: everything in it is the program's; the mesh moves nothing out (ADR 0422 §2).
  • ${dir:data-filter}: everything in it is the program's; the mesh moves nothing out (ADR 0422 §2).
  • ${dir:data-clamav}: everything in it is the program's; the mesh moves nothing out (ADR 0422 §2).
  • ${dir:data-redis}: everything in it is the program's; the mesh moves nothing out (ADR 0422 §2).
  • ${dir:data-webmail}: everything in it is the program's; the mesh moves nothing out (ADR 0422 §2).
  • ${dir:data-dav}: everything in it is the program's; the mesh moves nothing out (ADR 0422 §2).
  • ${dir:data-fetchmail}: everything in it is the program's; the mesh moves nothing out (ADR 0422 §2).
  • ${dir:data-overrides-nginx}: everything in it is the program's; the mesh moves nothing out (ADR 0422 §2).
  • ${dir:data-overrides-dovecot}: everything in it is the program's; the mesh moves nothing out (ADR 0422 §2).
  • ${dir:data-overrides-postfix}: everything in it is the program's; the mesh moves nothing out (ADR 0422 §2).
  • ${dir:data-overrides-rspamd}: everything in it is the program's; the mesh moves nothing out (ADR 0422 §2).
  • ${dir:data-overrides-roundcube}: everything in it is the program's; the mesh moves nothing out (ADR 0422 §2).