Python automx2, its database and its automx_rows tool go; the container keeps its name, network and port, gains an http health.
55 lines
3.9 KiB
Markdown
55 lines
3.9 KiB
Markdown
# 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>`:
|
|
|
|
```json
|
|
{"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).
|