Files
mesh-catalog/modules/mailu/README.md
T
jschoubben 70500c21a8 Run mailu's automx as a Go program mounted into the mirrored alpine image, answering as captured but naming the IMAP server (issues 1631, 1632, 1700, 1701, ADR 0480)
Python automx2, its database and its automx_rows tool go; the container keeps its name, network and port, gains an http health.
2026-10-21 19:29:05 +02:00

3.9 KiB

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).