From 7ef7f75246a86903bbb5ce8f4b3ac14d5455907a Mon Sep 17 00:00:00 2001 From: Mix Date: Tue, 22 Sep 2026 15:24:53 +0300 Subject: [PATCH] release: 1.9.2: Review pass: port-25 milters, DMARC validation, rate-limit fix MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Review pass over `1.4.0`…`1.9.1`: port 25 no longer shares the submission milter chain, DMARC reports are validated before they are stored, and the auto rate limit is correct for a non-default level-1 window. Schema migration `0010` (index only). Upgrading is a tag bump. Added: - SQLite migration `0010_send_log_app_login_index.sql` — - DMARC aggregate reports are accepted as **zip** as well as gzip or plain XML - e2e: `checkPort25ConfigCombinations` regenerates the Postfix configuration Changed: - README hero line and a **Positioning** block in `docs/product.md` record the Fixed: - The setup account's password is hashed at bcrypt cost `12` like every other - Login/setup rate limiter: protecting blocked buckets from eviction is now - `postqueue -p` output is bounded to 4 MiB (the timeout alone left the size of - [schema-migrations.md](docs/schema-migrations.md): the schema section was - postqueue reader is now time-bounded: `postqueue -p` runs under a 5-second … (11 more in CHANGELOG) Changed: - [roadmap.md](docs/roadmap.md) now carries everything the 2026-08-19 code - Extracted `internal/configsafe` — the empty-value and forbidden-character - Build, deploy and migration comments no longer cite the archived - Dropped the `parseDomainRateLimitForm` / `parseAppRateLimitForm` pass-through - Extracted shared helpers: `internal/atomicfile` (atomic temp-write+rename) and … (7 more in CHANGELOG) Removed: - Unused legacy asset `docs/assets/icon.png` (superseded by the four brand SVGs - Plan documents for already-shipped features: `domain-stats-auto-ratelimit`, Full detail: CHANGELOG.md (1.9.2). --- .claude/launch.json | 11 + .cursor/rules/panel-design.mdc | 39 ++ .github/workflows/release.yml | 20 +- CHANGELOG.md | 346 ++++++++++++- Makefile | 5 +- README.md | 27 +- build/Dockerfile | 34 +- build/crashexit.py | 2 +- build/entrypoint.sh | 50 +- build/logrotate-loop.sh | 14 +- build/opendkim.conf | 4 +- build/postfix-config.sh | 110 +++-- build/postfix-wrapper.sh | 4 +- build/supervisord.conf | 34 +- cmd/panel/dmarc_ingest.go | 5 +- cmd/panel/httpserver.go | 38 +- deploy/apache/selfpost-vhost.conf | 27 +- deploy/caddy/docker-compose.caddy.yml | 10 +- deploy/docker-compose.yml | 67 ++- deploy/nginx/docker-compose.nginx.yml | 12 +- deploy/nginx/nginx.conf.example | 6 +- deploy/traefik/docker-compose.traefik.yml | 6 +- deploy/traefik/extract-cert.sh | 10 +- docs/architecture.md | 88 +++- docs/assets/icon.png | Bin 874169 -> 0 bytes docs/assets/panel-redesign/a/domain.html | 164 ++++++ docs/assets/panel-redesign/a/login.html | 37 ++ docs/assets/panel-redesign/a/status.html | 136 +++++ docs/assets/panel-redesign/a/theme.css | 206 ++++++++ docs/assets/panel-redesign/b/domain.html | 212 ++++++++ docs/assets/panel-redesign/b/login.html | 36 ++ docs/assets/panel-redesign/b/status.html | 168 +++++++ docs/assets/panel-redesign/b/theme.css | 80 +++ docs/assets/panel-redesign/c/domain.html | 200 ++++++++ docs/assets/panel-redesign/c/login.html | 38 ++ docs/assets/panel-redesign/c/status.html | 117 +++++ docs/assets/panel-redesign/c/theme.css | 98 ++++ docs/assets/panel-redesign/index.css | 22 + docs/assets/panel-redesign/index.html | 138 ++++++ docs/assets/panel-redesign/panel/account.html | 160 ++++++ docs/assets/panel-redesign/panel/audit.js | 55 +++ docs/assets/panel-redesign/panel/backup.html | 116 +++++ docs/assets/panel-redesign/panel/build.py | 121 +++++ docs/assets/panel-redesign/panel/check.py | 240 +++++++++ .../panel-redesign/panel/components.html | 294 +++++++++++ .../panel-redesign/panel/dmarc-domain.html | 110 +++++ .../panel-redesign/panel/dmarc-report.html | 119 +++++ docs/assets/panel-redesign/panel/dmarc.html | 105 ++++ docs/assets/panel-redesign/panel/health.html | 160 ++++++ docs/assets/panel-redesign/panel/help.html | 119 +++++ .../panel/in-domain-delete.html | 101 ++++ .../panel-redesign/panel/in-domain.html | 171 +++++++ .../panel-redesign/panel/in-domains.html | 105 ++++ .../panel-redesign/panel/in-filter-lists.html | 145 ++++++ docs/assets/panel-redesign/panel/in-log.html | 105 ++++ .../panel/in-quarantine-message.html | 149 ++++++ .../panel-redesign/panel/in-quarantine.html | 99 ++++ .../assets/panel-redesign/panel/in-queue.html | 97 ++++ docs/assets/panel-redesign/panel/login.html | 39 ++ .../panel-redesign/panel/out-app-created.html | 107 ++++ docs/assets/panel-redesign/panel/out-app.html | 136 +++++ .../panel/out-domain-delete.html | 110 +++++ .../panel/out-domain-settings.html | 147 ++++++ .../panel-redesign/panel/out-domain.html | 179 +++++++ .../panel-redesign/panel/out-domains.html | 107 ++++ docs/assets/panel-redesign/panel/out-log.html | 104 ++++ .../panel-redesign/panel/out-message.html | 118 +++++ .../panel-redesign/panel/out-queue.html | 102 ++++ .../assets/panel-redesign/panel/outlines.json | 466 ++++++++++++++++++ .../assets/panel-redesign/panel/overview.html | 122 +++++ .../assets/panel-redesign/panel/perf-edge.svg | 6 + .../panel-redesign/panel/preflight.html | 124 +++++ .../assets/panel-redesign/panel/settings.html | 116 +++++ docs/assets/panel-redesign/panel/setup.html | 44 ++ .../panel-redesign/panel/src/account.html | 88 ++++ .../panel-redesign/panel/src/backup.html | 44 ++ .../panel-redesign/panel/src/components.html | 222 +++++++++ .../panel/src/dmarc-domain.html | 38 ++ .../panel/src/dmarc-report.html | 47 ++ .../panel-redesign/panel/src/dmarc.html | 33 ++ .../panel-redesign/panel/src/health.html | 88 ++++ .../assets/panel-redesign/panel/src/help.html | 47 ++ .../panel/src/in-domain-delete.html | 29 ++ .../panel-redesign/panel/src/in-domain.html | 99 ++++ .../panel-redesign/panel/src/in-domains.html | 33 ++ .../panel/src/in-filter-lists.html | 73 +++ .../panel-redesign/panel/src/in-log.html | 33 ++ .../panel/src/in-quarantine-message.html | 77 +++ .../panel/src/in-quarantine.html | 27 + .../panel-redesign/panel/src/in-queue.html | 25 + .../panel-redesign/panel/src/login.html | 25 + .../panel/src/out-app-created.html | 35 ++ .../panel-redesign/panel/src/out-app.html | 64 +++ .../panel/src/out-domain-delete.html | 38 ++ .../panel/src/out-domain-settings.html | 75 +++ .../panel-redesign/panel/src/out-domain.html | 107 ++++ .../panel-redesign/panel/src/out-domains.html | 35 ++ .../panel-redesign/panel/src/out-log.html | 32 ++ .../panel-redesign/panel/src/out-message.html | 46 ++ .../panel-redesign/panel/src/out-queue.html | 30 ++ .../panel-redesign/panel/src/overview.html | 50 ++ .../panel-redesign/panel/src/preflight.html | 52 ++ .../panel-redesign/panel/src/settings.html | 44 ++ .../panel-redesign/panel/src/setup.html | 30 ++ .../panel-redesign/panel/src/system-log.html | 22 + .../panel-redesign/panel/src/user-delete.html | 29 ++ .../assets/panel-redesign/panel/src/user.html | 54 ++ .../panel-redesign/panel/src/users.html | 23 + .../panel-redesign/panel/system-log.html | 94 ++++ docs/assets/panel-redesign/panel/theme.css | 257 ++++++++++ .../panel-redesign/panel/user-delete.html | 101 ++++ docs/assets/panel-redesign/panel/user.html | 126 +++++ docs/assets/panel-redesign/panel/users.html | 95 ++++ docs/assets/panel-redesign/shared/brand.css | 48 ++ docs/assets/selfpost-proof.html | 12 +- docs/assets/selfpost-wordmark-ink.svg | 4 + docs/assets/selfpost-wordmark.svg | 4 + docs/development.md | 6 +- docs/guide.md | 74 ++- docs/plans/dmarc-reports.md | 79 --- docs/plans/domain-stats-auto-ratelimit.md | 205 -------- docs/plans/inbound-antispam-panel.md | 17 +- docs/plans/inbound-quarantine.md | 15 +- docs/plans/inbound-relay.md | 189 ------- docs/plans/panel-docs.md | 54 -- docs/plans/panel-redesign.md | 409 +++++++++++++++ docs/plans/preflight.md | 77 +++ docs/plans/queue-retries.md | 156 ------ docs/plans/send-log-retention.md | 139 ------ docs/product.md | 18 +- docs/roadmap.md | 272 +++++++++- docs/schema-migrations.md | 49 +- docs/security.md | 46 +- internal/atomicfile/atomicfile.go | 45 ++ internal/configsafe/configsafe.go | 28 ++ internal/configsafe/configsafe_test.go | 25 + internal/dmarc/addresses.go | 18 + internal/dmarc/ingest.go | 35 +- internal/dmarc/parse.go | 62 ++- internal/dmarc/parse_test.go | 100 ++++ internal/domain/dkim.go | 37 +- internal/domain/opendkim.go | 33 +- internal/domain/transfer.go | 42 +- internal/postfix/dmarc_test.go | 18 + internal/postfix/inbound.go | 23 +- internal/postfix/postfix.go | 38 +- internal/postfix/queue.go | 56 ++- internal/postfix/queue_test.go | 31 ++ internal/postfix/write.go | 41 +- internal/store/applications.go | 16 +- internal/store/domains.go | 15 + internal/store/migrations/0001_init.sql | 28 +- internal/store/migrations/0002_sessions.sql | 10 +- .../0010_send_log_app_login_index.sql | 9 + internal/store/ratelimit_auto.go | 20 +- internal/store/ratelimits_test.go | 41 +- internal/store/stats.go | 2 +- internal/supervisor/supervisor.go | 36 ++ internal/web/auth/handlers.go | 9 +- internal/web/auth/ratelimit.go | 59 ++- internal/web/auth/ratelimit_test.go | 51 ++ .../web/handlers/handlers_dmarc_reports.go | 6 +- internal/web/handlers/handlers_monitor.go | 12 +- internal/web/handlers/handlers_ratelimit.go | 85 +--- .../web/handlers/handlers_ratelimit_test.go | 58 +-- internal/web/handlers/handlers_settings.go | 69 ++- internal/web/handlers/handlers_users.go | 18 +- internal/web/handlers/password.go | 7 + internal/web/validate/validate.go | 103 ---- internal/web/validate/validate_email_test.go | 15 + internal/web/validate/validate_test.go | 66 --- internal/web/view/static/panel.css | 36 ++ .../web/view/templates/domain_detail.html | 7 +- internal/web/view/templates/help.html | 2 +- internal/web/view/templates/help_drawer.html | 13 +- internal/web/web.go | 32 +- test/e2e/main_test.go | 3 + test/e2e/port25_config_check.go | 215 ++++++++ test/e2e/port25_config_check_test.go | 62 +++ 179 files changed, 11558 insertions(+), 1738 deletions(-) create mode 100644 .claude/launch.json create mode 100644 .cursor/rules/panel-design.mdc delete mode 100644 docs/assets/icon.png create mode 100644 docs/assets/panel-redesign/a/domain.html create mode 100644 docs/assets/panel-redesign/a/login.html create mode 100644 docs/assets/panel-redesign/a/status.html create mode 100644 docs/assets/panel-redesign/a/theme.css create mode 100644 docs/assets/panel-redesign/b/domain.html create mode 100644 docs/assets/panel-redesign/b/login.html create mode 100644 docs/assets/panel-redesign/b/status.html create mode 100644 docs/assets/panel-redesign/b/theme.css create mode 100644 docs/assets/panel-redesign/c/domain.html create mode 100644 docs/assets/panel-redesign/c/login.html create mode 100644 docs/assets/panel-redesign/c/status.html create mode 100644 docs/assets/panel-redesign/c/theme.css create mode 100644 docs/assets/panel-redesign/index.css create mode 100644 docs/assets/panel-redesign/index.html create mode 100644 docs/assets/panel-redesign/panel/account.html create mode 100644 docs/assets/panel-redesign/panel/audit.js create mode 100644 docs/assets/panel-redesign/panel/backup.html create mode 100644 docs/assets/panel-redesign/panel/build.py create mode 100644 docs/assets/panel-redesign/panel/check.py create mode 100644 docs/assets/panel-redesign/panel/components.html create mode 100644 docs/assets/panel-redesign/panel/dmarc-domain.html create mode 100644 docs/assets/panel-redesign/panel/dmarc-report.html create mode 100644 docs/assets/panel-redesign/panel/dmarc.html create mode 100644 docs/assets/panel-redesign/panel/health.html create mode 100644 docs/assets/panel-redesign/panel/help.html create mode 100644 docs/assets/panel-redesign/panel/in-domain-delete.html create mode 100644 docs/assets/panel-redesign/panel/in-domain.html create mode 100644 docs/assets/panel-redesign/panel/in-domains.html create mode 100644 docs/assets/panel-redesign/panel/in-filter-lists.html create mode 100644 docs/assets/panel-redesign/panel/in-log.html create mode 100644 docs/assets/panel-redesign/panel/in-quarantine-message.html create mode 100644 docs/assets/panel-redesign/panel/in-quarantine.html create mode 100644 docs/assets/panel-redesign/panel/in-queue.html create mode 100644 docs/assets/panel-redesign/panel/login.html create mode 100644 docs/assets/panel-redesign/panel/out-app-created.html create mode 100644 docs/assets/panel-redesign/panel/out-app.html create mode 100644 docs/assets/panel-redesign/panel/out-domain-delete.html create mode 100644 docs/assets/panel-redesign/panel/out-domain-settings.html create mode 100644 docs/assets/panel-redesign/panel/out-domain.html create mode 100644 docs/assets/panel-redesign/panel/out-domains.html create mode 100644 docs/assets/panel-redesign/panel/out-log.html create mode 100644 docs/assets/panel-redesign/panel/out-message.html create mode 100644 docs/assets/panel-redesign/panel/out-queue.html create mode 100644 docs/assets/panel-redesign/panel/outlines.json create mode 100644 docs/assets/panel-redesign/panel/overview.html create mode 100644 docs/assets/panel-redesign/panel/perf-edge.svg create mode 100644 docs/assets/panel-redesign/panel/preflight.html create mode 100644 docs/assets/panel-redesign/panel/settings.html create mode 100644 docs/assets/panel-redesign/panel/setup.html create mode 100644 docs/assets/panel-redesign/panel/src/account.html create mode 100644 docs/assets/panel-redesign/panel/src/backup.html create mode 100644 docs/assets/panel-redesign/panel/src/components.html create mode 100644 docs/assets/panel-redesign/panel/src/dmarc-domain.html create mode 100644 docs/assets/panel-redesign/panel/src/dmarc-report.html create mode 100644 docs/assets/panel-redesign/panel/src/dmarc.html create mode 100644 docs/assets/panel-redesign/panel/src/health.html create mode 100644 docs/assets/panel-redesign/panel/src/help.html create mode 100644 docs/assets/panel-redesign/panel/src/in-domain-delete.html create mode 100644 docs/assets/panel-redesign/panel/src/in-domain.html create mode 100644 docs/assets/panel-redesign/panel/src/in-domains.html create mode 100644 docs/assets/panel-redesign/panel/src/in-filter-lists.html create mode 100644 docs/assets/panel-redesign/panel/src/in-log.html create mode 100644 docs/assets/panel-redesign/panel/src/in-quarantine-message.html create mode 100644 docs/assets/panel-redesign/panel/src/in-quarantine.html create mode 100644 docs/assets/panel-redesign/panel/src/in-queue.html create mode 100644 docs/assets/panel-redesign/panel/src/login.html create mode 100644 docs/assets/panel-redesign/panel/src/out-app-created.html create mode 100644 docs/assets/panel-redesign/panel/src/out-app.html create mode 100644 docs/assets/panel-redesign/panel/src/out-domain-delete.html create mode 100644 docs/assets/panel-redesign/panel/src/out-domain-settings.html create mode 100644 docs/assets/panel-redesign/panel/src/out-domain.html create mode 100644 docs/assets/panel-redesign/panel/src/out-domains.html create mode 100644 docs/assets/panel-redesign/panel/src/out-log.html create mode 100644 docs/assets/panel-redesign/panel/src/out-message.html create mode 100644 docs/assets/panel-redesign/panel/src/out-queue.html create mode 100644 docs/assets/panel-redesign/panel/src/overview.html create mode 100644 docs/assets/panel-redesign/panel/src/preflight.html create mode 100644 docs/assets/panel-redesign/panel/src/settings.html create mode 100644 docs/assets/panel-redesign/panel/src/setup.html create mode 100644 docs/assets/panel-redesign/panel/src/system-log.html create mode 100644 docs/assets/panel-redesign/panel/src/user-delete.html create mode 100644 docs/assets/panel-redesign/panel/src/user.html create mode 100644 docs/assets/panel-redesign/panel/src/users.html create mode 100644 docs/assets/panel-redesign/panel/system-log.html create mode 100644 docs/assets/panel-redesign/panel/theme.css create mode 100644 docs/assets/panel-redesign/panel/user-delete.html create mode 100644 docs/assets/panel-redesign/panel/user.html create mode 100644 docs/assets/panel-redesign/panel/users.html create mode 100644 docs/assets/panel-redesign/shared/brand.css create mode 100644 docs/assets/selfpost-wordmark-ink.svg create mode 100644 docs/assets/selfpost-wordmark.svg delete mode 100644 docs/plans/dmarc-reports.md delete mode 100644 docs/plans/domain-stats-auto-ratelimit.md delete mode 100644 docs/plans/inbound-relay.md delete mode 100644 docs/plans/panel-docs.md create mode 100644 docs/plans/panel-redesign.md create mode 100644 docs/plans/preflight.md delete mode 100644 docs/plans/queue-retries.md delete mode 100644 docs/plans/send-log-retention.md create mode 100644 internal/atomicfile/atomicfile.go create mode 100644 internal/configsafe/configsafe.go create mode 100644 internal/configsafe/configsafe_test.go create mode 100644 internal/store/migrations/0010_send_log_app_login_index.sql create mode 100644 internal/supervisor/supervisor.go create mode 100644 internal/web/handlers/password.go create mode 100644 test/e2e/port25_config_check.go create mode 100644 test/e2e/port25_config_check_test.go diff --git a/.claude/launch.json b/.claude/launch.json new file mode 100644 index 0000000..9d019d3 --- /dev/null +++ b/.claude/launch.json @@ -0,0 +1,11 @@ +{ + "version": "0.0.1", + "configurations": [ + { + "name": "mockups", + "runtimeExecutable": "python", + "runtimeArgs": ["-m", "http.server", "8765", "--bind", "127.0.0.1"], + "port": 8765 + } + ] +} diff --git a/.cursor/rules/panel-design.mdc b/.cursor/rules/panel-design.mdc new file mode 100644 index 0000000..5d04090 --- /dev/null +++ b/.cursor/rules/panel-design.mdc @@ -0,0 +1,39 @@ +--- +description: The panel's design is fixed by accepted mockups; implement it, do not reinterpret it. +globs: internal/web/view/**,docs/assets/panel-redesign/** +alwaysApply: false +--- + +# Panel design contract + +Source of truth, in this order: the mockups in +[docs/assets/panel-redesign/panel/](docs/assets/panel-redesign/index.html), +the [components page](docs/assets/panel-redesign/panel/components.html), +`panel/outlines.json`, then +[docs/plans/panel-redesign.md](docs/plans/panel-redesign.md). Read the plan's +**The contract** and **Enforcement** sections before touching a template. + +You are implementing a finished design. You are not designing. + +- Build pages only from Bulma classes in the `BULMA` list of `panel/check.py` + and from the `sp-` components on the components page, through their + partials. No other class, no hand-written component markup, no inline style. +- No selector in `panel.css` that names a page or an id, uses `!important`, or + sets a width outside `WIDTH_OK`. If a page looks wrong, the layout choice is + wrong — do not patch it locally. +- If a screen seems to need a component, state or layout that does not exist: + **stop and ask.** Do not approximate it, and do not substitute a look of + your own. +- Never edit a mockup, `outlines.json`, `check.py`, the vendored Bulma or a + guard test to make your work pass. A failing guard means the implementation + is wrong. Design changes go mockup-first in a separate `design:` commit on + the owner's explicit instruction. +- "Done" is evidence, not a description: passing `go test ./internal/web/...` + output plus a screenshot of each restyled page from the running container, + saved under `docs/assets/panel-redesign/evidence/` beside its mockup's name. + Report every difference from the mockup you could not remove; do not + describe a different result as the requested one. + +After editing a fragment in `panel/src/`: `python panel/build.py`, then +`python panel/check.py` (add `--write` only when the structure change is the +point of the commit). diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 256c55b..8c3eba6 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,19 +1,19 @@ name: release -# Publishes an immutable, version-tagged image on ghcr.io (spec 10.1). +# Publishes an immutable, version-tagged image on ghcr.io. # Ordinary commits and bare git tag pushes do not publish anything. A published # GitHub Release runs this workflow directly (same pattern as gosentry / imap-scrub). # You can also run it manually via workflow_dispatch with an explicit SemVer X.Y.Z. # -# Native per-architecture builds (see docs/development.md), not qemu: -# running the full Postfix/OpenDKIM stack under emulation for the e2e gate -# below is impractically slow. Each arch builds, e2e-gates and pushes its own -# tag on its own native runner; a merge job then combines them into the one -# manifest tag documented in deploy/docker-compose.yml. "test, then push" (not -# push-by-digest then test) is deliberate: it means the bytes that get tagged -# are exactly the bytes that passed e2e. Per-arch tags are pushed only so -# imagetools can assemble the multi-arch manifest; merge removes them from GHCR -# so operators see a single version tag (spec 10.1). +# Native per-architecture builds (see docs/development.md), not qemu: running +# the full Postfix/OpenDKIM stack under emulation for the e2e gate below is +# impractically slow. Each arch builds, e2e-gates and pushes its own tag on its +# own native runner; a merge job then combines them into the one manifest tag +# documented in deploy/docker-compose.yml. "test, then push" (not push-by-digest +# then test) is deliberate: it means the bytes that get tagged are exactly the +# bytes that passed e2e. Per-arch tags are pushed only so imagetools can +# assemble the multi-arch manifest; merge removes them from GHCR so operators +# see a single version tag. on: release: types: [published] diff --git a/CHANGELOG.md b/CHANGELOG.md index ddad24f..affa1be 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,303 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); version ## [Unreleased] +### Added + +- Panel redesign, account e-mail and notifications: a user's e-mail is its own + field (2.0 baseline `users.email`, today `dmarc_report_email`) — edited under + **Account**, seen and set by the global administrator on the user form and in + the users list; DMARC may *use* it, as one choice beside the hosted address, + another address or none (Settings and domain settings). **Account** gains a + Notifications box and **Settings** a switch for the new roadmap candidate + `panel-notifications`; `password-reset` is added as a candidate too. The + inbound spam filter becomes visible: a *Spam filter* box on every inbound + domain, a tag on the inbound domains list, its socket among the milter + sockets. Preflight loses a box that only filled space — the test form now + shares its box with its result — and the plan's layout rule and contract say + so: what stands beside a form must be real. The role is labelled by its reach, + `global` or `domain` — everyone in the panel is an administrator — and each + assignment list on the user form gains **All**, a per-user flag that covers + domains added later. The DMARC default report address is a **user's** + setting, not the server's: it moves from Server › Settings to **Account** + with its report-authorization record, and a domain follows the default of a + *named* user, so two people sharing a domain never pull it two ways. +- Panel redesign, contrast: a sweep of every text node against its real ground + found the solid red button at 3:1 (Bulma derives a solid button's text from + the fill's lightness; brick had been patched, red had not), the muted grey + at 4.1:1, the amber postmark at 4.0 and Bulma's menu labels at 4.2. Solid + buttons are white on colour, muted is `#5c6774`, the postmark uses the warn + token; all 33 screens now measure 4.5:1 or better. The sweep is kept as + `panel/audit.js` — text size, contrast, overflow, clipped values, missing + icons — and its clean output joins the evidence a restyle step must show. +- Panel redesign, header (owner's choice: variant A, with the perforation on a + light edge as on the mark): the navbar carries the **wordmark** instead of + the stamp — `docs/assets/selfpost-wordmark.svg` and `-ink`, the stamp's own + outlines, recorded in `docs/product.md` — and under the brick bar runs the + stamp's paper margin with the perforation along its outer edge: round holes, + flat teeth, the ink hairline (`panel/perf-edge.svg`). All 33 screens rebuilt; + the components page documents the shell; the comparison sheet is removed. + The six health cards now split into six, three or two columns, so one card + is never left alone on a row. Three corrections after the owner's review: + the paper edge is 8px under the 60px bar — it had been scaled from the hole + size to 16px, where the mark's margin is a tenth of the brick field; the + health row is compact again (71px: smaller icons, each line a block with its + own line height, a verdict never wraps and stretches the row); and a + read-only value is as tall as the Copy button joined to it. `check.py` no + longer counts `min-width: 0` as setting a width. Text sizes: the filter + controls in a box head and the navbar's dropdown entries are 15px like the + bar itself (they had Bulma's `is-small` and its .875rem dropdown); `check.py` + now rejects `is-small` on anything but a progress bar. +- Panel redesign, type scale: about 40 % of the panel's text measured under + 13px (labels 11.7, table heads 10.5, fact labels 10.2, tags and help 11.3). + Body is now 16px with two tokens under it — `--sp-fs-s` 14px for supporting + text and `--sp-fs-xs` 13px for upper-case mono labels and tags; Bulma's + small sizes are overridden or dropped (`sp-small` replaces `is-size-7`), and + `check.py` fails any font size under the floor. Every table now sits in a + `table-container` (enforced), addresses in tables break after the `@`, the + inbound log folds the client IP under the sender; all screens fit without + scrolling at 1280px and up. Documented on the components page and in the + plan (§ Type and tables). +- Panel redesign, header comparison sheet + ([docs/assets/panel-redesign/header/](docs/assets/panel-redesign/header/index.html)): + at nav size the stamp dissolves into the brick bar and the perforated edge + was drawn inverted (round bumps instead of round holes). Three replacements + beside the current header — **A** wordmark with the stamp's real hole-to-tooth + perforation bitten into the bar, **B** wordmark on a plain bar, **C** a + stamp-paper header with an ink hairline and brick only behind the name. The + wordmark is cut from the stamp's own outlines. Pending the owner's choice; + the mockups are unchanged. `.claude/launch.json` serves the mockups locally + (`python -m http.server 8765` from the repository root). +- Panel redesign, the roadmap's screens: **Inbound › Filter lists** and the + adjusted **Inbound › Log** (client, decision, engine and reason; *Allow / + Deny sender*) for inbound-antispam-panel, **Inbound › Quarantine** (list and + held message with Release / Discard) for inbound-quarantine, and **Server › + Preflight** for preflight — all from existing components; 33 screens. Their + paths join § Routes; the quarantine and preflight plans link their mockups. + A mockup is the target look, not a decision to build: each item keeps its + status, and quarantine's open questions stay open. +- Panel redesign, two owner decisions recorded in + `docs/plans/panel-redesign.md`: **no compatibility** — the redesign is + `2.0.0`, old paths are removed without redirects, the SQLite migration chain + is replaced by one baseline and 2.0 starts from an empty data directory + (schema-squash ships as a step of this plan, without its upgrade gate; the + only live installation is the owner's); and + **inbound delegation** — a domain administrator manages assigned inbound + domains, granted separately from outbound (`user_inbound_domains`, a second + list on the user form, per-domain authorization under `/inbound/`). Mockups `users`, `user`, + `user-delete` redrawn for the two lists. Checklist `3/21`. +- Panel redesign, routes: the owner decided that paths follow the new names + and structure. `docs/plans/panel-redesign.md` § Routes maps every screen to + its new path (`/overview`, `/outbound/…`, `/inbound/…`, `/server/…`, + `/account`) with the rules that come along — one `/fragment` name, the + application form as a single POST, 301s from old GET paths for one MINOR, + subtree `requireGlobal()` under security review, and + `TestRoutesFollowNavigation`. Mockups gained what the first pass missed: the + *Reload configuration* box (now on Server › Health), the `flash` component + and the `sp-help` link that replaces the help drawer. Checklist `1/17`. +- Panel redesign, design contract: + [docs/plans/panel-redesign.md](docs/plans/panel-redesign.md) rewritten for + the accepted direction — three layers (Bulma as shipped, adapters, own `sp-` + components), three page layouts, what an implementer must not do, the guard + tests that land before any template, a `design-first` CI step and + evidence-based acceptance. A + [components page](docs/assets/panel-redesign/panel/components.html) shows + every building block in every state; `panel/check.py` lints the mockups + against the contract and writes `panel/outlines.json`, the per-screen + component skeleton an implementation is compared with. Own modifier classes + renamed to carry the `sp-` prefix so the vocabulary is machine-checkable. + Agent rule `.cursor/rules/panel-design.mdc`; roadmap row updated (`0/15`). +- Panel redesign, stage 2: the accepted direction drawn on every screen — + 29 pages under [docs/assets/panel-redesign/panel/](docs/assets/panel-redesign/index.html). + Direction C (Bulma) is the base, with A's postal signature (postmark verdict, + numbered mono section heads, the stamp's perforated edge) and B's icons. + Overview keeps verdicts only and the tables move to a new **Server › Health** + page; the own password becomes **Account**; queues are drawn as tables + (needs `postqueue -j`) and **Inbound** gets its own Log and Queue. Pages are + built from fragments by `panel/build.py`; the built HTML is committed. + Mockups only; nothing in `internal/web` changes. +- Panel redesign, stage 1: three directions drawn on the three key screens + (Overview, an outbound domain, sign-in) under + [docs/assets/panel-redesign/](docs/assets/panel-redesign/index.html) — + **A** Pico CSS ("Blank"), **B** Tabler ("Console"), **C** Bulma ("Counter"), + with a cover sheet comparing size, JavaScript, CSP fit and own CSS. All three + share a navigation grouped by mail direction (Overview · Outbound · Inbound · + Server, with a symmetric Log and Queue on both sides), one block per DNS + record instead of separate "status" and "records to publish" cards, and + applications as a table. Mockups only; nothing in `internal/web` changes. + The brief behind them supersedes the "no component library" decision in + `docs/plans/panel-redesign.md`; that file is rewritten once a direction is + accepted. +- Roadmap item and givens for a panel visual redesign + ([docs/plans/panel-redesign.md](docs/plans/panel-redesign.md)) — layout + grammar (`measure` / `fill` plus Web Awesome layout CSS), no JS component + library, new mockups rather than `docs/assets/panel-ui/`. Status: candidate. +- Roadmap item and plan for `/preflight` installation check page + ([docs/plans/preflight.md](docs/plans/preflight.md)) — instance-level + infrastructure verification (rDNS, TLS, ports, HELO banner, proxy headers, + DKIM socket, test email). Status: candidate. + +## [1.9.2] - 2026-09-22 + +Review pass over `1.4.0`…`1.9.1`: port 25 no longer shares the submission +milter chain, DMARC reports are validated before they are stored, and the auto +rate limit is correct for a non-default level-1 window. Schema migration +`0010` (index only). Upgrading is a tag bump. + +A full-tree code review on 2026-08-19 (architecture, code quality, security, +GUI, tests, documentation, AGPL compliance; 38 findings) produced most of what +follows. Its four open items live in [roadmap.md](docs/roadmap.md); its working +document is not part of the release. + +### Added + +- SQLite migration `0010_send_log_app_login_index.sql` — + `idx_send_log_app_login_created_at`. The journal-milter counts an + application's messages on every `MAIL FROM`, and the domain page computes + per-application statistics on every render; both were scanning the + `created_at` range because `app_login` was unindexed. +- DMARC aggregate reports are accepted as **zip** as well as gzip or plain XML + (several reporters ship a single-entry zip; those reports previously counted + as parse failures). +- e2e: `checkPort25ConfigCombinations` regenerates the Postfix configuration + inside the container for all four combinations of `INBOUND_RELAY_ENABLE` / + `DMARC_REPORTS_ENABLE` / `INBOUND_ANTISPAM_MILTER` and requires + `postfix check` to pass. The `1.9.1` crash-loop shipped in `1.4.0` and + survived three releases because the suite only ever exercised the flags-off + path. + +### Changed + +- README hero line and a **Positioning** block in `docs/product.md` record the + tagline (`YOUR SMTP. YOUR RULES.`) and hero copy; the stamp subtitle stays + `SELF-HOSTED SMTP RELAY`. `docs/assets/selfpost-proof.html` updated to match. + +### Fixed + +- The setup account's password is hashed at bcrypt cost `12` like every other + panel password; it was still being written at `bcrypt.DefaultCost` (10). The + work factor now has one definition, `auth.BcryptCost`. bcrypt records the + cost in the hash, so existing passwords keep verifying unchanged. +- Login/setup rate limiter: protecting blocked buckets from eviction is now + bounded. Blocked buckets are still never evicted to make room, but past + `maxBuckets × 4` they are evicted too (nearest expiry first) — otherwise an + attacker with many source addresses could grow the bucket map without limit + by making each address fail its way to blocked. The overflow is logged at + most once per window. +- `postqueue -p` output is bounded to 4 MiB (the timeout alone left the size of + the listing, and therefore the panel's allocation, up to the queue). +- [schema-migrations.md](docs/schema-migrations.md): the schema section was + still headed `v9` while the chain head is `v10`, and three links pointed at + plan files deleted when those features shipped. +- postqueue reader is now time-bounded: `postqueue -p` runs under a 5-second + context timeout so a stuck queue command cannot hang the queue panel path + indefinitely. +- DMARC panel layout classes now exist in + `internal/web/view/static/panel.css` (`.pair`, `.attn`, `.desk-only`, + `.phone-only`, `.phone-list`, `.check-row`), so desktop/mobile DMARC views and + attention highlighting render as intended. +- `dmarc-ingest` now bounds stdin with `io.LimitReader` (10 MiB) before parsing. +- User-role update no longer contains a duplicate "last global admin" demotion + guard; one check now returns a context-specific message for self-demotion. +- Settings flash text now reflects what actually changed and only mentions + session sign-out when the password changed. +- Help page/drawer links now use `SourceURL` (`{{.SourceURL}}/blob/main/docs/...`) + instead of a hardcoded repository URL. +- Help drawer close controls include accessibility attributes (`role="button"`, + `aria-label`) for the scrim and close action. +- Test coverage expanded for DMARC map token injection rejection and email + validation edge cases (ASCII/local-part/domain/freemail cases). +- **Port 25 no longer runs the submission milter chain.** `smtpd_milters` is + now always overridden on `smtp/inet` — to the optional antispam milter, or + to nothing. Previously, with `INBOUND_ANTISPAM_MILTER` unset, inbound mail + inherited main.cf's chain: OpenDKIM (strict, `tempfail`) could defer relayed + mail during a signing outage, and the journal-milter filed inbound mail into + the outbound send log under the **sender's** domain — so Deliveries showed + other people's mail, and a forged `From:` on an inbound message consumed that + sending domain's level-2 rate-limit budget. [architecture.md](docs/architecture.md) + already described the intended behaviour; the code now matches it. +- **DMARC reports are validated before they are stored.** A report is accepted + only when the domain in `policy_published` is a sending domain configured + here and, for a per-domain hosted address, matches that address's `+tag`. + The rua address form is predictable, so anyone able to reach it could + previously file reports under any domain, skew the panel's alignment figures + and the tighten-`p=` hint, and evict genuine reports through the 500-report + retention cap. +- Auto level-2 rate limit: the ceiling is now scaled to the level-1 window + before the multiplier is applied. `ceil(avg msg/h × multiplier)` was stored + as the ceiling for a window of `RATE_LIMIT_WINDOW_SECONDS`, so any window + other than the default `3600` shifted the effective allowance by + `window/3600` (a 1800s window allowed twice the intended rate). A domain + that has sent anything now also gets a floor of 1. +- Single-domain export no longer drops rate limits silently when the store + errors — the error is returned instead of being swallowed by `err == nil && ok`. + +### Changed + +- [roadmap.md](docs/roadmap.md) now carries everything the 2026-08-19 code + review left unimplemented, so no finding lives only in a plan file: + `csrf-tokens` (the recorded §4.4 decision that never became a task), + `template-data-typing`, `structured-logging`, and + `review-2026-08-followups` for the small remainder (backup re-auth, the + missing service/handler/error-page tests, and nine minor findings that were + never carried into the review's own phase tables). Each roadmap row stands on + its own — file, symptom, and what "done" means — and the declined finding + (`//go:build linux` for the `/proc` reader) is recorded as declined so it is + not raised again. The review's working document is gone from `docs/plans/` + now that nothing depends on it; git history keeps it. +- Extracted `internal/configsafe` — the empty-value and forbidden-character + check every generated config file shares. Each writer keeps its own forbidden + set next to the file it protects (an OpenDKIM table and a Postfix map break on + different characters); only the check itself is shared. +- Build, deploy and migration comments no longer cite the archived + specification. The `spec N` references CHANGELOG `[0.5.0]` said were gone + survived in `build/`, `deploy/`, the first two migrations and the release + workflow; they are removed and the affected comment paragraphs re-wrapped. + Comments only — no build or configuration behaviour changes. +- Dropped the `parseDomainRateLimitForm` / `parseAppRateLimitForm` pass-through + wrappers left behind when the two parsers were merged: nothing but their own + tests still called them. +- Extracted shared helpers: `internal/atomicfile` (atomic temp-write+rename) and + `internal/supervisor` (supervisorctl start/signal wrappers), and reused them in + domain/postfix code paths. +- `docs/roadmap.md`: shipped `panel-docs` now references CHANGELOG history + instead of a removed plan file. +- [schema-migrations.md](docs/schema-migrations.md) notes that migration `0009` + changed what the IP list *means* — permissive (those IPs got the application + ceiling) before 1.9.0, restrictive (every other IP refused) after. Its + conversion branch only fires for a database that carried application-scope + `allowed_ips` from before 1.9.0. +- Panel help, [guide.md](docs/guide.md) and [architecture.md](docs/architecture.md): + the client IP allow-list is a **sending** control, not an authentication + boundary — the SASL login still succeeds, the check runs in the + journal-milter at `MAIL FROM`, and it is fail-open like the rate limits. + architecture.md's rate-limit description still documented the pre-1.9.0 + trusted-IP semantics. +- Removed unused duplicates of the inbound validators (`Host`, `Port`, + `TLSMode`, `RecipientMode`, `MailboxInDomain`, `NormalizeHost`) from + `internal/web/validate` — the live path uses `internal/inbound/validate.go`; + the copies were reachable only from their own tests. +- `gofmt` across `cmd/` and `internal/` (10 files had drifted); dead branch + removed from `postfix.inboundNexthop`. +- The planned inbound-antispam migration is renumbered `0011_inbound_spam_log.sql`. +- Operator and as-built docs aligned with the code after a full pass — + [architecture.md](docs/architecture.md) (port 25 opens for inbound relay + and/or DMARC ingest; antispam requires inbound relay; DMARC pipe transport + and map paths; `/help` and `/dmarc*` routes; four panel roles including + rate-limit recalc; restore Resync vs manual reload); [guide.md](docs/guide.md) + and [README.md](README.md) (image pin `1.9.1`, port 25 conditions, combined + listener limits, reload vs Resync); [roadmap.md](docs/roadmap.md) (`panel-docs` + closed at `[1.8.0]`, next item inbound-antispam-panel); [development.md](docs/development.md) + version-cut table through `1.9.1`; [schema-migrations.md](docs/schema-migrations.md) + last-updated note. No behaviour change. + +### Removed + +- Unused legacy asset `docs/assets/icon.png` (superseded by the four brand SVGs + and `internal/web/static/favicon.png`; nothing referenced it). +- Plan documents for already-shipped features: `domain-stats-auto-ratelimit`, + `dmarc-reports`, `inbound-relay`, `panel-docs`, `queue-retries`, + `send-log-retention`. Only unimplemented plans remain in `docs/plans/`. + ## [1.9.1] - 2026-08-19 Port-25 Postfix startup when inbound relay, DMARC ingest, or the inbound antispam @@ -239,6 +536,14 @@ tag bump; no schema migration. parsed aggregate report (aligned vs third-party fail), not a hub-only summary. +### Fixed + +- ci (GHCR): per-arch package tags (`X.Y.Z-amd64`, `X.Y.Z-arm64`) are dropped + after the manifest merge via the GitHub Packages API. The `[1.3.0]` merge job + called `docker buildx imagetools rm`, which is not a valid subcommand — cleanup + failed with a warning and the side-effect tags stayed in the registry until + this fix. + ## [1.3.0] - 2026-08-14 Security and quality after 1.2.5: domain-admin send-log authorization, @@ -256,7 +561,7 @@ Plex. Upgrading from 1.2.x is a tag bump; no migration. - docs: agreed roadmap item **queue-retries** — show this Postfix's retry policy (first delay, backoff cap, queue lifetime) on Mail queue and on a delivery's history, reading `postconf -h` once at panel start so a manual - override is visible. Plan: [docs/plans/queue-retries.md](docs/plans/queue-retries.md). + override is visible. Plan: `docs/plans/queue-retries.md` (removed once shipped). Explanation only; no attempt counter and no panel knobs. Not yet implemented. @@ -323,11 +628,6 @@ Plex. Upgrading from 1.2.x is a tag bump; no migration. the same Resync on demand. The `internal/backup` package comment now matches this behaviour. -- ci (GHCR): per-arch package tags (`X.Y.Z-amd64`, `X.Y.Z-arm64`) are dropped - after the manifest merge via the GitHub Packages API. The merge job had called - `docker buildx imagetools rm`, which is not a valid subcommand — cleanup failed - with a warning and the side-effect tags stayed in the registry. - ### Changed - docs: operator and as-built docs aligned with the code after a full @@ -377,15 +677,13 @@ Plex. Upgrading from 1.2.x is a tag bump; no migration. (`vX.Y.Z`) or a manual `workflow_dispatch` with an explicit SemVer version — a bare git tag push no longer starts the build. `release.yml` listens for `release: published`, checks out that tag (not `main` HEAD), e2e-gates each - native arch build, merges `X.Y.Z-amd64` and `X.Y.Z-arm64` into one manifest, - then removes the per-arch tags from GHCR via the GitHub Packages API so - operators see only `ghcr.io/mixeme/selfpost:X.Y.Z` (what - `deploy/docker-compose.yml` pins). A dispatch whose version input is missing - or not `X.Y.Z` fails in `prepare`. [development.md](docs/development.md) - documents draft vs published releases, why deleting a release tag converts - it back to draft, and Gitea → GitHub tag-mirror pitfalls (do not prune release - tags on GitHub; a mirrored `v1.0.0` still runs that tag's `on: push: tags` - workflow). + native arch build, and merges `X.Y.Z-amd64` and `X.Y.Z-arm64` into one + manifest. Reliable removal of the per-arch side-effect tags from GHCR landed + in `[1.3.1]`. A dispatch whose version input is missing or not `X.Y.Z` fails + in `prepare`. [development.md](docs/development.md) documents draft vs + published releases, why deleting a release tag converts it back to draft, and + Gitea → GitHub tag-mirror pitfalls (do not prune release tags on GitHub; a + mirrored `v1.0.0` still runs that tag's `on: push: tags` workflow). - test: the authorization and sign-in surfaces that had no tests now have them. The login limiter is covered for its ceiling, its per-address scope, the reset @@ -455,7 +753,7 @@ Plex. Upgrading from 1.2.x is a tag bump; no migration. RBAC in the doc-alignment pass above). Corrected stale `admin.dmarc_report_email` references in [roadmap.md](docs/roadmap.md) and - [docs/plans/dmarc-reports.md](docs/plans/dmarc-reports.md) to the setting's + `docs/plans/dmarc-reports.md` (removed once shipped) to the setting's actual home after migration `0005`. No behaviour change. - panel: code-review P6 cleanup — the unused `auth.RequireGlobal` middleware is @@ -482,7 +780,9 @@ Rate-limit form polish after 1.2.4. Upgrading is a tag bump; no migration. carry muted leads and matched control height; trusted-IP help sits under the IP field. Domain settings pairs DMARC reports with the level-2 rate limit using CSS subgrid so titles, fields, and Save / Remove buttons line up across - columns. + columns. Domain page Export and Danger cards stack naturally again — a + shared-baseline flex pin on `.split` cards made mismatched body lengths look + worse than a plain stack. ## [1.2.4] - 2026-08-12 @@ -1289,9 +1589,10 @@ database, or the on-disk layout. Upgrading is a tag bump. Bookmarks to the old paths stop working. - panel: each entry in the navigation bar now carries an icon beside its label, - so the bar is scannable at a glance instead of a row of similar-length words. - The icons are inline SVG drawn in the entry's own colour — no extra request, - no exemption from the panel's Content-Security-Policy — and are hidden from + so the bar is scannable at a glance instead of a row of similar-length words — + Backup uses a filing-cabinet mark; Sign out has its own icon too. The icons + are inline SVG drawn in the entry's own colour — no extra request, no + exemption from the panel's Content-Security-Policy — and are hidden from screen readers, which still announce the label alone. - panel: the navigation bar is laid out as two rows on purpose — the signed-in @@ -1431,6 +1732,11 @@ database, or the on-disk layout. Upgrading is a tag bump. login/password and on the sending server name. - panel: the *Addresses* field is hidden while an application's address mode is *Any address of the domain*, where the server ignores it. +- deploy: `cap_add` gains `CAP_FOWNER` and `CAP_FSETID` so the entrypoint can + chmod and set the setgid bit on `/data` directories it has just chowned under + `cap_drop: ALL`, and `CAP_KILL` so supervisord can signal OpenDKIM across uids + when domains are added or removed. Production boot under the hardened compose + file exposed both gaps after Phase 10. - ci: disable provenance attestation on release image push, so the ghcr.io manifest list shows only `linux/amd64`/`linux/arm64` (no `unknown/unknown`). - ci: run `go vet` and `go test ./...` on every push to `main` and every pull diff --git a/Makefile b/Makefile index f8ab028..abb39de 100644 --- a/Makefile +++ b/Makefile @@ -1,12 +1,13 @@ # SelfPost build. # # The version is stamped into both binaries and MUST match the Docker image tag -# (spec 7.5.A: backup/restore compatibility check). Override on the command line: +# (architecture.md § Persistence: backup/restore compatibility check). Override +# on the command line: # # make build VERSION=1.3.0 # # CGO is disabled to keep the binaries fully static (modernc.org/sqlite is pure -# Go, so no cgo is required) — see spec 7.1. +# Go, so no cgo is required). VERSION ?= dev MODULE := github.com/mixeme/selfpost diff --git a/README.md b/README.md index 96d72d1..c6cd0fa 100644 --- a/README.md +++ b/README.md @@ -4,15 +4,16 @@ # SelfPost -Self-hosted outbound SMTP relay with a web control panel, shipped as a single -Docker image. Postfix, OpenDKIM, and a small Go panel run together under -`supervisord`; you configure domains, DKIM keys, and SASL applications once, -then point your apps at the SMTP endpoint. +Self-hosted SMTP relay with a web panel — one Docker image, no provider. -SelfPost sends mail straight to the internet from **your own IP**, with per-domain -DKIM signing. It is outbound by default — no mailboxes or webmail. An optional -inbound relay (backup-MX / forwarder on port 25) can be turned on; it forwards -to an upstream, it does not store mail. +Postfix, OpenDKIM, and a small Go panel run together under `supervisord`; you +configure domains, DKIM keys, and SASL applications once, then point your apps +at the SMTP endpoint. + +SelfPost sends mail straight to the internet from **your own IP**, with +per-domain DKIM signing. No mailboxes or webmail. An optional inbound relay +(backup-MX / forwarder on port 25) forwards to an upstream; it does not store +mail. **For:** operators who run their own VPS or home server and want a simple relay they control, without a third-party SMTP provider. @@ -24,6 +25,9 @@ send log and DNS checks in the panel, encrypted backups. - Outbound SMTP (465/smtps; optional 587 submission) with per-domain DKIM signing - Optional inbound relay on port 25 (backup-MX / forwarder; off by default) +- Optional DMARC aggregate report ingest on port 25 (off by default) +- In-panel Help drawer and `/help` page for Status and domain controls +- Per-application client IP allow-list for SMTP AUTH (optional) - Web panel — domains, applications, deliveries, mail queue, system log, backup - Multi-domain relay — each SASL application is bound to one sending domain - DNS status checks (PTR, SPF, DKIM, DMARC) with in-panel re-check @@ -108,7 +112,7 @@ docker run --rm -d --name selfpost-try \ -e SELFPOST_HOSTNAME=mail.local.test \ -e PANEL_COOKIE_SECURE=false \ -v selfpost-try-data:/data \ - ghcr.io/mixeme/selfpost:1.7.0 + ghcr.io/mixeme/selfpost:1.9.2 ``` **Get the setup URL** (pick one): @@ -149,8 +153,9 @@ deployment](docs/guide.md#full-deployment) section, with proxy-specific commands under [Reverse proxy](docs/guide.md#reverse-proxy-mandatory). The compose file always publishes **465**, **587**, and **25**; Postfix listens -on 587 only when `SUBMISSION_ENABLE=true`, and on 25 only when -`INBOUND_RELAY_ENABLE=true` (see [Ports](docs/guide.md#ports)). Bump the +on 587 only when `SUBMISSION_ENABLE=true`, and on 25 when +`INBOUND_RELAY_ENABLE=true` and/or `DMARC_REPORTS_ENABLE=true` (see +[Ports](docs/guide.md#ports)). Bump the pinned image tag deliberately when upgrading, never `:latest` ([why](docs/guide.md#fixed-image-tag)). Optional variables (`TRUSTED_PROXY_CIDR`, rate limits, retention): see [Environment variables](docs/guide.md#environment-variables). diff --git a/build/Dockerfile b/build/Dockerfile index 177b6d6..25ba6f1 100644 --- a/build/Dockerfile +++ b/build/Dockerfile @@ -1,7 +1,7 @@ # syntax=docker/dockerfile:1 # # SelfPost — single Debian-slim image running postfix + opendkim + panel under -# supervisord (spec 4). Build from the repository root: +# supervisord. Build from the repository root: # # docker build -f build/Dockerfile -t selfpost:dev --build-arg VERSION=dev . @@ -10,7 +10,7 @@ FROM golang:1.26-bookworm AS build WORKDIR /src -# Version stamped into both binaries; MUST match the image tag (spec 7.5.A). +# Version stamped into both binaries; MUST match the image tag. ARG VERSION=dev # Module metadata first for layer caching. @@ -52,13 +52,13 @@ RUN echo "postfix postfix/mailname string localhost" | debconf-set-selections \ curl \ && rm -rf /var/lib/apt/lists/* -# Unprivileged user for the panel process (spec 7.6.8). +# Unprivileged user for the panel process. RUN useradd --system --no-create-home --shell /usr/sbin/nologin panel -# Shared group bridging the unprivileged services (spec 5.1, 6): the panel -# generates per-domain DKIM keys, application SASL accounts (sasldb2) and the -# Postfix sender map, while OpenDKIM and Postfix (different users) must read -# them. Membership in this group — plus setgid dirs under /data (set up in +# Shared group bridging the unprivileged services: the panel generates +# per-domain DKIM keys, application SASL accounts (sasldb2) and the Postfix +# sender map, while OpenDKIM and Postfix (different users) must read them. +# Membership in this group — plus setgid dirs under /data (set up in # entrypoint.sh) — lets OpenDKIM read the panel-owned keys and lets Postfix read # the sasldb2/sender map, and lets the panel reach the supervisor control socket # to signal OpenDKIM/Postfix reloads without any process running as root. @@ -67,15 +67,15 @@ RUN groupadd --system selfpost \ && usermod -aG selfpost opendkim \ && usermod -aG selfpost postfix -# The panel reads the mail queue with `postqueue -p` (spec 7.2.11, and the -# status page's queue card). postqueue is setgid postdrop, which normally gives -# it the group needed to reach Postfix's showq socket — but the documented -# deployment runs with `no-new-privileges`, which disables setgid transitions, -# so the panel would always see "Permission denied". Making `panel` a real -# member of postdrop grants the same access without relying on a setgid -# escalation the hardening deliberately forbids. postdrop membership is -# read-side only: it does not let the panel bypass any Postfix restriction that -# a local user does not already have through the world-executable sendmail. +# The panel reads the mail queue with `postqueue -p` (and the status page's +# queue card). postqueue is setgid postdrop, which normally gives it the group +# needed to reach Postfix's showq socket — but the documented deployment runs +# with `no-new-privileges`, which disables setgid transitions, so the panel +# would always see "Permission denied". Making `panel` a real member of postdrop +# grants the same access without relying on a setgid escalation the hardening +# deliberately forbids. postdrop membership is read-side only: it does not let +# the panel bypass any Postfix restriction that a local user does not already +# have through the world-executable sendmail. RUN usermod -aG postdrop panel # Runtime directories: milter sockets and the consolidated persistent root. @@ -118,5 +118,5 @@ HEALTHCHECK --interval=30s --timeout=5s --start-period=90s --retries=3 \ CMD curl -fsS http://127.0.0.1:8080/healthz || exit 1 # The entrypoint fixes /data ownership (bind mount) as root, then execs -# supervisord, which becomes PID 1 and owns process supervision (spec 4). +# supervisord, which becomes PID 1 and owns process supervision. ENTRYPOINT ["/usr/local/bin/entrypoint.sh"] diff --git a/build/crashexit.py b/build/crashexit.py index 368d2d3..d7f2c5e 100644 --- a/build/crashexit.py +++ b/build/crashexit.py @@ -4,7 +4,7 @@ If any managed program exhausts its restart retries and enters FATAL, this listener signals supervisord (its parent) to terminate, so the whole container exits and Docker's `restart` policy can recreate it cleanly — rather than -lingering "alive" with a dead Postfix/OpenDKIM/panel (spec 4). +lingering "alive" with a dead Postfix/OpenDKIM/panel. Communication with supervisord uses the event listener protocol over stdin and stdout, so stdout must carry only protocol tokens. diff --git a/build/entrypoint.sh b/build/entrypoint.sh index 1155e4f..ca5b0a0 100644 --- a/build/entrypoint.sh +++ b/build/entrypoint.sh @@ -9,14 +9,14 @@ set -e # SELFPOST_HOSTNAME is an identity, not a setting with a safe default: it must # simultaneously match the PTR/rDNS record, the certificate CN/SAN, and the -# Cyrus SASL realm (spec 5.2 p.3, 8). The panel (main.go saslRealm()) and -# postfix-config.sh each fall back independently when it's unset — to -# `localhost` and to the container hostname respectively — so accounts get -# written under one realm and looked up under another and authentication -# silently fails for every application, while HELO also stops matching the -# PTR record and mail that does go out lands in spam. No fallback can be -# correct, so fail loudly here, before either side of that split has a chance -# to run, rather than leave a green panel with broken mail. +# Cyrus SASL realm. The panel (main.go saslRealm()) and postfix-config.sh each +# fall back independently when it's unset — to `localhost` and to the container +# hostname respectively — so accounts get written under one realm and looked up +# under another and authentication silently fails for every application, while +# HELO also stops matching the PTR record and mail that does go out lands in +# spam. No fallback can be correct, so fail loudly here, before either side of +# that split has a chance to run, rather than leave a green panel with broken +# mail. if [ -z "$SELFPOST_HOSTNAME" ]; then cat >&2 <<'EOF' FATAL: SELFPOST_HOSTNAME is not set. @@ -52,11 +52,11 @@ case "$SELFPOST_HOSTNAME" in ;; esac -# The persistent root /data is a host bind mount (spec 9), so it arrives owned -# by the host user (typically root), not by the unprivileged panel user that -# actually writes the SQLite database, setup token and DKIM keys (spec 7.6.8). -# Fix its ownership here — the one place still running as root — before handing -# off to supervisord, which starts the panel as the panel user. +# The persistent root /data is a host bind mount, so it arrives owned by the +# host user (typically root), not by the unprivileged panel user that actually +# writes the SQLite database, setup token and DKIM keys. Fix its ownership here +# — the one place still running as root — before handing off to supervisord, +# which starts the panel as the panel user. # # Mode must stay world-traversable (0755): OpenDKIM and Postfix reach their # trees under /data as other users. Go's testing.TempDir is 0700, and a bare @@ -71,7 +71,7 @@ chmod 755 /data # normalised on its own below. find /data -mindepth 1 -maxdepth 1 ! -user panel ! -name log ! -name postfix -exec chown -R panel:panel {} + -# DKIM key tree (spec 6, 9). The panel (user `panel`) generates keys and writes +# DKIM key tree. The panel (user `panel`) generates keys and writes # the OpenDKIM tables; OpenDKIM (user `opendkim`) must read them. Normalise the # tree on every start so it is correct whether /data is fresh, restarted, or # just restored from a backup: @@ -89,7 +89,7 @@ find /data/opendkim -type d -exec chmod 2750 {} + chmod 0640 /data/opendkim/KeyTable /data/opendkim/SigningTable find /data/opendkim/keys -type f -name '*.private' -exec chmod 0640 {} + -# Application SASL accounts (spec 5.1, 9). The panel (user `panel`) writes the +# Application SASL accounts. The panel (user `panel`) writes the # sasldb2 via saslpasswd2; Postfix (user `postfix`) reads it to authenticate SMTP # clients. Share it through the `selfpost` group the same way as the DKIM tree: # setgid directory so new files inherit the group, and the database itself @@ -99,8 +99,8 @@ chown -R panel:selfpost /data/sasl chmod 2750 /data/sasl [ -e /data/sasl/sasldb2 ] && chmod 0640 /data/sasl/sasldb2 -# Postfix state under /data (spec 5.1, architecture.md § Persistence). The panel -# writes sender_login_maps; Postfix owns the on-disk queue tree under queue/. +# Postfix state under /data (architecture.md § Persistence). The panel writes +# sender_login_maps; Postfix owns the on-disk queue tree under queue/. mkdir -p /data/postfix/queue [ -e /data/postfix/sender_login_maps ] || : > /data/postfix/sender_login_maps # Inbound relay maps (written by the panel when INBOUND_RELAY_ENABLE=true). @@ -132,14 +132,14 @@ chown -R postfix:selfpost /data/log chmod 2750 /data/log find /data/log -type f -exec chmod 0640 {} + -# Milter socket directories (spec 5 p.3, 7.3). Postfix (user `postfix`) must -# actually CONNECT to both milter sockets — OpenDKIM's and the panel's -# journal-milter — not just probe them at start-up. The sockets are -# created by the opendkim and panel users respectively, so bridge them to -# `postfix` through the shared `selfpost` group: group-owned + setgid dirs mean -# each socket created inside inherits group `selfpost`, and group-traversable -# (2750) lets postfix reach it. Without this, smtpd cannot talk to OpenDKIM and, -# because signing is strict (default_action=tempfail), rejects all mail. +# Milter socket directories. Postfix (user `postfix`) must actually CONNECT to +# both milter sockets — OpenDKIM's and the panel's journal-milter — not just +# probe them at start-up. The sockets are created by the opendkim and panel +# users respectively, so bridge them to `postfix` through the shared `selfpost` +# group: group-owned + setgid dirs mean each socket created inside inherits +# group `selfpost`, and group-traversable (2750) lets postfix reach it. Without +# this, smtpd cannot talk to OpenDKIM and, because signing is strict +# (default_action=tempfail), rejects all mail. mkdir -p /run/opendkim /run/selfpost chown opendkim:selfpost /run/opendkim chown panel:selfpost /run/selfpost diff --git a/build/logrotate-loop.sh b/build/logrotate-loop.sh index 4a16970..ed59572 100644 --- a/build/logrotate-loop.sh +++ b/build/logrotate-loop.sh @@ -1,13 +1,13 @@ #!/bin/sh -# Periodic logrotate for /data/log/mail.log (spec 9, 10). Rotation renames the -# file, recreates it (`create 0640 postfix selfpost`, matching a cold container +# Periodic logrotate for /data/log/mail.log. Rotation renames the file, +# recreates it (`create 0640 postfix selfpost`, matching a cold container # start), then runs `postfix reload` (the same mechanism `postfix logrotate` # uses): postlogd keeps writing to the renamed inode until reload, and the -# panel's log-tailer holds its own descriptor on that inode, so nothing -# written before the reload is lost. `create` (rather than `nocreate`) matters -# here beyond timing: a postlogd-triggered recreate lands the file at 0600 -# owned by postfix, which the unprivileged panel process cannot read — -# confirmed on a live container — so logrotate must be the one to create it. +# panel's log-tailer holds its own descriptor on that inode, so nothing written +# before the reload is lost. `create` (rather than `nocreate`) matters here +# beyond timing: a postlogd-triggered recreate lands the file at 0600 owned by +# postfix, which the unprivileged panel process cannot read — confirmed on a +# live container — so logrotate must be the one to create it. # # logrotate itself only rotates once the configured "daily" period has elapsed # (tracked in /var/lib/logrotate/status), so it is safe to invoke this more diff --git a/build/opendkim.conf b/build/opendkim.conf index 4a6898a..82ac531 100644 --- a/build/opendkim.conf +++ b/build/opendkim.conf @@ -1,9 +1,9 @@ -# OpenDKIM — per-domain signing (spec 6). +# OpenDKIM — per-domain signing. # # Signing is strictly per-domain: each sending domain has its own key pair and # selector. The panel generates keys under /data/opendkim/keys// and # keeps KeyTable/SigningTable in sync as domains are added or removed, then asks -# supervisord to send this process SIGUSR1 to reload the tables (spec 6.2, 6.5). +# supervisord to send this process SIGUSR1 to reload the tables. # # Both table files are created (empty) by entrypoint.sh before OpenDKIM starts, # so the daemon comes up cleanly on a fresh /data with no domains yet and simply diff --git a/build/postfix-config.sh b/build/postfix-config.sh index 0c3075f..f0aaa01 100644 --- a/build/postfix-config.sh +++ b/build/postfix-config.sh @@ -1,16 +1,16 @@ #!/bin/sh -# Generate the outbound-relay Postfix configuration (spec 5, 5.1, 5.2). +# Generate the outbound-relay Postfix configuration. # # Run as root from entrypoint.sh on every container start, BEFORE supervisord # starts the Postfix wrapper. Like the rest of SelfPost's runtime state it is # re-derived from the environment on each start rather than persisted, so a # fresh, restarted or restored container always ends up with the same config # (the only panel-edited Postfix file, sender_login_maps, lives under /data and -# is generated separately by the panel — spec 5.1). +# is generated separately by the panel). # # main.cf is written with `postconf -e`, the master.cf submission services with # `postconf -M`/`-P`. No user input is interpolated: every value here comes from -# a fixed literal or a container environment variable (spec 7.6.3). +# a fixed literal or a container environment variable. set -eu # postconf -P refuses master.cf -o values that contain whitespace; inbound port @@ -44,16 +44,16 @@ master_cf_set_smtp_inet_o() { mv /etc/postfix/master.cf.new /etc/postfix/master.cf } -# --- environment knobs (spec 8) ---------------------------------------------- +# --- environment knobs ------------------------------------------------------- # Server hostname: used as HELO name AND, crucially, as the Cyrus SASL realm the # sasldb2 accounts are looked up under. The panel creates accounts under realm # $SELFPOST_HOSTNAME (SASL_REALM), so myhostname MUST match or authentication # fails. Fall back to the container hostname only outside a real deployment. HOSTNAME_VALUE="${SELFPOST_HOSTNAME:-$(hostname -f 2>/dev/null || hostname)}" -# TLS material supplied by the reverse-proxy through a read-only bind mount -# (spec 5.2). The relay requires TLS on 465; if these files are absent the -# master still starts but TLS handshakes on 465 fail until they appear. +# TLS material supplied by the reverse-proxy through a read-only bind mount. The +# relay requires TLS on 465; if these files are absent the master still starts +# but TLS handshakes on 465 fail until they appear. # # Postfix insists the private key is root-owned and mode 0600. The bind mount # is often :ro and owned by the host user (e2e TempDir / CI runner UID), so @@ -75,8 +75,8 @@ if [ -f "$TLS_CERT_SRC" ] && [ -f "$TLS_KEY_SRC" ]; then TLS_KEY="$TLS_INTERNAL_DIR/privkey.pem" fi -# Level-1 rate limit (native Postfix anvil, spec 5 p.5 / 7.4). Conservative -# defaults, sensible during IP warm-up (spec 10). +# Level-1 rate limit (native Postfix anvil). Conservative defaults, sensible +# during IP warm-up. RATE_MSGS="${RATE_LIMIT_MESSAGES_PER_IP:-100}" RATE_WINDOW="${RATE_LIMIT_WINDOW_SECONDS:-3600}" @@ -85,16 +85,16 @@ RATE_WINDOW="${RATE_LIMIT_WINDOW_SECONDS:-3600}" OPENDKIM_SOCK="${OPENDKIM_SOCKET:-/run/opendkim/opendkim.sock}" JOURNAL_SOCK="${JOURNAL_MILTER_SOCKET:-/run/selfpost/journal.sock}" -# Persistent panel-managed sender map (spec 5.1); texthash needs no postmap, so -# the unprivileged panel can rewrite it and just ask for a reload. +# Persistent panel-managed sender map; texthash needs no postmap, so the +# unprivileged panel can rewrite it and just ask for a reload. SENDER_LOGIN_MAPS="${POSTFIX_SENDER_LOGIN_MAPS:-/data/postfix/sender_login_maps}" # Transit mail queue under /data so deferred/active messages survive container # recreate (architecture.md § Persistence). Distinct from sender_login_maps. QUEUE_DIR="${POSTFIX_QUEUE_DIR:-/data/postfix/queue}" SASLDB_PATH="${SASL_DB_PATH:-/data/sasl/sasldb2}" -# Optional submission service on 587 (spec 5 p.1: off by default, enabled only -# when a client library needs STARTTLS on 587 instead of implicit TLS on 465). +# Optional submission service on 587 (off by default, enabled only when a client +# library needs STARTTLS on 587 instead of implicit TLS on 465). SUBMISSION_ENABLE="${SUBMISSION_ENABLE:-false}" # Optional inbound relay (backup-MX / forwarder). Off by default: port 25 does @@ -153,13 +153,13 @@ postconf -e \ "alias_maps=" \ "alias_database=" -# Outbound delivery: straight to the recipient MX, opportunistic TLS (spec 5 p.2). +# Outbound delivery: straight to the recipient MX, opportunistic TLS. postconf -e \ "smtp_tls_security_level=may" \ "smtp_tls_note_starttls_offer=yes" -# TLS server material shared by every inbound service (spec 5.2). auth_only -# guarantees credentials are never accepted before TLS is up on any port. +# TLS server material shared by every inbound service. auth_only guarantees +# credentials are never accepted before TLS is up on any port. postconf -e \ "smtpd_tls_cert_file=${TLS_CERT}" \ "smtpd_tls_key_file=${TLS_KEY}" \ @@ -167,11 +167,11 @@ postconf -e \ "smtpd_tls_auth_only=yes" \ "smtpd_tls_loglevel=1" -# SASL: Cyrus with the local sasldb2 the panel maintains (spec 5.1). The realm -# is left implicit (smtpd_sasl_local_domain empty) so the authenticated name -# Postfix uses for sender_login_maps is the BARE login the panel writes into the -# map; the sasldb2 lookup still resolves because Postfix hands Cyrus $myhostname -# as the server realm, which equals the realm the accounts were created under. +# SASL: Cyrus with the local sasldb2 the panel maintains. The realm is left +# implicit (smtpd_sasl_local_domain empty) so the authenticated name Postfix +# uses for sender_login_maps is the BARE login the panel writes into the map; +# the sasldb2 lookup still resolves because Postfix hands Cyrus $myhostname as +# the server realm, which equals the realm the accounts were created under. postconf -e \ "smtpd_sasl_auth_enable=yes" \ "smtpd_sasl_type=cyrus" \ @@ -181,43 +181,42 @@ postconf -e \ "smtpd_sasl_tls_security_options=noanonymous" \ "broken_sasl_auth_clients=yes" -# Sender binding (spec 5.1 p.3, the critical anti-spoofing control). texthash -# resolves the full address first, then the "@domain" wildcard, so both address -# modes work from the same map. +# Sender binding (the critical anti-spoofing control). texthash resolves the +# full address first, then the "@domain" wildcard, so both address modes work +# from the same map. postconf -e \ "smtpd_sender_login_maps=texthash:${SENDER_LOGIN_MAPS}" \ "queue_directory=${QUEUE_DIR}" # Restrictions: authenticated clients only, no relay to foreign destinations, # and every authenticated sender address must be owned by its login. NO -# permit_mynetworks anywhere — authorisation is by credentials, never by network -# (spec 5 p.1/p.4, 5.1). This is what makes an open relay impossible. +# permit_mynetworks anywhere — authorisation is by credentials, never by +# network. This is what makes an open relay impossible. postconf -e \ "smtpd_helo_required=yes" \ "smtpd_relay_restrictions=permit_sasl_authenticated, reject_unauth_destination" \ "smtpd_recipient_restrictions=permit_sasl_authenticated, reject_unauth_destination" \ "smtpd_sender_restrictions=reject_sender_login_mismatch, permit" -# Level-1 rate limit by client IP (spec 5 p.5). Backstop that keeps working even -# if the journal-milter (level 2) is down. +# Level-1 rate limit by client IP. Backstop that keeps working even if the +# journal-milter (level 2) is down. postconf -e \ "smtpd_client_message_rate_limit=${RATE_MSGS}" \ "anvil_rate_time_unit=${RATE_WINDOW}s" -# Milter chain (spec 5 p.3, 7.3). OpenDKIM signs and is treated strictly -# (default_action=tempfail: if it is unreachable, defer rather than send -# unsigned). The journal-milter is monitoring only and is fail-open -# (default_action=accept): its failure must never block the relay. Per-milter -# settings use Postfix 3.0+ brace syntax. +# Milter chain. OpenDKIM signs and is treated strictly (default_action=tempfail: +# if it is unreachable, defer rather than send unsigned). The journal-milter is +# monitoring only and is fail-open (default_action=accept): its failure must +# never block the relay. Per-milter settings use Postfix 3.0+ brace syntax. postconf -e \ "milter_protocol=6" \ "milter_default_action=tempfail" \ "smtpd_milters={ unix:${OPENDKIM_SOCK}, default_action=tempfail }, { unix:${JOURNAL_SOCK}, default_action=accept }" \ "non_smtpd_milters=" -# Bounded milter timeouts (spec 7.3): a *hung* milter (socket accepts but never -# replies) must fail open just like a crash, not stall mail acceptance until the -# Postfix defaults (300s content) elapse. With default_action per milter, a +# Bounded milter timeouts: a *hung* milter (socket accepts but never replies) +# must fail open just like a crash, not stall mail acceptance until the Postfix +# defaults (300s content) elapse. With default_action per milter, a # journal-milter hang then resolves to accept and an OpenDKIM hang to tempfail, # but within seconds rather than minutes. Values are well above any healthy # response time (signing/DB insert are sub-second), so they never fire in normal @@ -228,8 +227,8 @@ postconf -e \ "milter_content_timeout=${MILTER_CONTENT_TIMEOUT:-30s}" # --- master.cf: inbound submission services ---------------------------------- -# smtps (465, implicit/wrapper TLS) — the primary, always-on submission service -# (spec 5 p.1). chroot=n so smtpd can read the sasldb2 and sender map under /data +# smtps (465, implicit/wrapper TLS) — the primary, always-on submission +# service. chroot=n so smtpd can read the sasldb2 and sender map under /data # and the Cyrus config outside any chroot. postconf -M "smtps/inet=smtps inet n - n - - smtpd" postconf -P \ @@ -237,10 +236,10 @@ postconf -P \ "smtps/inet/smtpd_sasl_auth_enable=yes" \ "smtps/inet/smtpd_client_restrictions=permit_sasl_authenticated,reject" -# submission (587, STARTTLS) — optional (spec 5 p.1). Same SASL/milter/limits; -# the only difference is TLS is negotiated via STARTTLS, so require encryption -# before auth. Added only when SUBMISSION_ENABLE=true, otherwise removed so a -# restart after disabling it does not leave the port listening. +# submission (587, STARTTLS) — optional. Same SASL/milter/limits; the only +# difference is TLS is negotiated via STARTTLS, so require encryption before +# auth. Added only when SUBMISSION_ENABLE=true, otherwise removed so a restart +# after disabling it does not leave the port listening. if [ "${SUBMISSION_ENABLE}" = "true" ]; then postconf -M "submission/inet=submission inet n - n - - smtpd" postconf -P \ @@ -301,6 +300,13 @@ if [ "${INBOUND_RELAY_ENABLE}" = "true" ] || [ "${DMARC_REPORTS_ENABLE}" = "true "smtp_tls_policy_maps=" fi + # Milters on port 25. main.cf's chain (OpenDKIM strict + journal-milter) is + # for the SUBMISSION path only: OpenDKIM must not gate someone else's + # inbound mail (a signing outage would defer it), and the journal-milter + # would file inbound mail into the outbound send log under the *sender's* + # domain — polluting Deliveries and letting a forged From: consume that + # domain's level-2 rate-limit budget. So smtpd_milters is always overridden + # here: either the optional antispam milter, or nothing at all. INBOUND_MILTERS="" if [ "${INBOUND_RELAY_ENABLE}" = "true" ] && [ -n "${INBOUND_ANTISPAM_MILTER}" ]; then case "${INBOUND_ANTISPAM_MILTER}" in @@ -346,9 +352,7 @@ if [ "${INBOUND_RELAY_ENABLE}" = "true" ] || [ "${DMARC_REPORTS_ENABLE}" = "true "smtp/inet/smtpd_client_message_rate_limit=${PORT25_RATE}" \ "smtp/inet/message_size_limit=${PORT25_SIZE}" master_cf_set_smtp_inet_o smtpd_recipient_restrictions "${RECIPIENT_RESTRICTIONS}" - if [ -n "${INBOUND_MILTERS}" ]; then - master_cf_set_smtp_inet_o smtpd_milters "${INBOUND_MILTERS}" - fi + master_cf_set_smtp_inet_o smtpd_milters "${INBOUND_MILTERS}" else postconf -MX "smtp/inet" 2>/dev/null || true postconf -MX "dmarc-ingest/unix-pipe" 2>/dev/null || true @@ -359,18 +363,18 @@ else "smtp_tls_policy_maps=" fi -# Disable chroot for every service (spec 5 p.2). Debian ships the smtp delivery -# agent and others chrooted to /var/spool/postfix, where they cannot read -# /etc/resolv.conf — so outbound MX lookups fail with "Host not found" and mail -# never leaves. Inside a container the chroot buys little (the container is the -# isolation boundary) and breaks DNS/TLS trust-store access, so turn it off -# uniformly. Our own smtps/submission services are already n; this covers the -# delivery agents and the rest. +# Disable chroot for every service. Debian ships the smtp delivery agent and +# others chrooted to /var/spool/postfix, where they cannot read /etc/resolv.conf +# — so outbound MX lookups fail with "Host not found" and mail never leaves. +# Inside a container the chroot buys little (the container is the isolation +# boundary) and breaks DNS/TLS trust-store access, so turn it off uniformly. Our +# own smtps/submission services are already n; this covers the delivery agents +# and the rest. postconf -F "*/*/chroot=n" # --- Cyrus SASL app config for smtpd ----------------------------------------- # Tells the Cyrus library (invoked by smtpd via smtpd_sasl_path=smtpd) to verify -# passwords straight from the panel-maintained sasldb2 (spec 5.1). PLAIN/LOGIN +# passwords straight from the panel-maintained sasldb2. PLAIN/LOGIN # only — both are safe because TLS is mandatory before auth on every port. mkdir -p /etc/postfix/sasl cat > /etc/postfix/sasl/smtpd.conf < :443 redirect vhost, and renews in the background via its own timer. -# The resulting PEM files land at -# /etc/letsencrypt/live/mail.example.com/{fullchain,privkey}.pem on the host -# — bind-mount that directory read-only into the SelfPost container (see +# (`certbot --apache -d mail.example.com`). Certbot edits this file in place to +# add the SSLCertificateFile/SSLCertificateKeyFile directives and a :80 -> :443 +# redirect vhost, and renews in the background via its own timer. The resulting +# PEM files land at +# /etc/letsencrypt/live/mail.example.com/{fullchain,privkey}.pem on the host — +# bind-mount that directory read-only into the SelfPost container (see # ../docker-compose.yml, the `./certs:/etc/postfix/tls:ro` volume) so Postfix # can present the very same certificate on 465/587. One certificate, two -# consumers (spec 10 p.4) — no separate cert just for the panel. +# consumers — no separate cert just for the panel. ServerName mail.example.com @@ -26,9 +25,9 @@ ProxyPass "/" "http://127.0.0.1:8080/" ProxyPassReverse "/" "http://127.0.0.1:8080/" - # The panel is plain HTTP behind the proxy; it never terminates TLS - # itself (spec 10 p.2). Cookies are still marked Secure by the panel - # (spec 7.6.6) because the browser only ever sees this HTTPS vhost. + # The panel is plain HTTP behind the proxy; it never terminates TLS itself. + # Cookies are still marked Secure by the panel because the browser only ever + # sees this HTTPS vhost. diff --git a/deploy/caddy/docker-compose.caddy.yml b/deploy/caddy/docker-compose.caddy.yml index 4ea8377..7cef432 100644 --- a/deploy/caddy/docker-compose.caddy.yml +++ b/deploy/caddy/docker-compose.caddy.yml @@ -1,10 +1,10 @@ -# Alternative reverse-proxy: Caddy (spec 10.3) — the simplest option, fully -# automatic ACME with no separate certbot container. Caddy writes certificates -# as plain PEM under its own data directory, which this fragment bind-mounts -# to the host so SelfPost can read the same files. +# Alternative reverse-proxy: Caddy — the simplest option, fully automatic ACME +# with no separate certbot container. Caddy writes certificates as plain PEM +# under its own data directory, which this fragment bind-mounts to the host so +# SelfPost can read the same files. # -# NOTE (spec 10.3 explicitly flags this): Caddy's on-disk cert path includes +# NOTE: Caddy's on-disk cert path includes # the ACME CA's name as a path segment, e.g. # /caddy/certificates/acme-v02.api.letsencrypt.org-directory//.crt # This has been stable across recent Caddy releases but is an internal diff --git a/deploy/docker-compose.yml b/deploy/docker-compose.yml index 474d1e7..70fea17 100644 --- a/deploy/docker-compose.yml +++ b/deploy/docker-compose.yml @@ -1,12 +1,12 @@ -# SelfPost — default deployment, reverse-proxy = Apache (spec 10, 10.5). +# SelfPost — default deployment, reverse-proxy = Apache. # -# This file only runs SelfPost itself. Apache is assumed to already be -# installed on the HOST (the target audience for this project typically runs -# Apache there already — spec 10.5) and reverse-proxies HTTPS for the panel; -# it is not containerised here. See ../apache/selfpost-vhost.conf for a ready -# vhost fragment, and docs/guide.md "Reverse proxy" for the -# certbot steps that produce the PEM files this compose file mounts. +# This file only runs SelfPost itself. Apache is assumed to already be installed +# on the HOST (the target audience for this project typically runs Apache there +# already) and reverse-proxies HTTPS for the panel; it is not containerised +# here. See ../apache/selfpost-vhost.conf for a ready vhost fragment, and +# docs/guide.md "Reverse proxy" for the certbot steps that produce the PEM files +# this compose file mounts. # # Usage: # 1. Copy this file (and .env.example as .env) next to your own ./data and @@ -15,23 +15,22 @@ # TLS paths are fixed in this file to match that bind mount, not .env. # 3. docker compose up -d # -# The image tag below is FIXED on purpose (spec 10 p.10, 7.5.A): backup -# restore compares the manifest version against the running binary's version, -# so ":latest" would make that check meaningless. Bump the tag deliberately -# when you want to upgrade. +# The image tag below is FIXED on purpose: backup restore compares the manifest +# version against the running binary's version, so ":latest" would make that +# check meaningless. Bump the tag deliberately when you want to upgrade. services: selfpost: - image: ghcr.io/mixeme/selfpost:1.9.1 + image: ghcr.io/mixeme/selfpost:1.9.2 restart: unless-stopped environment: SELFPOST_HOSTNAME: "${SELFPOST_HOSTNAME:?set the mail/panel hostname, e.g. mail.example.com}" # Path Postfix reads inside the container — matches the certs bind mount - # below. Point these at your reverse-proxy's PEM output (spec 10 p.2). + # below. Point these at your reverse-proxy's PEM output. TLS_CERT_FILE: /etc/postfix/tls/fullchain.pem TLS_KEY_FILE: /etc/postfix/tls/privkey.pem - # Set to true to also publish RFC 6409 submission (587/STARTTLS) - # alongside the primary 465/smtps listener (spec 5). + # Set to true to also publish RFC 6409 submission (587/STARTTLS) alongside + # the primary 465/smtps listener. SUBMISSION_ENABLE: "${SUBMISSION_ENABLE:-false}" INBOUND_RELAY_ENABLE: "${INBOUND_RELAY_ENABLE:-false}" DMARC_REPORTS_ENABLE: "${DMARC_REPORTS_ENABLE:-false}" @@ -41,14 +40,14 @@ services: INBOUND_ANTISPAM_MILTER_ACTION: "${INBOUND_ANTISPAM_MILTER_ACTION:-accept}" INBOUND_RATE_LIMIT_MESSAGES_PER_IP: "${INBOUND_RATE_LIMIT_MESSAGES_PER_IP:-20}" INBOUND_MESSAGE_SIZE_LIMIT: "${INBOUND_MESSAGE_SIZE_LIMIT:-26214400}" - # Level-1 backstop rate limit (anvil, spec 5.5, 7.4); per-domain/app - # limits (level 2) are configured later from the panel itself. + # Level-1 backstop rate limit (anvil); per-domain/app limits (level 2) are + # configured later from the panel itself. RATE_LIMIT_MESSAGES_PER_IP: "${RATE_LIMIT_MESSAGES_PER_IP:-100}" RATE_LIMIT_WINDOW_SECONDS: "${RATE_LIMIT_WINDOW_SECONDS:-3600}" # How long the send log keeps rows before the background sweep deletes - # them (spec 7.3, 9) — the main driver of /data growth over time. + # them — the main driver of /data growth over time. SEND_LOG_RETENTION_DAYS: "${SEND_LOG_RETENTION_DAYS:-90}" - # Sliding idle timeout for the panel login session, in days (spec 7.6.6). + # Sliding idle timeout for the panel login session, in days. PANEL_SESSION_IDLE_DAYS: "${PANEL_SESSION_IDLE_DAYS:-7}" # Resolvers the panel's PTR/SPF/DKIM/DMARC checks query directly, so they # report what the internet sees rather than what this host's own stub @@ -59,27 +58,27 @@ services: # client spoof its rate-limit key. TRUSTED_PROXY_CIDR: "${TRUSTED_PROXY_CIDR:-}" volumes: - # All persistent state lives under /data (spec 9): SQLite DB, DKIM keys, - # sasldb2, sender map, setup token. Back this up (panel button or the - # selfpost-backup CLI) before you touch it directly. - # Postfix's mail.log is here too (./data/log, rotated daily, 14 files - # kept) so the delivery lines that resolve a queued send-log row survive - # a container recreate; it is diagnostics and is left out of backups. + # All persistent state lives under /data: SQLite DB, DKIM keys, sasldb2, + # sender map, setup token. Back this up (panel button or the + # selfpost-backup CLI) before you touch it directly. Postfix's mail.log is + # here too (./data/log, rotated daily, 14 files kept) so the delivery + # lines that resolve a queued send-log row survive a container recreate; + # it is diagnostics and is left out of backups. - ./data:/data # Read-only project root for full backups: docker-compose.yml, .env, and # certs/ are archived alongside /data (architecture.md § Persistence). - .:/selfpost-deploy:ro - # Read-only: SelfPost only ever reads certificates, never manages them - # (spec 10 p.2). Point this at wherever your reverse-proxy/certbot - # writes PEM files, e.g. /etc/letsencrypt on the host. + # Read-only: SelfPost only ever reads certificates, never manages them. + # Point this at wherever your reverse-proxy/certbot writes PEM files, e.g. + # /etc/letsencrypt on the host. - ./certs:/etc/postfix/tls:ro ports: # 465 (smtps, primary) and optionally 587 (submission/STARTTLS) are - # published directly — mail traffic bypasses Apache entirely, it only - # ever proxies the panel's HTTP(S) (spec 10 p.2-3). The panel itself - # (8080) is intentionally NOT published here: Apache reaches it over - # the host network at 127.0.0.1:8080 (see the vhost fragment), so the - # panel is never directly reachable from the internet without TLS. + # published directly — mail traffic bypasses Apache entirely, it only ever + # proxies the panel's HTTP(S). The panel itself (8080) is intentionally + # NOT published here: Apache reaches it over the host network at + # 127.0.0.1:8080 (see the vhost fragment), so the panel is never directly + # reachable from the internet without TLS. - "465:465" # 587 is mapped even when SUBMISSION_ENABLE=false; Postfix listens only # when the variable is true — see docs/guide.md "Published ports". @@ -88,7 +87,7 @@ services: # when the variable is true. - "25:25" - "127.0.0.1:8080:8080" - # Hardening (spec 10 p.6). SelfPost's entrypoint still needs to run as + # Hardening. SelfPost's entrypoint still needs to run as # root very briefly to fix /data ownership and normalise permissions # under the shared `selfpost` group (see build/entrypoint.sh) before # supervisord drops the panel to an unprivileged user — so this cannot be diff --git a/deploy/nginx/docker-compose.nginx.yml b/deploy/nginx/docker-compose.nginx.yml index 07bc567..1bc15a3 100644 --- a/deploy/nginx/docker-compose.nginx.yml +++ b/deploy/nginx/docker-compose.nginx.yml @@ -1,7 +1,7 @@ -# Alternative reverse-proxy: nginx (spec 10.3). PEM files land on the host -# exactly like the Apache+certbot scenario — nginx and certbot are close -# cousins here, both writing/reading plain PEM under /etc/letsencrypt. +# Alternative reverse-proxy: nginx. PEM files land on the host exactly like the +# Apache+certbot scenario — nginx and certbot are close cousins here, both +# writing/reading plain PEM under /etc/letsencrypt. # # This is a FRAGMENT, not a full replacement for ../docker-compose.yml: it # adds an nginx + certbot pair and removes the panel's host port publish (nginx @@ -29,9 +29,9 @@ services: volumes: !override - ./data:/data - .:/selfpost-deploy:ro - # Same host directory certbot below writes into — plain bind mount, - # no named volume, so the PEM files are as directly inspectable as in - # the Apache scenario (spec 10.3). + # Same host directory certbot below writes into — plain bind mount, no + # named volume, so the PEM files are as directly inspectable as in the + # Apache scenario. - ./nginx/certbot-etc/live/mail.example.com:/etc/postfix/tls:ro nginx: diff --git a/deploy/nginx/nginx.conf.example b/deploy/nginx/nginx.conf.example index a5e9ee3..4ca40a7 100644 --- a/deploy/nginx/nginx.conf.example +++ b/deploy/nginx/nginx.conf.example @@ -1,6 +1,6 @@ -# nginx vhost for the SelfPost panel (spec 10.3). Proxies HTTPS to the panel -# over the compose network; mail (465/587) is published directly by the -# selfpost container and never touches nginx. +# nginx vhost for the SelfPost panel. Proxies HTTPS to the panel over the +# compose network; mail (465/587) is published directly by the selfpost +# container and never touches nginx. server { listen 80; diff --git a/deploy/traefik/docker-compose.traefik.yml b/deploy/traefik/docker-compose.traefik.yml index 7674ebb..b2b6455 100644 --- a/deploy/traefik/docker-compose.traefik.yml +++ b/deploy/traefik/docker-compose.traefik.yml @@ -1,7 +1,7 @@ -# Alternative reverse-proxy: Traefik (spec 10.3). Traefik does NOT write plain -# PEM files — everything (cert + key) lives bundled inside acme.json. SelfPost -# needs separate PEM files for Postfix, so an extraction step is required; see +# Alternative reverse-proxy: Traefik. Traefik does NOT write plain PEM files — +# everything (cert + key) lives bundled inside acme.json. SelfPost needs +# separate PEM files for Postfix, so an extraction step is required; see # extract-cert.sh in this directory and the cron/systemd-timer note below. # # Merge with the base file — run this from the deploy/ directory (Compose diff --git a/deploy/traefik/extract-cert.sh b/deploy/traefik/extract-cert.sh index 4eb1bf4..e942512 100644 --- a/deploy/traefik/extract-cert.sh +++ b/deploy/traefik/extract-cert.sh @@ -1,9 +1,9 @@ #!/bin/sh -# Extracts a PEM cert/key pair for one domain out of Traefik's acme.json -# (spec 10.3: "Traefik keeps certificates in acme.json, so a PEM extraction -# step is required"). Run this on the host, after Traefik has issued or -# renewed the certificate, and again on a schedule (cron/systemd timer) since -# acme.json is not itself watched by SelfPost/Postfix. +# Extracts a PEM cert/key pair for one domain out of Traefik's acme.json — +# Traefik keeps its certificates there, so a PEM extraction step is required. +# Run this on the host, after Traefik has issued or renewed the certificate, and +# again on a schedule (cron/systemd timer) since acme.json is not itself watched +# by SelfPost/Postfix. # # Requires jq. Usage: ./extract-cert.sh set -eu diff --git a/docs/architecture.md b/docs/architecture.md index d99ee35..3a99cca 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -27,7 +27,7 @@ Managed programs ([build/supervisord.conf](../build/supervisord.conf)): | Program | User | Priority | Role | |---|---|---|---| | `opendkim` | root → `opendkim` (`UserID` in opendkim.conf) | 100 | DKIM signing milter | -| `panel` | panel | 200 | HTTP UI + journal-milter + log-tailer goroutine | +| `panel` | panel | 200 | HTTP UI + journal-milter + log-tailer + rate-limit recalc | | `postfix` | root (wrapper) | 300 | MTA — started only after both milter sockets exist | | `postfix-reload` | root | — | On-demand `postfix reload` (autostart off) | | `cert-reload` | root | 400 | Daily `postfix reload` for renewed TLS certs | @@ -54,30 +54,44 @@ Client ──TLS+SASL──► Postfix (465 smtps, optional 587 submission) ├─► journal-milter (send log + L2 rate limits, fail-open) └─► outbound MX delivery (port 25 client) -Internet ──► Postfix smtp inet :25 (only when INBOUND_RELAY_ENABLE=true) +Internet ──► Postfix smtp inet :25 (when INBOUND_RELAY_ENABLE=true + │ and/or DMARC_REPORTS_ENABLE=true) │ - ├─► optional antispam milter (inbound only) - └─► smtp:[upstream]:port (transport_maps; no local delivery) + ├─► optional antispam milter (inbound relay only) + ├─► DMARC aggregate ingest (pipe → dmarc-ingest) + └─► smtp:[upstream]:port (inbound relay only; + transport_maps; no local delivery) ``` -The inbound listener is **absent** when the flag is off (`postconf -MX smtp/inet` -removes Debian's stock smtpd). Outbound delivery still uses the `smtp unix` -client; it is not the same service. +The smtp/inet listener is **absent** when both flags are off (`postconf -MX +smtp/inet` removes Debian's stock smtpd). Outbound delivery still uses the +`smtp unix` client; it is not the same service. ### Postfix ([build/postfix-config.sh](../build/postfix-config.sh)) - **465/smtps** — implicit TLS, SASL required; primary listener. - **587/submission** — only when `SUBMISSION_ENABLE=true`; STARTTLS with `smtpd_tls_security_level=encrypt`. -- **25/smtp inet** — only when `INBOUND_RELAY_ENABLE=true`. No SASL, no - OpenDKIM, no journal-milter. Accepts only `relay_domains` + - `relay_recipient_maps` (`reject_unauth_destination`, - `reject_unlisted_recipient`). Maps under `/data/postfix/` - (`relay_domains`, `transport`, `relay_recipients`, `tls_policy`), written - atomically by [internal/postfix/inbound.go](../internal/postfix/inbound.go). - Domains with an empty upstream host are omitted from the maps. Optional - `INBOUND_ANTISPAM_MILTER` on this listener only; default - `milter_default_action` is fail-open (`accept`). +- **25/smtp inet** — when `INBOUND_RELAY_ENABLE=true` and/or + `DMARC_REPORTS_ENABLE=true`. No SASL, no OpenDKIM, no journal-milter — + `smtpd_milters` is always overridden on this service (to the antispam milter + or to nothing), because main.cf's submission chain would otherwise let a + signing outage defer relayed mail and would file inbound mail into the + outbound send log under the sender's domain. + **Inbound relay** (`INBOUND_RELAY_ENABLE=true`): accepts only + `relay_domains` + `relay_recipient_maps` (`reject_unauth_destination`, + `reject_unlisted_recipient`). Maps under `/data/postfix/` (`relay_domains`, + `transport`, `relay_recipients`, `tls_policy`), written atomically by + [internal/postfix/inbound.go](../internal/postfix/inbound.go). Domains with + an empty upstream host are omitted from the maps. Optional + `INBOUND_ANTISPAM_MILTER` only when inbound relay is enabled (not on + DMARC-only port 25); default `milter_default_action` is fail-open + (`accept`). **DMARC ingest** (`DMARC_REPORTS_ENABLE=true`): allow-listed + report addresses via `check_recipient_access` on `postfix/dmarc_recipients`; + messages pipe to `dmarc-ingest` (symlink to `panel`). When both flags are + on, one listener serves both paths; per-IP rate uses + `INBOUND_RATE_LIMIT_MESSAGES_PER_IP` and message size uses the greater of + `INBOUND_MESSAGE_SIZE_LIMIT` and `DMARC_MESSAGE_SIZE_LIMIT`. - **No open relay** — `permit_sasl_authenticated`, `reject_unauth_destination`; `smtpd_sender_login_maps` + `reject_sender_login_mismatch`. - **Level-1 rate limit** — `smtpd_client_message_rate_limit` / @@ -93,7 +107,7 @@ by the panel. Socket `/run/opendkim/opendkim.sock`. ### Panel binary ([cmd/panel](../cmd/panel)) -One process, three roles: +One process, four roles: 1. **HTTP server** — `:8080` (`PANEL_HTTP_ADDR`); HTTPS terminated by reverse proxy only. On start it runs `postconf -h` once for the deferred-mail retry @@ -107,15 +121,20 @@ One process, three roles: 2. **journal-milter** — unix socket `JOURNAL_MILTER_SOCKET`; records From/To/ Subject/SASL user at DATA; enforces level-2 rate limits; **fail-open** (`default_action=accept`) so milter failure does not stop mail. Domain - ceilings apply to every client IP; an application ceiling with trusted IPs - raises the limit for those IPs only and skips the domain check (guide § Rate - limiting). The level-2 count is the stored send-log rows plus the messages + ceilings apply to every client IP; an application ceiling **overrides** the + domain one for that login, higher or lower (guide § Rate limiting). Since + 1.9.0 the client IP allow-list is a separate, restrictive control on the + application (`applications.auth_ip_restrict`), checked here at `MAIL FROM` + and fail-open like the rest of this milter — not an authentication + boundary. The level-2 count is the stored send-log rows plus the messages this process has admitted but not yet written (`internal/milter/inflight.go`), so concurrent sessions cannot each spend the same last slot; a reservation is released at end-of-message, on ABORT, or after a 10-minute TTL. 3. **log-tailer** — follows `MAIL_LOG`, updates send-log delivery status by queue-id. Send-log `queued → sent` transitions depend on this goroutine alone (`UpdateStatus` is only called from [internal/logtail](../internal/logtail/logtail.go)). +4. **rate-limit recalc** — every six hours (and on demand from the domain + page), recomputes level-2 **Auto** rate limits from send-log statistics. Milter chain in Postfix: OpenDKIM (tempfail) then journal (accept on failure). @@ -200,11 +219,13 @@ below is a summary — HTMX fragment endpoints | `/deliveries`, `/deliveries/{id}` | Send log with filters; scoped to assigned domains for domain-admins | | `/mail-queue`, `/mail-queue/*` | **Global.** Postfix queue view; retry-policy card on the page (not the HTMX fragment) | | `/system-log`, `/system-log/*` | **Global.** `mail.log` tail | -| `/reload` | **Global.** `POST` — reload OpenDKIM + Postfix maps | +| `/reload` | **Global.** `POST` — reload OpenDKIM tables, Postfix sender map, and inbound relay maps when enabled (not DMARC maps — see § Persistence restore) | | `/backup`, `/backup/*` | **Global.** Full backup download (page also hosts the import form) | +| `/help` | In-panel operator help (any authenticated user) | | `/settings` | Username/password for any user; DMARC report default is **global** only | | `/users`, `/users/*` | **Global.** Panel user CRUD | | `/inbound`, `/inbound/{id}`, `/inbound/{id}/*` | **Global.** Inbound relay domains. Registered only when `INBOUND_RELAY_ENABLE=true`; otherwise 404. | +| `/dmarc`, `/dmarc/reports/{id}`, `/dmarc/domains/{id}` | **Global** list and report detail; domain roll-up scoped like deliveries. Registered only when `DMARC_REPORTS_ENABLE=true`; otherwise 404. | HTMX polling refreshes monitoring fragments (5 s while the operator is active on the page, 30 s when the tab is visible but idle, none when hidden — scheduled in @@ -271,6 +292,7 @@ flowchart TB domainSvc["internal/domain"] appSvc["internal/app"] inboundSvc["internal/inbound"] + dmarcSvc["internal/dmarc"] end subgraph persistence ["Persistence"] store["internal/store — SQLite, embedded migrations"] @@ -293,6 +315,7 @@ flowchart TB web --> domainSvc web --> appSvc web --> inboundSvc + web --> dmarcSvc web --> backupPkg web --> dnscheck web --> health @@ -300,15 +323,18 @@ flowchart TB domainSvc --> store appSvc --> store inboundSvc --> store + dmarcSvc --> store milterPkg --> store logtail --> store domainSvc --> postfix appSvc --> postfix inboundSvc --> postfix + dmarcSvc --> postfix ``` -The three roles inside the `panel` process (HTTP server, journal-milter, -log-tailer goroutine) share one binary and one SQLite handle on purpose — see +The four roles inside the `panel` process (HTTP server, journal-milter, +log-tailer, rate-limit recalc) share one binary and one SQLite handle on +purpose — see [Panel binary](#panel-binary-cmdpanel) for why, and *Persistence* below for the single-connection trade-off that follows from it. @@ -327,6 +353,9 @@ single-connection trade-off that follows from it. | `postfix/transport` | Inbound next-hop `smtp:[host]:port` | | `postfix/relay_recipients` | Inbound recipient allow-list or `@domain` catch-all | | `postfix/tls_policy` | TLS policy for inbound next hops | +| `postfix/dmarc_recipients` | Allow-listed DMARC aggregate report addresses | +| `postfix/dmarc_transport` | Pipe transport for report ingest | +| `postfix/dmarc_relay_domains` | Domains accepted for DMARC report delivery | | `postfix/queue/` | Postfix transit mail (deferred/active); survives container recreate | | `log/mail.log` | Postfix delivery log + rotated copies (excluded from backups) | | `manifest.json` | Backup version stamp (consumed on restore) | @@ -344,10 +373,12 @@ under `/data`), `docker-compose.yml`, `.env`, and `certs/` when present; version check on restore. Requires the project directory mounted read-only at `SELFPOST_DEPLOY_ROOT` (`/selfpost-deploy` in the default compose file). On the first successful boot after restore, the panel runs one **Resync** — OpenDKIM's -tables, Postfix's sender map, and (when `INBOUND_RELAY_ENABLE=true`) inbound -relay maps are re-derived from SQLite and both daemons are reloaded, so drift -between the extracted archive and the database is healed before mail flows -(same step as `POST /reload` on demand). Stopped-container +tables, Postfix's sender map, inbound relay maps (when +`INBOUND_RELAY_ENABLE=true`), and DMARC maps (when `DMARC_REPORTS_ENABLE=true`) +are re-derived from SQLite and both daemons are reloaded, so drift between the +extracted archive and the database is healed before mail flows. Manual +`POST /reload` on the Status page resyncs OpenDKIM, the sender map, and +inbound maps only — not DMARC maps. Stopped-container `tar` of `./data` alone remains possible for state-only copies (see guide). **Optional encryption** of the two secret-bearing downloads @@ -398,6 +429,9 @@ unsupported rather than as a missing doc: `POSTFIX_TLS_POLICY_MAPS` (`/data/postfix/tls_policy`) — same desync if overridden without matching the panel writer in [internal/postfix/inbound.go](../internal/postfix/inbound.go), + `POSTFIX_DMARC_RECIPIENTS` (`/data/postfix/dmarc_recipients`), + `POSTFIX_DMARC_TRANSPORT` (`/data/postfix/dmarc_transport`), + `POSTFIX_DMARC_RELAY_DOMAINS` (`/data/postfix/dmarc_relay_domains`), `POSTFIX_QUEUE_DIR` (`/data/postfix/queue` — set in `build/postfix-config.sh`), `SELFPOST_DEPLOY_ROOT` (`/selfpost-deploy` — operator project directory for full backups; mount `.:/selfpost-deploy:ro` in compose). diff --git a/docs/assets/icon.png b/docs/assets/icon.png deleted file mode 100644 index f21a361ea1f7dcda17d755b1f27a9869cf72cd68..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 874169 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%0A4sG+ft3JBrdNBP2A)fYyIWa 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 z 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⁣(nUQuZSz4@B8bzvjIU_Xdq>a|m%AEQObuY7` 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%0A6?u0ny4lwnPYrf{iS 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

;M6IVL14DHD+vD{ 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

Zm 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 z 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�?<&N}zwnLoraTzmtf^ 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

u8azi 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�N>8 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

2wv&=`@XB6k9Zn&S19EI8>Y8G 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 G{Qm>Hq?q6U diff --git a/docs/assets/panel-redesign/a/domain.html b/docs/assets/panel-redesign/a/domain.html new file mode 100644 index 0000000..8c9bb97 --- /dev/null +++ b/docs/assets/panel-redesign/a/domain.html @@ -0,0 +1,164 @@ + + + + + +example.org · Outbound domains · SelfPost + + + + + + + +

+ + +
+
+
+

Outbound domains /

+

example.org

+
+ 1 284 messages in 30 days · peak 96 msg/h · average 1.8 msg/h +
+ +
+
01

Connection

The same for every domain
+
+
+
Server
+
mail.example.org
+
+
+
Ports
+
465 — SSL/TLS (implicit)
587 — STARTTLS (submission)
+
+
+
+ +
+
+ 02

DNS records

+ Checked 3 min ago +
+
+ +
+

DKIM

publishedNot a secret · selector sp2026
+
+
Host
sp2026._domainkey.example.org
+
Type
TXT
+
Value
v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx3kqV0mJd8e2f1Yb7Qw5uT9sLr4nHc6pZaXo1vKe0yWm2gBt8RjN5dCq3hUf7lPs9aEi4oMz6xTb1kGv0nYw…IDAQAB
+
+
+ +
+

SPF

mismatchMerge into the existing record — never publish a second one
+
+
Host
example.org
+
Type
TXT
+
Value
v=spf1 ip4:203.0.113.25 ~all
+
In DNS now
v=spf1 include:_spf.google.com ~all
+
+

The published record does not authorize 203.0.113.25. Add ip4:203.0.113.25 before ~all.

+
+ +
+

DMARC

publishedReport address from Settings
+
+
Host
_dmarc.example.org
+
Type
TXT
+
Value
v=DMARC1; p=none; rua=mailto:dmarc@mail.example.org
+
+

p=none does not affect delivery. Tighten to quarantine, then reject, once the reports look clean.

+
+
+ +
+
+ 03

Applications

+ SASL logins that may send as this domain + Add application +
+ + + + + + + + + + + + + + + + + + +
LoginMay send as30 daysLimits
*@example.org1 102 msg · peak 96/h200 / hEditNew passwordDelete
alerts@example.org, noc@example.org182 msg · peak 14/hdomain 2 IPsEditNew passwordDelete
+
+ +
+
04

Domain settings

Rarely changed
+
+ DMARC reportsSame as Settings — dmarc@mail.example.orgdefault +

The form opens here.

+
+
+ Rate limitAuto ×3 — 288 messages / hour, recalculated yesterdayactive +

The form opens here.

+
+
+ ExportDKIM key and applications as one file, optionally encrypted +

The form opens here.

+
+
+ Delete domainRemoves the DKIM key and both applications +

The confirmation opens here.

+
+
+ + +
+ + + diff --git a/docs/assets/panel-redesign/a/login.html b/docs/assets/panel-redesign/a/login.html new file mode 100644 index 0000000..30d06be --- /dev/null +++ b/docs/assets/panel-redesign/a/login.html @@ -0,0 +1,37 @@ + + + + + +Sign in · SelfPost + + + + + + + + + + + + diff --git a/docs/assets/panel-redesign/a/status.html b/docs/assets/panel-redesign/a/status.html new file mode 100644 index 0000000..da61c4f --- /dev/null +++ b/docs/assets/panel-redesign/a/status.html @@ -0,0 +1,136 @@ + + + + + +Overview · SelfPost + + + + + + + +
+
+ +
+
+ +
+
+
+

mail.example.org

+

Overview

+
+ Updated 14:02:31 UTC · refreshes every 10 s +
+ +
+
SELFPOSTWARN1 OF 6 CHECKS
+
+

Mail is flowing. One thing needs attention.

+

The TLS certificate expires in 12 days and has not renewed yet. Everything else is healthy.

+
+
+ +
+
01

Checks

Open a row for its detail
+ +
+ Processes5 of 5 runningok +
+ + + + + + +
ProgramStateDetail
postfixrunningpid 41, uptime 18 days
opendkimrunningpid 39, uptime 18 days
+
+
+ +
+ TLS certificateExpires in 12 days — renewal has not runwarn +
+
+
Expires
2026-10-03 09:14 UTC
+
Names
mail.example.org
+
+

Renewal normally runs 30 days before expiry. Check that port 80 is reachable and look for acme lines in the system log.

+
+
+ +
+ MachineCPU 12 % · memory 41 % · ↓ 18 kB/s ↑ 44 kB/sok +
+ + + + + + + +
ResourceUsageDetail
CPU12 %2 cores, load 0.21
Memory41 %812 MB of 1.9 GB
Network↓ 18 kB/s · ↑ 44 kB/seth0: 2.1 GB in, 6.4 GB out
+
+
+ +
+ QueuesOutbound empty · inbound emptyok +

No messages are waiting. Open the outbound queue or the inbound queue.

+
+ +
+ Milter sockets2 of 2 answeringok +
+ + + + + + +
MilterStateDetail
opendkimokinet:127.0.0.1:8891
journal-milterokunix:/run/selfpost/journal.sock
+
+
+ +
+ Hostname and reverse DNSmail.example.org ⇄ 203.0.113.25ok +
+
+
Hostname
mail.example.org
+
Lookup
mail.example.org → 203.0.113.25
203.0.113.25 → mail.example.org
+
+
+
+
+
+ + +
+ + + diff --git a/docs/assets/panel-redesign/a/theme.css b/docs/assets/panel-redesign/a/theme.css new file mode 100644 index 0000000..e5dffaa --- /dev/null +++ b/docs/assets/panel-redesign/a/theme.css @@ -0,0 +1,206 @@ +/* Direction A — "Blank" (the postal form). Pico CSS v2 carries every generic + control (type, buttons, inputs, tables, details, dropdown); this file maps + the brand onto Pico's variables and adds only what is SelfPost's own: + the two-row header, the sheet, numbered form sections, the postmark and + the DNS record block. */ + +/* :root[...] rather than [data-theme=light] alone: Pico declares its light + palette on :root:not([data-theme=dark]), which a bare attribute selector + loses to. */ +:root[data-theme=light] { + --pico-font-family-sans-serif: var(--sp-sans); + --pico-font-family-monospace: var(--sp-mono); + --pico-font-family: var(--sp-sans); + --pico-border-radius: 2px; + --pico-spacing: .9rem; + --pico-typography-spacing-vertical: .9rem; + --pico-form-element-spacing-vertical: .5rem; + --pico-form-element-spacing-horizontal: .75rem; + + --pico-background-color: var(--sp-paper); + --pico-color: var(--sp-ink); + --pico-muted-color: var(--sp-muted); + --pico-muted-border-color: var(--sp-rule); + --pico-h1-color: var(--sp-ink); --pico-h2-color: var(--sp-ink); + --pico-h3-color: var(--sp-ink); --pico-h4-color: var(--sp-ink); + + --pico-primary: var(--sp-brick); + --pico-primary-background: var(--sp-brick); + --pico-primary-border: var(--sp-brick); + --pico-primary-underline: rgb(122 59 46 / .35); + --pico-primary-hover: var(--sp-brick-dark); + --pico-primary-hover-background: var(--sp-brick-dark); + --pico-primary-hover-border: var(--sp-brick-dark); + --pico-primary-hover-underline: var(--sp-brick-dark); + --pico-primary-focus: rgb(122 59 46 / .25); + --pico-primary-inverse: #fff; + + --pico-secondary: var(--sp-ink-2); + --pico-secondary-background: var(--sp-ink-2); + --pico-secondary-border: var(--sp-ink-2); + --pico-secondary-hover: var(--sp-ink); + --pico-secondary-hover-background: var(--sp-ink); + --pico-secondary-hover-border: var(--sp-ink); + --pico-secondary-focus: rgb(18 22 28 / .2); + --pico-secondary-inverse: #fff; + + --pico-form-element-background-color: #fff; + --pico-form-element-border-color: var(--sp-rule-strong); + --pico-form-element-active-border-color: var(--sp-brick); + --pico-form-element-focus-color: rgb(122 59 46 / .25); + --pico-table-border-color: var(--sp-rule); + --pico-code-background-color: var(--sp-well); + --pico-code-color: var(--sp-ink); + --pico-dropdown-background-color: #fff; + --pico-dropdown-border-color: var(--sp-rule); + --pico-dropdown-hover-background-color: var(--sp-brick-tint); +} + +/* Pico grows the root font with the viewport (up to 131%). An ops panel wants + one size everywhere. */ +:root { font-size: 15px; } +body { min-height: 100vh; display: flex; flex-direction: column; } +h1 { font-size: 1.7rem; font-weight: 600; margin: 0; } +small, .sp-muted { color: var(--sp-muted); } +code, .sp-mono { font-family: var(--sp-mono); font-size: .88em; } + +/* ---- header: sections on the first row, the section's pages on the second */ +.sp-wrap { width: 100%; max-width: 72rem; margin-inline: auto; padding-inline: 1.5rem; } +.sp-bar { background: var(--sp-sheet); border-bottom: 1px solid var(--sp-rule); } +.sp-bar nav { align-items: center; } +.sp-bar nav li { padding-block: .45rem; } +.sp-brand img { height: 46px; width: auto; display: block; } +.sp-sections a { + font-family: var(--sp-mono); font-size: .8rem; font-weight: 600; + letter-spacing: .09em; text-transform: uppercase; text-decoration: none; + color: var(--sp-muted); padding: .5rem .8rem; margin: 0; border-radius: 0; +} +.sp-sections a:hover { color: var(--sp-ink); } +.sp-sections a[aria-current] { color: var(--sp-brick); box-shadow: inset 0 -3px 0 var(--sp-brick); } +.sp-user summary { font-size: .9rem; } +.sp-pages { background: var(--sp-paper); border-bottom: 1px solid var(--sp-rule); } +.sp-pages .sp-wrap { display: flex; gap: 1.6rem; } +.sp-pages a { color: var(--sp-muted); text-decoration: none; padding: .6rem 0; font-size: .95rem; } +.sp-pages a:hover { color: var(--sp-ink); } +.sp-pages a[aria-current] { color: var(--sp-ink); font-weight: 600; box-shadow: inset 0 -2px 0 var(--sp-ink); } + +/* ---- the sheet: one column, one width, every page */ +main.sp-wrap { flex: 1; padding-block: 1.8rem 2.5rem; } +.sp-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin-bottom: 1.4rem; } +.sp-head .sp-kicker { font-family: var(--sp-mono); font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; color: var(--sp-muted); margin: 0 0 .15rem; } +.sp-head .sp-kicker a { color: inherit; } +.sp-head-actions { display: flex; gap: .5rem; align-items: center; } +.sp-head-actions > * { margin: 0; } +.sp-sheet { background: var(--sp-sheet); border: 1px solid var(--sp-rule); margin-bottom: 1.4rem; } +.sp-sheet > header { + display: flex; align-items: baseline; gap: .8rem; padding: .7rem 1.2rem; + border-bottom: 1px solid var(--sp-rule); +} +.sp-sheet > header .sp-no { font-family: var(--sp-mono); font-size: .75rem; color: var(--sp-brick); font-weight: 600; } +.sp-sheet > header h2 { + font-family: var(--sp-mono); font-size: .8rem; font-weight: 600; letter-spacing: .1em; + text-transform: uppercase; margin: 0; flex: 1; +} +.sp-sheet > header small { font-size: .85rem; } +.sp-sheet > .sp-body { padding: 1.1rem 1.2rem; } +.sp-sheet > .sp-body > :last-child { margin-bottom: 0; } +.sp-foot { color: var(--sp-muted); font-size: .8rem; border-top: 1px solid var(--sp-rule); padding-block: 1rem; } +.sp-foot a { color: inherit; } + +/* ---- status tag and the postmark */ +.sp-tag { + display: inline-block; font-family: var(--sp-mono); font-size: .72rem; font-weight: 600; + letter-spacing: .08em; text-transform: uppercase; padding: .1rem .5rem; + border: 1px solid var(--sp-idle-rule); background: var(--sp-idle-bg); color: var(--sp-idle); + border-radius: 2px; white-space: nowrap; text-decoration: none; +} +.sp-tag.ok { color: var(--sp-ok); background: var(--sp-ok-bg); border-color: var(--sp-ok-rule); } +.sp-tag.warn { color: var(--sp-warn); background: var(--sp-warn-bg); border-color: var(--sp-warn-rule); } +.sp-tag.fail { color: var(--sp-fail); background: var(--sp-fail-bg); border-color: var(--sp-fail-rule); } + +.sp-verdict { display: flex; align-items: center; gap: 1.5rem; padding: 1.3rem 1.4rem; } +.sp-verdict h2 { margin: 0 0 .2rem; font-size: 1.35rem; font-weight: 600; } +.sp-verdict p { margin: 0; color: var(--sp-muted); } +.sp-postmark { + flex: none; width: 5.6rem; height: 5.6rem; border-radius: 50%; + border: 2px solid currentColor; outline: 1px solid currentColor; outline-offset: 3px; + display: grid; place-content: center; text-align: center; transform: rotate(-9deg); + font-family: var(--sp-mono); font-weight: 600; letter-spacing: .08em; line-height: 1.15; + color: var(--sp-ok); +} +.sp-postmark.warn { color: var(--sp-warn); } +.sp-postmark.fail { color: var(--sp-fail); } +.sp-postmark b { font-size: 1.25rem; display: block; } +.sp-postmark span { font-size: .55rem; display: block; } + +/* ---- ledger: one row per check, the row opens into its detail */ +.sp-ledger details { margin: 0; padding: 0; border-bottom: 1px solid var(--sp-rule); } +.sp-ledger details:last-child { border-bottom: 0; } +.sp-ledger summary { + display: grid; grid-template-columns: 13rem 1fr auto 1.2rem; gap: 1rem; align-items: center; + padding: .75rem 1.2rem; margin: 0; color: var(--sp-ink); +} +.sp-ledger summary::after { grid-column: 4; margin: 0; float: none; } +.sp-ledger summary:hover { background: var(--sp-paper); } +.sp-ledger summary strong { font-weight: 600; } +.sp-ledger summary span.sp-muted { font-size: .93rem; } +.sp-ledger .sp-detail { padding: .2rem 1.2rem 1.1rem 15.2rem; } +.sp-ledger .sp-detail table { margin: 0; font-size: .93rem; } +.sp-ledger .sp-detail > :last-child { margin-bottom: 0; } +.sp-ledger meter { width: 9rem; height: .7rem; vertical-align: middle; margin-right: .5rem; } + +/* ---- label / value / copy: the DNS record block and connection settings */ +.sp-record { padding: 1.1rem 1.2rem; border-bottom: 1px solid var(--sp-rule); } +.sp-record:last-child { border-bottom: 0; } +.sp-record-head { display: flex; align-items: center; gap: .7rem; margin-bottom: .7rem; } +.sp-record-head h3 { margin: 0; font-size: 1.05rem; font-weight: 600; } +.sp-record-head small { margin-left: auto; } +.sp-kv { display: grid; grid-template-columns: 6.5rem 1fr; gap: .45rem 1rem; align-items: start; margin: 0; } +.sp-kv dt { + font-family: var(--sp-mono); font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; + color: var(--sp-muted); padding-top: .5rem; margin: 0; +} +.sp-kv dd { margin: 0; display: flex; gap: .4rem; align-items: stretch; min-width: 0; } +.sp-value { + flex: 1; min-width: 0; font-family: var(--sp-mono); font-size: .86rem; line-height: 1.5; + background: var(--sp-well); border: 1px solid var(--sp-rule); padding: .4rem .65rem; + overflow-wrap: anywhere; border-radius: 2px; +} +.sp-value.plain { background: none; border-color: transparent; padding-left: 0; font-family: var(--sp-sans); font-size: .95rem; } +.sp-copy { + flex: none; align-self: flex-start; height: 2.15rem; margin: 0; padding: 0 .7rem; font-size: .8rem; + --pico-background-color: #fff; --pico-border-color: var(--sp-rule-strong); --pico-color: var(--sp-ink-2); +} +.sp-copy:hover { --pico-background-color: var(--sp-paper); --pico-border-color: var(--sp-ink-2); --pico-color: var(--sp-ink); } +.sp-note { margin: .7rem 0 0 7.5rem; font-size: .9rem; color: var(--sp-muted); } +.sp-note.fail { color: var(--sp-fail); } +.sp-cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr)); gap: 0 2.4rem; } + +/* ---- applications */ +.sp-apps { margin: 0; font-size: .95rem; } +.sp-apps td, .sp-apps th { padding-inline: 1.2rem .4rem; vertical-align: middle; } +.sp-apps th { font-family: var(--sp-mono); font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; color: var(--sp-muted); font-weight: 400; } +.sp-apps td:last-child { text-align: right; padding-right: 1.2rem; white-space: nowrap; } +.sp-apps .sp-login { font-family: var(--sp-mono); font-weight: 600; } +.sp-link-btn { font-size: .9rem; margin-left: .9rem; } +.sp-link-btn.danger { color: var(--sp-fail); --pico-underline: rgb(180 35 24 / .35); text-decoration-color: rgb(180 35 24 / .35); } +.sp-btn-sm { padding: .35rem .8rem; font-size: .9rem; margin: 0; width: auto; } + +/* ---- sign-in */ +.sp-signin { flex: 1; display: grid; place-content: center; padding: 2rem 1.5rem; } +.sp-signin-card { width: 23rem; max-width: 100%; } +.sp-signin-card img { display: block; width: 15rem; height: auto; margin: 0 auto 1.6rem; } +.sp-signin-card .sp-body { padding: 1.4rem 1.4rem 1.2rem; } +.sp-signin-card button { margin-bottom: 0; } +.sp-tagline { text-align: center; font-family: var(--sp-mono); font-size: .75rem; letter-spacing: .16em; color: var(--sp-muted); margin-top: 1.2rem; } + +@media (max-width: 48rem) { + .sp-ledger summary { grid-template-columns: 1fr auto 1.2rem; } + .sp-ledger summary span.sp-muted { grid-column: 1 / -1; grid-row: 2; } + .sp-ledger summary::after { grid-column: 3; } + .sp-ledger .sp-detail { padding-left: 1.2rem; } + .sp-kv { grid-template-columns: 1fr; gap: .15rem; } + .sp-kv dt { padding-top: .5rem; } + .sp-note { margin-left: 0; } + .sp-pages .sp-wrap { overflow-x: auto; white-space: nowrap; } +} diff --git a/docs/assets/panel-redesign/b/domain.html b/docs/assets/panel-redesign/b/domain.html new file mode 100644 index 0000000..c5053bd --- /dev/null +++ b/docs/assets/panel-redesign/b/domain.html @@ -0,0 +1,212 @@ + + + + + +example.org · Outbound domains · SelfPost + + + + + + +
+ + + +
+ + +
+
+
+ +
+
+

DNS records

Checked 3 min ago
+ +
+
+

DKIM

published + Not a secret · selector sp2026 +
+
+
+ +
+
+
+ + +
+
+ +
+
+
+
+ +
+
+

SPF

mismatch + Merge into the existing record — never publish a second one +
+
+
+ +
+
+
+ + +
+
+ +
+
+
+ + +
The published record does not authorize 203.0.113.25. Add ip4:203.0.113.25 before ~all.
+
+
+
+ +
+
+

DMARC

published + Report address from Settings +
+
+
+ +
+
+
+ + +
+
+ +
+
+
+
+
+
+ +
+
+

Connection

+
+
+
Server
mail.example.org
+
Ports
465 SSL/TLS
587 STARTTLS
+
+

The same for every domain. Authenticate with an application login.

+
+
+ +
+

Sent, 30 days

+
+
+
Messages
1 284
+
Peak
96 /h
+
Average
1.8 /h
+
+
+
+ + +
+ +
+
+

Applications

SASL logins that may send as this domain
+
+ + + + + + + + + + + + + + +
LoginMay send as30 daysLimits
prod-server*@example.org1 102 msg · peak 96/h200 / h
alertsalerts@example.org, noc@example.org182 msg · peak 14/hdomain 2 IPs
+
+
+
+ +
+
+
+ + +
+
+ + diff --git a/docs/assets/panel-redesign/b/login.html b/docs/assets/panel-redesign/b/login.html new file mode 100644 index 0000000..b85d14a --- /dev/null +++ b/docs/assets/panel-redesign/b/login.html @@ -0,0 +1,36 @@ + + + + + +Sign in · SelfPost + + + + + +
+
+
+
+
+

Sign in

+
+
+ + +
+
+ + +
+ +
+
+
+
YOUR SMTP. YOUR RULES.
+
© 2026 Mix · License (AGPL-3.0) · Source · No warranty
+
+
+ + diff --git a/docs/assets/panel-redesign/b/status.html b/docs/assets/panel-redesign/b/status.html new file mode 100644 index 0000000..9573fc2 --- /dev/null +++ b/docs/assets/panel-redesign/b/status.html @@ -0,0 +1,168 @@ + + + + + +Overview · SelfPost + + + + + + +
+ + + +
+ + +
+
+ + + +
+
Machine
CPU 12 % · mem 41 %
OK
+
Processes
5 of 5 running
OK
+
Queues
Both empty
OK
+
TLS certificate
Expires in 12 days
Warn
+
Milter sockets
2 of 2 answering
OK
+
Reverse DNS
Forward = reverse
OK
+
+ +
+
+
+

Machine

ok
+
+ + + + + + + +
ResourceUsageDetail
CPU12 %2 cores, load 0.21
Memory41 %812 MB of 1.9 GB
Network↓ 18 kB/s · ↑ 44 kB/seth0: 2.1 GB in, 6.4 GB out
+
+
+
+ +
+
+

Processes

ok
+
+ + + + + + + + + +
ProgramStateDetail
postfixrunningpid 41, uptime 18 days
opendkimrunningpid 39, uptime 18 days
journal-milterrunningpid 40, uptime 18 days
panelrunningpid 44, uptime 18 days
dmarc-ingestrunningpid 47, uptime 18 days
+
+
+
+ +
+
+

TLS certificate

warn
+
+
+
Expires
2026-10-03 09:14 UTC
+
Names
mail.example.org
+
+

Renewal normally runs 30 days before expiry. Check port 80 and the system log.

+
+
+
+ +
+
+

Milter sockets

ok
+ + + + + + +
MilterState
opendkim
inet:127.0.0.1:8891
ok
journal-milter
unix:/run/selfpost/journal.sock
ok
+
+
+ +
+
+

Hostname and reverse DNS

ok
+
+
+
Hostname
mail.example.org
+
Lookup
→ 203.0.113.25
← mail.example.org
+
+
+ +
+
+
+ +
+
+ + +
+
+ + diff --git a/docs/assets/panel-redesign/b/theme.css b/docs/assets/panel-redesign/b/theme.css new file mode 100644 index 0000000..8a5a59a --- /dev/null +++ b/docs/assets/panel-redesign/b/theme.css @@ -0,0 +1,80 @@ +/* Direction B — "Console". Tabler (Bootstrap 5 admin kit) carries the shell, + cards, tables, badges, input groups and the sign-in page as shipped; this + file only re-points Tabler's variables at the brand and adds the two things + Tabler has no word for: a sidebar group label and the DNS record block. */ + +:root, [data-bs-theme=light] { + --tblr-font-sans-serif: var(--sp-sans); + --tblr-font-monospace: var(--sp-mono); + --tblr-body-bg: var(--sp-paper); + --tblr-body-color: var(--sp-ink); + --tblr-secondary: var(--sp-muted); + --tblr-border-color: var(--sp-rule); + --tblr-border-radius: 3px; + --tblr-border-radius-lg: 4px; + + --tblr-primary: #7a3b2e; + --tblr-primary-rgb: 122, 59, 46; + --tblr-link-color: #7a3b2e; + --tblr-link-color-rgb: 122, 59, 46; + --tblr-link-hover-color: #632f25; + --tblr-link-hover-color-rgb: 99, 47, 37; + + --tblr-green: #2c6b43; --tblr-green-rgb: 44, 107, 67; + --tblr-yellow: #b5700f; --tblr-yellow-rgb: 181, 112, 15; + --tblr-red: #b42318; --tblr-red-rgb: 180, 35, 24; + --tblr-success: #2c6b43; --tblr-success-rgb: 44, 107, 67; + --tblr-warning: #b5700f; --tblr-warning-rgb: 181, 112, 15; + --tblr-danger: #b42318; --tblr-danger-rgb: 180, 35, 24; +} +body { font-feature-settings: normal; } +.btn-primary { --tblr-btn-hover-bg: #632f25; --tblr-btn-active-bg: #632f25; } +code, .font-monospace { font-family: var(--sp-mono); } + +/* ---- sidebar: ink, with the stamp on its own paper */ +.navbar-vertical { + --tblr-navbar-bg: var(--sp-ink); background: var(--sp-ink); + --tblr-navbar-color: #aab2bd; --tblr-navbar-hover-color: #fff; --tblr-navbar-active-color: #fff; + --tblr-navbar-border-color: transparent; +} +.navbar-vertical .navbar-brand { padding: 1.1rem 0 .9rem; justify-content: flex-start; } +.navbar-vertical .navbar-brand img { height: 52px; width: auto; } +.navbar-vertical .nav-link { padding-block: .42rem; } +.navbar-vertical .nav-link-icon { font-size: 1.15rem; } +.navbar-vertical .nav-item.active > .nav-link { + background: rgb(255 255 255 / .07); box-shadow: inset 3px 0 0 #c4705e; color: #fff; +} +.sp-nav-label { + font-family: var(--sp-mono); font-size: .66rem; font-weight: 600; letter-spacing: .14em; + text-transform: uppercase; color: #6f7a88; padding: 1.1rem 1.5rem .3rem; +} +.sp-nav-foot { margin-top: auto; padding-bottom: .8rem; border-top: 1px solid rgb(255 255 255 / .08); padding-top: .6rem; } +.sp-nav-user { color: #6f7a88; font-size: .8rem; padding: .3rem 1.5rem; } + +/* ---- page */ +.page-pretitle { font-family: var(--sp-mono); letter-spacing: .1em; } +.card-title { font-weight: 600; } +.table thead th { font-family: var(--sp-mono); letter-spacing: .08em; } +.sp-tile .card-body { display: flex; align-items: center; gap: .8rem; padding: .85rem 1rem; } +.sp-tile .sp-tile-icon { font-size: 1.5rem; color: var(--sp-muted); } +.sp-tile .fw-semibold { line-height: 1.2; } +.sp-tile .status { margin-left: auto; } +progress.sp-bar { + appearance: none; -webkit-appearance: none; width: 8rem; height: .4rem; border: 0; + border-radius: 1rem; overflow: hidden; vertical-align: middle; margin-right: .6rem; background: var(--sp-well); +} +progress.sp-bar::-webkit-progress-bar { background: var(--sp-well); } +progress.sp-bar::-webkit-progress-value { background: var(--tblr-green); } +progress.sp-bar::-moz-progress-bar { background: var(--tblr-green); } + +/* ---- the DNS record block: Tabler's read-only input group, plus a status */ +.sp-record + .sp-record { border-top: 1px solid var(--sp-rule); } +.sp-record .form-control[readonly], .sp-record textarea[readonly] { + font-family: var(--sp-mono); font-size: .8rem; background: var(--sp-well); +} +.sp-record textarea { resize: none; } +.sp-record .form-label { font-size: .75rem; color: var(--sp-muted); margin-bottom: .25rem; } + +.sp-foot { color: var(--sp-muted); font-size: .8rem; } +.sp-signin-mark { width: 15rem; height: auto; } +.sp-tagline { font-family: var(--sp-mono); font-size: .72rem; letter-spacing: .16em; color: var(--sp-muted); } diff --git a/docs/assets/panel-redesign/c/domain.html b/docs/assets/panel-redesign/c/domain.html new file mode 100644 index 0000000..7059e5c --- /dev/null +++ b/docs/assets/panel-redesign/c/domain.html @@ -0,0 +1,200 @@ + + + + + +example.org · Outbound domains · SelfPost + + + + + + + + +
+
+
+
+
+

Outbound domains /

+

example.org

+
+
+
+
+
+ Add application +
+
+
+ +
+
+ +
+ +
+
+

DNS records

Checked 3 min ago
+ +
+

DKIM

publishedNot a secret · selector sp2026
+
+
+ +
+
+
+
+
+ +
+
+
+ +
+

SPF

mismatchMerge into the existing record — never publish a second one
+
+
+ +
+
+
+
+
+ +
+
+
+ +
+

The published record does not authorize 203.0.113.25. Add ip4:203.0.113.25 before ~all.

+
+
+ +
+

DMARC

publishedReport address from Settings
+
+
+ +
+
+
+
+
+ +
+
+
+
+ +
+

Applications

SASL logins that may send as this domain
+ + + + + + + + + + + + + + +
LoginMay send as30 daysLimits
prod-server*@example.org1 102 msg · peak 96/h200 / h
alertsalerts@example.org, noc@example.org182 msg · peak 14/hdomain 2 IPs
+
+ +
+
+
+

Connection

Same for every domain
+

mail.example.org

+

465 SSL/TLS · 587 STARTTLS

+
+
+
+
+

Sent, 30 days

+
+
1 284messages
+
96peak / h
+
1.8average / h
+
+
+
+
+
+
+ + +
+
+ + + diff --git a/docs/assets/panel-redesign/c/login.html b/docs/assets/panel-redesign/c/login.html new file mode 100644 index 0000000..4574b43 --- /dev/null +++ b/docs/assets/panel-redesign/c/login.html @@ -0,0 +1,38 @@ + + + + + +Sign in · SelfPost + + + + + + + + + + diff --git a/docs/assets/panel-redesign/c/status.html b/docs/assets/panel-redesign/c/status.html new file mode 100644 index 0000000..a3a42ff --- /dev/null +++ b/docs/assets/panel-redesign/c/status.html @@ -0,0 +1,117 @@ + + + + + +Overview · SelfPost + + + + + + + + +
+
+
+
+
+

mail.example.org

+

Overview

+
+
+
Updated 14:02:31 UTC · refreshes every 10 s
+
+ + + +
+
+
+

Outbound domains

+ + + + + + + +
DomainDNSApps30 days
example.orgDKIM SPF DMARC21 284 msg
shop.example.orgDKIM SPF DMARC118 920 msg
notify.acme.ioDKIM SPF DMARC3402 msg
+
+
+
+
+

Inbound domains

+ + + + + + +
DomainMXUpstream
lists.example.orgMXmx.internal:25
acme.ioMX10.0.4.12:2525
+
+
+
+ + +
+
+ + + diff --git a/docs/assets/panel-redesign/c/theme.css b/docs/assets/panel-redesign/c/theme.css new file mode 100644 index 0000000..f41edce --- /dev/null +++ b/docs/assets/panel-redesign/c/theme.css @@ -0,0 +1,98 @@ +/* Direction C — "Counter". Bulma v1 (pure CSS, no JavaScript, no data: URIs) + carries the navbar with hover dropdowns, columns, boxes, tables, tags, + the side menu and input-with-addon fields. This file points Bulma's HSL + variables at the brand and adds the health strip and the record block. */ + +:root { + --bulma-family-primary: var(--sp-sans); + --bulma-family-secondary: var(--sp-sans); + --bulma-family-code: var(--sp-mono); + --bulma-primary-h: 10deg; --bulma-primary-s: 45%; --bulma-primary-l: 33%; + --bulma-link-h: 10deg; --bulma-link-s: 45%; --bulma-link-l: 33%; + --bulma-success-h: 138deg; --bulma-success-s: 42%; --bulma-success-l: 30%; + --bulma-warning-h: 36deg; --bulma-warning-s: 85%; --bulma-warning-l: 55%; + --bulma-danger-h: 4deg; --bulma-danger-s: 76%; --bulma-danger-l: 40%; + --bulma-radius: 6px; --bulma-radius-large: 10px; + --bulma-body-size: 15px; + /* Bulma derives link text and the on-primary colour from lightness steps; + at the brick's 33 % both land off-brand, so they are pinned. */ + --bulma-link-text: var(--sp-brick); + --bulma-link-text-hover: var(--sp-brick-dark); +} +.button.is-primary, .button.is-primary:hover { color: #fff; } +a strong { color: inherit; } +html { background: var(--sp-paper); } +body { background: var(--sp-paper); color: var(--sp-ink); min-height: 100vh; display: flex; flex-direction: column; } +main { flex: 1; } +code { background: var(--sp-well); color: var(--sp-ink); border-radius: 3px; padding: .1em .35em; font-size: .85em; } + +/* ---- navbar: brick, the stamp on it, hover dropdowns */ +.navbar.is-primary { --bulma-navbar-height: 4rem; } +.navbar-brand img { max-height: 3rem; height: 3rem; } +.navbar.is-primary .navbar-item, .navbar.is-primary .navbar-link { color: var(--sp-on-brick); font-weight: 500; } +.navbar.is-primary .navbar-link::after { border-color: var(--sp-on-brick); } +.navbar.is-primary .navbar-start > .navbar-item.is-active, +.navbar.is-primary .navbar-start > .has-dropdown.sp-current > .navbar-link { box-shadow: inset 0 -3px 0 var(--sp-on-brick); } +.navbar-dropdown { border-top: 0; box-shadow: 0 8px 24px rgb(18 22 28 / .14); } +.navbar.is-primary .navbar-dropdown .navbar-item { color: var(--sp-ink); font-weight: 400; } +.navbar.is-primary .navbar-dropdown .navbar-item.is-active { color: var(--sp-brick); font-weight: 600; background: var(--sp-brick-tint); } + +/* ---- page */ +.sp-page { padding-block: 2rem 2.5rem; } +.sp-kicker { font-family: var(--sp-mono); font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; color: var(--sp-muted); } +.sp-kicker a { color: inherit; } +.title { color: var(--sp-ink); font-weight: 600; } +.box { box-shadow: none; border: 1px solid var(--sp-rule); } +.box > .sp-box-head { display: flex; align-items: center; gap: .75rem; margin-bottom: 1rem; } +.box > .sp-box-head h2 { font-size: 1.1rem; font-weight: 600; margin: 0; } +.box > .sp-box-head .sp-end { margin-left: auto; color: var(--sp-muted); font-size: .85rem; display: flex; gap: .6rem; align-items: center; } +.table { background: transparent; } +.table thead th { font-family: var(--sp-mono); font-size: .7rem; font-weight: 400; letter-spacing: .08em; text-transform: uppercase; color: var(--sp-muted); } +.table td { vertical-align: middle; } +.tag { font-family: var(--sp-mono); font-weight: 600; letter-spacing: .04em; } +.sp-muted { color: var(--sp-muted); } +.sp-mono { font-family: var(--sp-mono); } + +/* ---- health strip */ +.sp-health { display: grid; grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr)); gap: 0; padding: 0; overflow: hidden; } +.sp-health > a { + display: block; padding: 1rem 1.2rem; color: var(--sp-ink); border-right: 1px solid var(--sp-rule); + box-shadow: inset 0 3px 0 var(--sp-ok); +} +.sp-health > a:last-child { border-right: 0; } +.sp-health > a:hover { background: var(--sp-paper); } +.sp-health > a.warn { box-shadow: inset 0 3px 0 #d9962b; background: var(--sp-warn-bg); } +.sp-health > a.fail { box-shadow: inset 0 3px 0 var(--sp-fail); background: var(--sp-fail-bg); } +.sp-health .sp-h-name { font-family: var(--sp-mono); font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; color: var(--sp-muted); } +.sp-health .sp-h-value { font-size: 1.15rem; font-weight: 600; line-height: 1.3; } +.sp-health .sp-h-sub { font-size: .8rem; color: var(--sp-muted); } + +/* ---- domain page */ +.sp-side { position: sticky; top: 1.5rem; } +.menu-label { font-family: var(--sp-mono); letter-spacing: .1em; } +.menu-list a { display: flex; align-items: center; gap: .5rem; } +.menu-list a .tag { margin-left: auto; } +.sp-record + .sp-record { border-top: 1px solid var(--sp-rule); margin-top: 1.25rem; padding-top: 1.25rem; } +.sp-record-head { display: flex; align-items: center; gap: .6rem; margin-bottom: .75rem; } +.sp-record-head h3 { font-size: 1rem; font-weight: 600; margin: 0; } +.sp-record-head small { margin-left: auto; color: var(--sp-muted); } +.sp-record .label { font-size: .75rem; font-weight: 400; color: var(--sp-muted); margin-bottom: .25rem; } +.sp-record .input[readonly], .sp-record .textarea[readonly] { + font-family: var(--sp-mono); font-size: .82rem; background: var(--sp-well); box-shadow: none; +} +.sp-record .textarea { resize: none; min-height: 0; } +.sp-record .field:not(:last-child) { margin-bottom: .6rem; } +.sp-row { display: grid; grid-template-columns: 1fr 7rem; gap: .75rem; } +.sp-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; } +.sp-stats b { display: block; font-size: 1.5rem; font-weight: 600; line-height: 1.2; } + +/* ---- sign-in */ +.sp-signin { min-height: 100vh; margin: 0; } +.sp-signin-brand { background: var(--sp-brick); display: grid; place-content: center; text-align: center; padding: 3rem; } +.sp-signin-brand img { width: 20rem; max-width: 100%; height: auto; } +.sp-signin-brand p { font-family: var(--sp-mono); letter-spacing: .18em; font-size: .8rem; color: var(--sp-on-brick); margin-top: 1.6rem; } +.sp-signin-form { display: flex; flex-direction: column; justify-content: center; padding: 3rem; } +.sp-signin-form form { width: 21rem; max-width: 100%; margin-inline: auto; } +.sp-foot { color: var(--sp-muted); font-size: .8rem; padding-block: 1.2rem; } +.sp-foot a { color: inherit; text-decoration: underline; } +.sp-signin-form .sp-foot { text-align: center; margin-top: 2.5rem; } diff --git a/docs/assets/panel-redesign/index.css b/docs/assets/panel-redesign/index.css new file mode 100644 index 0000000..71c0058 --- /dev/null +++ b/docs/assets/panel-redesign/index.css @@ -0,0 +1,22 @@ +/* Cover sheet for the three directions. No library on purpose: it must not + look like any one of them. */ +body { margin: 0; background: var(--sp-paper); color: var(--sp-ink); font: 16px/1.55 var(--sp-sans); } +main { max-width: 68rem; margin: 0 auto; padding: 3rem 1.5rem 4rem; } +h1 { font-size: 2rem; font-weight: 600; margin: .2rem 0 1rem; text-wrap: balance; } +h2 { font-size: 1.15rem; font-weight: 600; margin: 2.6rem 0 .8rem; } +h3 { font-size: 1.4rem; font-weight: 600; margin: .1rem 0 .6rem; } +.kicker { font-family: var(--sp-mono); font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; color: var(--sp-brick); margin: 0; } +.lead { max-width: 46rem; color: var(--sp-ink-2); } +ul { padding-left: 1.2rem; max-width: 52rem; } +li { margin-bottom: .5rem; } +a { color: var(--sp-brick); } +code { font-family: var(--sp-mono); font-size: .85em; background: var(--sp-well); padding: .1em .35em; border-radius: 3px; } +.cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr)); gap: 1.2rem; } +.cards section { background: var(--sp-sheet); border: 1px solid var(--sp-rule); border-top: 3px solid var(--sp-brick); padding: 1.3rem 1.4rem; display: flex; flex-direction: column; } +.cards p { margin: 0 0 1rem; } +.links { margin-top: auto !important; margin-bottom: 0 !important; display: flex; gap: 1.1rem; font-weight: 600; } +.scroll { overflow-x: auto; } +table { border-collapse: collapse; width: 100%; background: var(--sp-sheet); border: 1px solid var(--sp-rule); font-size: .93rem; } +th, td { text-align: left; vertical-align: top; padding: .6rem .9rem; border-bottom: 1px solid var(--sp-rule); } +thead th { font-family: var(--sp-mono); font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; color: var(--sp-muted); font-weight: 400; } +tbody th { font-weight: 600; white-space: nowrap; } diff --git a/docs/assets/panel-redesign/index.html b/docs/assets/panel-redesign/index.html new file mode 100644 index 0000000..2e4d2d5 --- /dev/null +++ b/docs/assets/panel-redesign/index.html @@ -0,0 +1,138 @@ + + + + + +Panel redesign · three directions + + + + +
+

SelfPost · panel redesign · stage 2

+

The accepted direction, every screen

+

Direction C (Bulma) was picked as the base: the important things in view, details one + or two clicks away. It takes the postal signature of A — the postmark verdict, numbered mono section + heads, the stamp's perforated paper edge under a brick bar that carries the wordmark — and the icons of B. Thirty-three screens and a components page live in + panel/. Serve this folder from the repository root: the pages load the panel's own + fonts and mark by relative path.

+ +

Screen map

+
+ + + + + + + + + + +
Signed outSign in · Create administrator
OverviewOverview — postmark verdict, six health cards, both domain lists
OutboundDomains · domain · + domain settings · application form · + password shown once · delete domain
+ Log · message · + Queue · DMARC reports · + by domain · one report
InboundDomains · domain · + delete domain · Log · + Queue (empty state)
+ Quarantine · held message · + Filter lists — roadmap items, drawn as their target look
ServerHealth · Preflight (roadmap) · System log · + Backup · Users · user form · + delete user · Settings
User menuAccount · Help
ContractComponents — every building block in every state · + the plan · panel/check.py lints the mockups and writes panel/outlines.json
+
+ +

What changed against today's panel

+
    +
  • Overview shows verdicts, Health shows tables. Process lists, socket paths and interface counters moved to + Server › Health, one click from each card.
  • +
  • Every page is one of three layouts: a list (form on top, table below), a detail page (sticky side menu + + numbered boxes), or a form page (boxes in equal columns). No page picks its own width.
  • +
  • Own password is Account, instance defaults are Settings. Export sits with the domain, import with Backup, + and each links to the other.
  • +
  • Queues are tables, not a postqueue -p dump — this needs postqueue -j parsing. + The inbound queue is the same queue filtered by recipient domain.
  • +
  • Confirm pages say what will be lost as a list, beside a hint for the usual alternative (export before delete).
  • +
  • Own components on top of Bulma: postmark, perforated edge, numbered box head, health card, DNS record block, facts grid, + timeline, log pane. The mockup's theme.css is about 200 lines.
  • +
  • panel/build.py wraps the fragments in panel/src/ with the shared navbar; the built pages are committed, + so nothing has to be run to view them.
  • +
+ +

Stage 1 · three directions on three key screens

+

Kept for the record: Overview, an outbound domain and sign-in, drawn three ways.

+ +

Shared by all three

+
    +
  • Navigation by mail direction. Overview · Outbound (Domains, Log, Queue, DMARC reports) · + Inbound (Domains, Log, Queue) · Server (System log, Backup, Users, Settings). Account, Help and + Sign out live with the user name. Eleven flat entries become four groups.
  • +
  • One block per DNS record. Today "DNS status" and "records to publish" show every host twice. + Here a record is one block: its status, what to publish, and — only on a mismatch — what DNS holds now.
  • +
  • The domain page stops being nine cards. DNS and applications are the page; limits, report address, + export and delete are "rarely changed" and sit behind one click.
  • +
  • Applications are a table; editing one is its own form page instead of a three-column panel inside a list row.
  • +
  • Brand carriers stay: the stamp, brick, IBM Plex. No inline style or script in any mockup.
  • +
+ +

The directions

+
+
+

A · Pico CSS 2.1

+

Blank

+

The panel as a postal form: one centred sheet, numbered sections, mono field labels, a postmark for the + verdict. Overview is a ledger — one row per check, the row opens into its detail. Sections on the first + header row, the section's pages on the second.

+ +
+
+

B · Tabler 1.5 (Bootstrap 5)

+

Console

+

The classic admin kit: ink sidebar with every page one click away, status tiles, cards and tables in a + 12-column grid, read-only input groups with Copy. Almost nothing is ours; it also looks the most like + every other admin panel.

+ +
+
+

C · Bulma 1.0

+

Counter

+

Brick top bar with CSS-only hover menus. Overview is the whole service on one screen: a health strip over + the outbound and inbound domain lists. The domain page gets a sticky side menu. Softer, rounder, the + boldest use of the brand colour.

+ +
+
+ +

What each one costs

+
+ + + + + + + + + + + + + + + + +
A · PicoB · TablerC · Bulma
LicenceMITMITMIT
Vendored CSS (minified)83 KB694 KB678 KB
JavaScriptnonenone for these screens; Bootstrap bundle only if dropdowns / modals are wantednone
Build stepnonenonenone (a Sass build could trim it; not needed)
CSP default-src 'self'needs img-src 'self' data: — 14 data: SVGs (select chevron, checkbox tick)needs img-src 'self' data: — 28 data: SVGsworks as is — no data: URIs
Our own CSS in the mockup≈ 200 lines≈ 80 lines≈ 100 lines
Markup stylesemantic HTML, few classes — closest to today's templatesclass-heavy Bootstrap markupclass-based, moderate
Own componentssheet, ledger row, postmark, record blocksidebar group label, record blockhealth strip, record block
Recognisablemostleastmiddle
+
+ +

Open points

+
    +
  • Icons in B come from Tabler Icons (MIT) through its webfont for the mockup; the panel would vendor only the used glyphs as an SVG sprite.
  • +
  • Inbound log rides on the agreed inbound-antispam-panel journal; Inbound queue is a new filter over the one Postfix queue and needs its own roadmap row.
  • +
  • Dark scheme and the narrow-screen shell are not drawn at this stage; all three libraries ship both.
  • +
  • The earlier panel-ui experiment and panel-redesign.md are superseded by whichever direction is accepted.
  • +
+
+ + diff --git a/docs/assets/panel-redesign/panel/account.html b/docs/assets/panel-redesign/panel/account.html new file mode 100644 index 0000000..60e6ab7 --- /dev/null +++ b/docs/assets/panel-redesign/panel/account.html @@ -0,0 +1,160 @@ + + + + + +Account · SelfPost + + + + + + + + + +
+
+
+
+

Signed in as admin · global

+

Account

+

Who you are to this panel, what it should tell you about, and where reports about your domains go. Applications keep their own logins and passwords and are not affected.

+
+
+ +
+
+
+
01

Profile

+
+
+
+
+

Where the panel writes to you: the notifications on the right and a password-reset link. It can also receive DMARC reports — your choice, under DMARC reports.

+ +
+
+
+ +
+
02

Password

+
+
+
+
+
+
+
+

Changing it signs out every other session of this account; this one stays signed in.

+ +
+
+
+
+ +
+
+
03

Notifications

Sent to mix@example.org
+
+
+

Your domains

+
+
+
+
+
+

The server · global role

+
+
+
+

One message when a problem starts and one when it clears — never a stream. A domain administrator is told only about the domains assigned to them.

+ +
+
+
+ +
+
04

DMARC reports

authorized
+
+
+
+
+

Used by every outbound domain whose report address is set to admin's default — 2 of your 3 now. Changing it changes the DMARC record those domains must publish. The hosted address is parsed by SelfPost; any other just receives the raw XML.

+ +
+
+
+

Report authorization

publishedNeeded because the address is on another domain than the senders
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+ + diff --git a/docs/assets/panel-redesign/panel/audit.js b/docs/assets/panel-redesign/panel/audit.js new file mode 100644 index 0000000..0127d4c --- /dev/null +++ b/docs/assets/panel-redesign/panel/audit.js @@ -0,0 +1,55 @@ +/* Rendered-page audit for the panel: what check.py cannot see because it needs + a browser. Open any page of the mockups (or of the running panel), paste this + file into the console, then: + + await panelAudit(["overview.html", "out-domain.html", ...]) // same-origin URLs + await panelAudit() // the page you are on + + It loads each page in a 1440px and a 1280px frame and reports + - text under the 13px floor (the postmark's imprint excepted), + - text under 4.5:1 against the ground it actually sits on, + - anything wider than its box, and tables that have to scroll, + - health-card values that got clipped. + An empty `problems` list is the pass. Attach the output to the step's evidence + (docs/plans/panel-redesign.md, Enforcement). */ +async function panelAudit(urls = [location.href], widths = [1440, 1280]) { + const lum = (c) => { + const [r, g, b] = c.map((v) => ((v /= 255) <= 0.03928 ? v / 12.92 : ((v + 0.055) / 1.055) ** 2.4)); + return 0.2126 * r + 0.7152 * g + 0.0722 * b; + }; + const rgba = (s) => { const m = s.match(/[\d.]+/g).map(Number); return { rgb: m.slice(0, 3), a: m.length > 3 ? m[3] : 1 }; }; + const ground = (el, win) => { + for (let e = el; e; e = e.parentElement) { const b = rgba(win.getComputedStyle(e).backgroundColor); if (b.a > 0.5) return b.rgb; } + return [255, 255, 255]; + }; + const problems = new Set(); + let texts = 0; + for (const url of urls) for (const width of widths) { + const f = document.createElement("iframe"); + f.width = width; f.height = 900; f.src = url; + document.body.appendChild(f); + await new Promise((r) => (f.onload = r)); + await f.contentDocument.fonts.ready; + await new Promise((r) => setTimeout(r, 150)); + const d = f.contentDocument, win = f.contentWindow, at = `${width} ${url.split("/").pop()}`; + const walker = d.createTreeWalker(d.body, NodeFilter.SHOW_TEXT); + for (let n; (n = walker.nextNode()); ) { + const text = n.textContent.trim(), el = n.parentElement; + if (!text || el.closest(".sp-log")) continue; // the log pane has its own dark ground and palette + texts++; + const cs = win.getComputedStyle(el), what = `${el.tagName.toLowerCase()}.${[...el.classList].join(".")} "${text.slice(0, 24)}"`; + if (parseFloat(cs.fontSize) < 12.9 && !el.closest(".sp-postmark")) problems.add(`${at}: ${parseFloat(cs.fontSize)}px ${what}`); + const fg = rgba(cs.color).rgb, bg = ground(el, win), a = lum(fg), b = lum(bg); + const ratio = (Math.max(a, b) + 0.05) / (Math.min(a, b) + 0.05); + const large = parseFloat(cs.fontSize) >= 24 || (parseFloat(cs.fontSize) >= 18.6 && +cs.fontWeight >= 600); + if (ratio < (large ? 3 : 4.5)) problems.add(`${at}: contrast ${ratio.toFixed(2)} ${what}`); + } + if (d.documentElement.scrollWidth > win.innerWidth) problems.add(`${at}: the page scrolls sideways`); + for (const e of d.querySelectorAll(".box, .sp-head, .sp-box-head")) if (e.scrollWidth > e.clientWidth + 1) problems.add(`${at}: overflow in .${e.className}`); + for (const e of d.querySelectorAll(".table-container")) if (e.scrollWidth > e.clientWidth + 1) problems.add(`${at}: a table scrolls by ${e.scrollWidth - e.clientWidth}px`); + for (const e of d.querySelectorAll(".sp-h-name, .sp-h-value, .sp-h-sub")) if (e.scrollWidth > e.clientWidth + 1) problems.add(`${at}: clipped "${e.textContent}"`); + for (const i of d.querySelectorAll("i.ti")) if (win.getComputedStyle(i, "::before").content === "none") problems.add(`${at}: missing icon ${i.className}`); + f.remove(); + } + return { pages: urls.length, widths, textsChecked: texts, problems: [...problems] }; +} diff --git a/docs/assets/panel-redesign/panel/backup.html b/docs/assets/panel-redesign/panel/backup.html new file mode 100644 index 0000000..6ec49c9 --- /dev/null +++ b/docs/assets/panel-redesign/panel/backup.html @@ -0,0 +1,116 @@ + + + + + +Backup · SelfPost + + + + + + + + + +
+
+
+
+

Server

+

Backup

+

Take the whole instance with you, or bring one domain in from another SelfPost. Both files are secrets.

+
+
+ +
+
+
+
01

Full backup

+
+

data/ (database, DKIM keys, credentials, the queue), docker-compose.yml, .env and certs/ in one archive. Restore into an empty project directory and start the same SelfPost version. The reverse-proxy vhost is not included.

+
+
+
+
+
+
+

Keep this password: SelfPost does not store it, and the file cannot be opened without it.

+ +
+
+
+
+ +
+
+
02

Import a domain

+
+

A domain export from another instance — plain .json or encrypted .spde. Its DKIM key and application passwords come across, so the published DNS needs no change. The export itself is made on the domain's settings.

+
+
+
+
+

Asked only for an encrypted .spde file.

+ +
+
+
+
+
+ + +
+
+ + diff --git a/docs/assets/panel-redesign/panel/build.py b/docs/assets/panel-redesign/panel/build.py new file mode 100644 index 0000000..f099787 --- /dev/null +++ b/docs/assets/panel-redesign/panel/build.py @@ -0,0 +1,121 @@ +"""Wrap every fragment in src/ with the panel shell and write it next to this file. + +The mockups are static HTML, but thirty pages share one navbar; keeping that +navbar in one place is the only reason this script exists. Run it from +anywhere: python docs/assets/panel-redesign/panel/build.py + +A fragment starts with one meta comment: + +section/page pick the highlighted entries; "shell: bare" skips the navbar +(sign-in, setup). +""" +import pathlib +import re + +HERE = pathlib.Path(__file__).parent + +NAV = [ + ("overview", "Overview", "overview.html", "ti-activity-heartbeat", []), + ("outbound", "Outbound", "out-domains.html", "ti-send", [ + ("domains", "Domains", "out-domains.html", "ti-world-upload"), + ("log", "Log", "out-log.html", "ti-list-details"), + ("queue", "Queue", "out-queue.html", "ti-stack-2"), + ("dmarc", "DMARC reports", "dmarc.html", "ti-report-analytics"), + ]), + ("inbound", "Inbound", "in-domains.html", "ti-inbox", [ + ("domains", "Domains", "in-domains.html", "ti-world-download"), + ("log", "Log", "in-log.html", "ti-list-details"), + ("queue", "Queue", "in-queue.html", "ti-stack-2"), + ("quarantine", "Quarantine", "in-quarantine.html", "ti-mail-pause"), + ("filter-lists", "Filter lists", "in-filter-lists.html", "ti-filter"), + ]), + ("server", "Server", "health.html", "ti-server-2", [ + ("health", "Health", "health.html", "ti-heartbeat"), + ("preflight", "Preflight", "preflight.html", "ti-checklist"), + ("system-log", "System log", "system-log.html", "ti-file-text"), + ("backup", "Backup", "backup.html", "ti-archive"), + ("users", "Users", "users.html", "ti-users"), + ("settings", "Settings", "settings.html", "ti-settings"), + ]), +] + +HEAD = """ + + + + +{title} · SelfPost + + + + + +""" + +FOOT = ('') + + +def navbar(section, page): + out = ['', + ''] + return "\n".join(out) + + +def subnav(section, page): + for key, _label, _href, _icon, pages in NAV: + if key == section and pages: + cur = ' aria-current="page"' + links = "".join( + f'{plabel}' + for pkey, plabel, phref, picon in pages) + return f'
{links}
' + return "" + + +def build(path): + text = path.read_text(encoding="utf-8") + m = re.match(r"\s*\s*", text, re.S) + meta = dict(part.split(":", 1) for part in m.group(1).split("|")) + meta = {k.strip(): v.strip() for k, v in meta.items()} + body = text[m.end():] + html = HEAD.format(title=meta["title"]) + if meta.get("shell") == "bare": + html += f"\n{body}\n\n\n" + else: + section, page = meta.get("section", ""), meta.get("page", "") + html += (f"\n{navbar(section, page)}\n{subnav(section, page)}\n
\n" + f'
\n{body}\n {FOOT}\n
\n
\n\n\n') + (HERE / path.name).write_text(html, encoding="utf-8", newline="\n") + + +if __name__ == "__main__": + pages = sorted((HERE / "src").glob("*.html")) + for p in pages: + build(p) + print(f"built {len(pages)} pages") diff --git a/docs/assets/panel-redesign/panel/check.py b/docs/assets/panel-redesign/panel/check.py new file mode 100644 index 0000000..96202ad --- /dev/null +++ b/docs/assets/panel-redesign/panel/check.py @@ -0,0 +1,240 @@ +"""Design-contract lint for the panel mockups, and the source of outlines.json. + +The contract (docs/plans/panel-redesign.md) is only worth something if a +machine can say "no". This script is that machine for the mockups; the same +rules are ported to a Go test over internal/web templates when the redesign is +implemented, and that test compares rendered pages with outlines.json. + + python docs/assets/panel-redesign/panel/check.py # lint + python docs/assets/panel-redesign/panel/check.py --write # lint + rewrite outlines.json + +Exit code 1 on any violation. +""" +import json +import pathlib +import re +import sys +from html.parser import HTMLParser + +HERE = pathlib.Path(__file__).parent +VOID = {"input", "img", "br", "hr", "meta", "link"} + +# The subset of Bulma the panel uses. Reaching for a Bulma class outside this +# list is a design decision, not an implementation detail: add it here and to +# the components page in the same change, or do without it. +BULMA = set(""" +box button buttons checkbox column columns control field file file-cta file-input file-label +file-name has-addons has-icons-left has-name has-text-danger help icon input label menu menu-label +menu-list notification progress select table table-container tag textarea title +is-3 is-4 is-5 is-6 is-7 is-9 is-active is-danger is-expanded is-fullwidth is-gapless is-half +is-hoverable is-left is-light is-primary is-small is-success is-text is-warning +mb-1 mb-2 mb-3 mb-4 ml-2 mt-4 mt-5 +""".split()) +# Classes the shell (build.py, later layout.html) owns; screens never write them. +SHELL = {"sp-page", "sp-perf", "sp-subnav", "sp-current", "sp-foot"} +# The signed-out screens have no shell, so they carry their own footer. +SIGNED_OUT = {"sp-signin", "sp-signin-brand", "sp-signin-form", "sp-foot"} +# Selectors allowed to set a width. Everything else gets its width from the +# layout it sits in — that is the whole point of the redesign. +WIDTH_OK = (".navbar-brand img", ".sp-head .sp-lead", ".sp-head .sp-grow", ".sp-postmark", ".table td.sp-clip", + ".sp-h-icon", ".sp-signin", ".sp-timeline li::before", ".sp-perf") + + +class Node: + def __init__(self, tag, attrs, parent): + self.tag, self.attrs, self.parent, self.kids, self.text = tag, dict(attrs), parent, [], "" + + @property + def classes(self): + return (self.attrs.get("class") or "").split() + + def has(self, cls): + return cls in self.classes + + def walk(self): + yield self + for k in self.kids: + yield from k.walk() + + def find(self, cls): + return [n for n in self.walk() if n.has(cls)] + + +class Tree(HTMLParser): + def __init__(self): + super().__init__() + self.root = Node("root", [], None) + self.cur = self.root + + def handle_starttag(self, tag, attrs): + n = Node(tag, attrs, self.cur) + self.cur.kids.append(n) + if tag not in VOID: + self.cur = n + + def handle_endtag(self, tag): + n = self.cur + while n is not self.root and n.tag != tag: + n = n.parent + if n is not self.root: + self.cur = n.parent + + def handle_data(self, data): + self.cur.text += data + + +def parse(text): + t = Tree() + t.feed(text) + return t.root + + +def text_of(node): + return re.sub(r"\s+", " ", "".join(n.text for n in node.walk())).strip() + + +def css_rules(css): + css = re.sub(r"/\*.*?\*/", "", css, flags=re.S) + css = re.sub(r"@media[^{]*\{", "", css) + for sel, body in re.findall(r"([^{}]+)\{([^{}]*)\}", css): + yield sel.strip(), body + + +def box_kind(box): + kinds = [] + for k in box.kids: + if k.has("sp-box-head") or k.has("sp-box-foot"): + continue + for cls, name in (("sp-record", "record"), ("sp-health", "health"), ("sp-empty", "empty"), + ("sp-log", "log"), ("sp-help-topic", "help"), ("sp-box-body", "body")): + if k.has(cls): + kinds.append(name) + break + else: + kinds.append("table" if k.tag == "table" or k.has("table-container") else k.tag) + out = [] + for k in kinds: + if not out or out[-1].split("×")[0] != k: + out.append(k) + else: + n = int(out[-1].split("×")[1]) + 1 if "×" in out[-1] else 2 + out[-1] = f"{k}×{n}" + return "+".join(out) + + +def outline(node): + """The component skeleton of a page: what a reviewer sees with the text blurred.""" + out = [] + for k in node.kids: + if k.has("sp-head"): + parts = ["head"] + [p for p, c in (("postmark", "sp-postmark"), ("actions", "buttons")) if k.find(c)] + if not k.find("buttons") and any(n.tag in ("a", "form") and n.parent is k for n in k.walk()): + parts.append("actions") + out.append("+".join(parts)) + elif k.has("box"): + variant = next((v for v in ("sp-danger-zone", "sp-credential") if k.has(v)), "") + head = k.find("sp-box-head") + title = text_of(head[0].find("sp-no")[0].parent.kids[1]) if head else "?" + out.append(f"box{'.' + variant if variant else ''}[{title}]:{box_kind(k)}") + elif k.has("columns"): + cols = [] + for c in k.kids: + size = next((x for x in c.classes if re.fullmatch(r"is-\d+", x)), "auto") + cols.append({size: outline(c)}) + out.append({"columns": cols}) + elif k.tag == "form" or k.has("menu") or k.tag == "aside": + out.append({"form": outline(k)} if k.tag == "form" else "side_menu") + elif k.has("buttons"): + out.append("submit_row") + return out + + +def main(): + errors = [] + css = (HERE / "theme.css").read_text(encoding="utf-8") + defined = set(re.findall(r"\.(sp-[a-z0-9-]+)", css)) + + for sel, body in css_rules(css): + if "!important" in body: + errors.append(f"theme.css: !important in `{sel}`") + if re.search(r"(^|[\s,>+~])#[a-z]", sel): + errors.append(f"theme.css: id selector `{sel}` — style components, not one element on one page") + # The type floor: 13px. Icons (.ti) and the postmark imprint are not running text. + for value, unit in re.findall(r"font-size\s*:\s*([\d.]+)(rem|em|px)", body): + floor = {"rem": 0.8125, "em": 0.85, "px": 13}[unit] + if float(value) < floor and ".sp-postmark" not in sel and ".ti" not in sel: + errors.append(f"theme.css: `{sel}` sets font-size {value}{unit}, below the 13px floor — use --sp-fs-xs or --sp-fs-s") + # `min-width: 0` sizes nothing: it only lets a flex or grid child shrink so its text can be clipped. + sized = re.sub(r"min-width\s*:\s*0\s*(;|$)", "", body) + if re.search(r"(?")[0] + for bad in ("style=", " — controls keep the normal size; only a progress bar is small") + elif c not in BULMA: + errors.append(f"{name}: class `{c}` is neither in the Bulma subset nor an sp- component") + if bare: + continue + top = [k for k in root.kids if k.tag != "root"] + if not top or not top[0].has("sp-head"): + errors.append(f"{name}: the page must open with page_head (.sp-head)") + if len([n for n in root.walk() if n.tag == "h1"]) != 1: + errors.append(f"{name}: exactly one

") + marks = root.find("sp-postmark") + if name != "components" and (len(marks) > 1 or any(not m.parent.has("sp-head") for m in marks)): + errors.append(f"{name}: at most one postmark, inside page_head") + for tbl in (n for n in root.walk() if n.tag == "table"): + if not tbl.parent.has("table-container"): + errors.append(f"{name}: a must sit in a table-container so a wide one can scroll") + for box in root.find("box"): + if not box.kids or not box.kids[0].has("sp-box-head"): + errors.append(f"{name}: a box must start with box_head") + for k in top[1:]: + # A flash is conditional, so it is allowed at the top level but never part of an outline. + ok = k.has("box") or k.has("columns") or k.has("notification") or (k.tag == "form" and k.has("sp-form")) + if not ok: + errors.append(f"{name}: top-level <{k.tag} class=\"{' '.join(k.classes)}\"> — a page is boxes, columns or one form") + if name != "components": + outlines[name] = outline(root) + + for c in sorted(used - documented - SIGNED_OUT): + errors.append(f"components page does not show `{c}` — document it or stop using it") + shell_used = set(re.findall(r"sp-[a-z0-9-]+", (HERE / "build.py").read_text(encoding="utf-8"))) + for c in sorted(defined - used - documented - shell_used): + errors.append(f"theme.css defines `{c}` but nothing uses it") + + if "--write" in sys.argv and not errors: + (HERE / "outlines.json").write_text(json.dumps(outlines, ensure_ascii=False, indent=1) + "\n", + encoding="utf-8", newline="\n") + golden = HERE / "outlines.json" + if golden.exists() and "--write" not in sys.argv: + if json.loads(golden.read_text(encoding="utf-8")) != outlines: + errors.append("outlines.json is stale — a screen's structure changed; re-run with --write and say so in the commit") + + for e in errors: + print("FAIL", e) + print(f"{len(outlines) + 1} screens, {len(used | documented)} sp- classes, {len(errors)} violation(s)") + return 1 if errors else 0 + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/docs/assets/panel-redesign/panel/components.html b/docs/assets/panel-redesign/panel/components.html new file mode 100644 index 0000000..cef72d9 --- /dev/null +++ b/docs/assets/panel-redesign/panel/components.html @@ -0,0 +1,294 @@ + + + + + +Components · SelfPost + + + + + + + + + +
+
+
+
SELFPOSTREFDESIGN CONTRACT
+
+

Reference · page_head

+

Components

+

Every building block of the panel, in every state it has. A screen is assembled from these and from plain Bulma — nothing else. The title of each box is the name of its template partial.

+
+ +
+ +
flash — the result of the last action, between page_head and the first box. Success, or…
+
…flash, error — a failure that belongs to the page, not to one field. A field's error stays under the field in Bulma's help is-danger.
+ +
+
00

Page layouts

A page is exactly one of these
+
+
+
list
page_head, then full-width boxes: the add form first, the table second. Example
+
detail
page_head, then columns: is-3 side menu + is-9 boxes. Example
+
form
page_head, then boxes in equal columns, one submit row under them. Example
+
signed out
The split brand / form screen, no navbar. Example
+
+
+
+ +
+
+
+
01

postmark

Worst status of the page's checks
+
+
+
SELFPOSTOK6 OF 6 CHECKS
+
SELFPOSTWARN1 OF 6 CHECKS
+
DNSFAIL1 OF 3 RECORDS
+
+

Only inside page_head, at most one per page, and only where the page has a verdict to give.

+
+
+ +
+
03

status_tag

One mapping, one function
+
+ + + + + + + + +
StatusTagBulma classes
ok, published, running, sentoktag is-success is-light
warn, deferred, quietwarntag is-warning is-light
error, fail, mismatch, bouncedfailtag is-danger is-light
unknown, off, neutral countsofftag is-light
held: quarantine · role: globalquarantinetag is-primary is-light
+ + + +
+
+
02

box · box_head

The end slot: a note, a tag, a link or a filter form
+

The after the end slot is sp-help: an optional link to the section's topic on the Help page. It replaces today's help drawer.

box_body — padded content. A table or a run of sp-record blocks sits directly in the box, without box_body.

+
box_foot — a legend, pagingend slot
+
+
+

box · sp-danger-zone

+

For destructive confirmations and the "delete" entry of a settings page. The number may be an icon when the box is not part of a sequence.

+
+
+

box · sp-credential

Shown once
+

Only for a secret the panel will never show again.

+
+
+ + +
+
04

health_card

Overview only · each card links to its detail
+ +
+ +
+
+
+
05

dns_record · copy_field

One block per record
+
+

Record

publishedA one-line note
+
+
+
+
+
+
+
+
+
+

Record

mismatch"In DNS now" appears only when it differs
+
+
+

What is wrong and the exact fix.

+
+
+ +
+
07

Table conventions

Always inside table-container · an address breaks after its @
+
+ + + + +
Time, UTCNamesp-clipStatus
09-21 14:01:52the row's linkA long subject is clipped with an ellipsis instead of wrapping the rowsentDetailsDelete
+
Page 1 of 9Older →
+
+ +
+
09

log_pane

sp-d time · sp-w warning · sp-e error
+
13:58:07 an ordinary line
+13:58:09 a deferred delivery — sp-w
+13:57:41 a reject or a bounce — sp-e
+
+
+ +
+
+
06

facts

+
+
+
Label
Value
+
Mono value
4XcB7k2Jm9z1
+
sp-big
5 days
a supporting line
+
+
+
+ +
+
08

timeline

+
+
    +
  1. Done — default
  2. +
  3. Deferred — sp-warn
  4. +
  5. Bounced — sp-fail
  6. +
  7. Expected next — sp-pending
  8. +
+
+
+ +
+
10

empty_state

+
One sentence: what is absent and why that is fine.
+
+ +
+
11

confirm_list

+
+
    +
  • each thing that will be lost, one per line;
  • +
  • inside an sp-danger-zone box, above the danger button.
  • +
+
+
+
+
+ +
+
+ +
+
+
+
12

Form rows · route · help_topic

+
+
+
+
+
+
+
+
+

Help text lives in Bulma's help.

+
+
+

from@example.orgto@example.netdeferred

+
+

help_topic

A heading and a paragraph; topics stack inside one box on the Help page.

+
+
+
+ +
+
13

shell

Owned by the layout — a screen never writes it
+
+
+
Name
The wordmark, not the stamp: at nav size the stamp's perforation is under a pixel and its brick field dissolves into the bar. The stamp lives on sign-in, setup and the favicon.
+
Edge
Built like the mark: the brick field, then the stamp's paper margin, and the perforation along the outer edge of that margin — round holes, flat teeth, the ink hairline. One tile, perf-edge.svg.
+
Sibling strip
The pages of the current group, under the edge. Five or six entries; past that the group is split.
+
Menus
Bulma hover dropdowns, no JavaScript. The user menu holds Account, Help and Sign out.
+
+
+
+ +
+
14

Type scale

Three sizes · nothing to be read is under 13px
+
+ + + + + + +
SizeLooks likeUsed for
body · 16pxThe quick brown fox, 203.0.113.25Text, table cells, inputs, selects, buttons, menus and their dropdowns
--sp-fs-s · 14pxThe quick brown fox, 203.0.113.25Supporting text: labels, help, notes in a box head or foot, mono values (sp-small), logs, the footer
--sp-fs-xs · 13pxUpper-case mono label tagUpper-case mono micro-labels (kicker, table head, dt, box title) and tags — nothing else
+
Bulma's is-small and is-size-7 are not used: a control is never small, and sp-small replaces the helper. The postmark's fine print is an imprint, not text.
+
+ + + + + + diff --git a/docs/assets/panel-redesign/panel/dmarc-domain.html b/docs/assets/panel-redesign/panel/dmarc-domain.html new file mode 100644 index 0000000..5d601ed --- /dev/null +++ b/docs/assets/panel-redesign/panel/dmarc-domain.html @@ -0,0 +1,110 @@ + + + + + +shop.example.org · DMARC reports · SelfPost + + + + + + + + + +
+
+
+
DMARC99.6%PASS · 7 DAYS
+
+

DMARC reports /

+

shop.example.org

+

11 204 pass · 41 fail in the last 7 days. Failures come from a source that is not this relay — review before tightening p=.

+
+ Domain page +
+ +
+
+
+
01

Sources · 7 days

+
+ + + + + +
SourcePassFailDisposition
203.0.113.25 this relay11 2040none
198.51.100.44041none
+
+
+
+
+
02

Reports

+
+ + + + + + +
Received, UTCReporterWindowPassFail
09-21 04:40Outlook.com20 Sep1 9037View
09-21 02:15google.com20 Sep6 4100View
09-20 04:38Outlook.com19 Sep1 87734View
+
+
+
+ + +
+
+ + diff --git a/docs/assets/panel-redesign/panel/dmarc-report.html b/docs/assets/panel-redesign/panel/dmarc-report.html new file mode 100644 index 0000000..da54805 --- /dev/null +++ b/docs/assets/panel-redesign/panel/dmarc-report.html @@ -0,0 +1,119 @@ + + + + + +Outlook.com · 20 Sep · DMARC · SelfPost + + + + + + + + + +
+
+
+
+

DMARC reports / shop.example.org /

+

Outlook.com · 20 Sep 2026

+

shop.example.org1 903 pass7 fail

+
+
+ +
+
+
+
01

Report

+
+
+
Reporter
Outlook.com
+
Report id
5f1c9a0e7b2d4e61a3
+
Window
20 Sep 00:00 – 21 Sep 00:00 UTC
+
Received
2026-09-21 04:40 UTC
+
+
+
+
+
+
+
02

Published policy

+
+
+
p / sp / pct
none / none / 100
+
adkim / aspf
r / r
+
rua
dmarc@mail.example.org
+
+
+
+
+
+ +
+
03

Records

Parsed from the aggregate XML
+
+ + + + + +
SourceCountDispositionSPFDKIMHeader from
203.0.113.25 this relay1 903nonepasspassshop.example.org
198.51.100.447nonefailfailshop.example.org
+
+ + +
+
+ + diff --git a/docs/assets/panel-redesign/panel/dmarc.html b/docs/assets/panel-redesign/panel/dmarc.html new file mode 100644 index 0000000..decc5fe --- /dev/null +++ b/docs/assets/panel-redesign/panel/dmarc.html @@ -0,0 +1,105 @@ + + + + + +DMARC reports · SelfPost + + + + + + + + + +
+
+
+
+

Outbound

+

DMARC reports

+

How receivers saw mail claiming to be from your domains. Aggregate (rua=) only; open a report for the parsed XML.

+
+
+ +
+
01

Ingest

ok
+
+
+
Last report
2026-09-21 06:12 UTC
+
This week
14 kept · 0 parse failures
+
Hosted address
dmarc@mail.example.org
+
Retention
500 reports or 90 days
+
+
+
+ +
+
02

Recent reports

+
+ + + + + + + +
Received, UTCDomainReporterWindowPassFail
09-21 06:12example.orggoogle.com20 Sep4120View
09-21 04:40shop.example.orgOutlook.com20 Sep1 9037View
09-20 23:58example.orgYahoo19 Sep380View
09-20 06:09notify.acme.iogoogle.com19 Sep610View
+
+ + +
+
+ + diff --git a/docs/assets/panel-redesign/panel/health.html b/docs/assets/panel-redesign/panel/health.html new file mode 100644 index 0000000..4db8d81 --- /dev/null +++ b/docs/assets/panel-redesign/panel/health.html @@ -0,0 +1,160 @@ + + + + + +Health · SelfPost + + + + + + + + + +
+
+
+
+

Server

+

Health

+

Everything behind the six cards on Overview. Refreshes every 10 s.

+
+
+
+ +
+
+
+
01

Machine

ok
+
+ + + + + + +
ResourceUsageDetail
CPU12 %2 cores, load 0.21
Memory41 %812 MB of 1.9 GB
Network↓ 18 kB/s · ↑ 44 kB/seth0: 2.1 GB in, 6.4 GB out
+
+
+
+
+
02

Processes

ok
+
+ + + + + + + + +
ProgramStateDetail
postfixrunningpid 41, uptime 18 days
opendkimrunningpid 39, uptime 18 days
journal-milterrunningpid 40, uptime 18 days
panelrunningpid 44, uptime 18 days
dmarc-ingestrunningpid 47, uptime 18 days
+
+
+
+ +
+
+
+
03

TLS certificate

warn
+
+
+
Expires
2026-10-03 09:14 UTC
+
Names
mail.example.org
+
+

Expires in 12 days — renewal has not run.

+

Renewal normally runs 30 days before expiry. Check that port 80 is reachable and look for acme lines in the system log.

+
+
+
+
+
+
04

Milter sockets

ok
+
+ + + + + + +
MilterState
opendkim
inet:127.0.0.1:8891
ok
journal-milter
unix:/run/selfpost/journal.sock
ok
rspamd · inbound spam filter
inet:antispam:11332
ok
+
+
+
+
+
05

Hostname and reverse DNS

ok
+
+
+
Hostname
mail.example.org
+
Lookup
→ 203.0.113.25
← mail.example.org
+
+
+
+
+
+ +
+
06

Configuration

Safe to run at any time
+
+

Regenerates the OpenDKIM and Postfix configuration from the database and reloads both daemons. Use it after editing the files by hand, after restoring a backup, or when the running configuration looks out of step with the domain and application lists. It does not touch the queue or the TLS certificate.

+
+
+
+ + +
+
+ + diff --git a/docs/assets/panel-redesign/panel/help.html b/docs/assets/panel-redesign/panel/help.html new file mode 100644 index 0000000..2c3d045 --- /dev/null +++ b/docs/assets/panel-redesign/panel/help.html @@ -0,0 +1,119 @@ + + + + + +Help · SelfPost + + + + + + + + + +
+
+
+
+

Reference

+

Help

+

What each screen checks and what to do when it is not green. Every numbered section on a page links to its topic here.

+
+
+ +
+ +
+
+
01

Overview

+

Health checks

Six checks, the worst of them is the postmark. ok needs nothing; warn still delivers mail but will stop doing so if ignored; fail means mail is being lost or refused now.

+

TLS certificate

The certificate Postfix presents on 465 and 587. It warns 14 days before expiry and fails once expired — clients that verify certificates then refuse to connect.

+

Hostname and reverse DNS

The hostname must resolve to this server's address, and that address must resolve back to the hostname. Large receivers reject or spam-folder mail from hosts where the two disagree. The PTR record is set at your hosting provider, not in your DNS zone.

+
+
+
02

Outbound

+

DNS records

DKIM proves the message was signed by this relay, SPF lists the addresses allowed to send for the domain, DMARC tells receivers what to do when both fail and where to report. Publish all three exactly as shown; merge SPF into an existing record rather than adding a second one.

+

Applications

An application is one SASL login. It may send as any address of its domain or only as listed addresses. The password is shown once at creation or regeneration and is not stored in readable form.

+

Rate limits

Level 1 is a per-IP ceiling set in .env. Level 2 is optional, per domain and per application, manual or computed from 30-day statistics, and can never exceed level 1.

+
+
+
+ + +
+
+ + diff --git a/docs/assets/panel-redesign/panel/in-domain-delete.html b/docs/assets/panel-redesign/panel/in-domain-delete.html new file mode 100644 index 0000000..e1e544a --- /dev/null +++ b/docs/assets/panel-redesign/panel/in-domain-delete.html @@ -0,0 +1,101 @@ + + + + + +Delete lists.example.org · SelfPost + + + + + + + + + +
+
+
+
+

Inbound domains / lists.example.org /

+

Delete lists.example.org

+
+
+ +
+
+
+

This cannot be undone

+
+

Deleting the inbound domain lists.example.org will:

+
    +
  • stop accepting mail for it on port 25 — senders get a relay-denied reply;
  • +
  • remove its upstream and its 4 listed recipients.
  • +
+

Remove or repoint the MX record first, or mail for the domain will bounce. Outbound domains are not touched.

+
+
+ + Keep it +
+
+
+
+
+
+ + +
+
+ + diff --git a/docs/assets/panel-redesign/panel/in-domain.html b/docs/assets/panel-redesign/panel/in-domain.html new file mode 100644 index 0000000..5177983 --- /dev/null +++ b/docs/assets/panel-redesign/panel/in-domain.html @@ -0,0 +1,171 @@ + + + + + +lists.example.org · Inbound domains · SelfPost + + + + + + + + + +
+
+
+
DNSOKMX POINTS HERE
+
+

Inbound domains /

+

lists.example.org

+

Accepted on port 25, handed to mx.internal:25 over required TLS · 4 recipients

+
+
+
+
+
+ +
+
+ +
+ +
+
+
01

MX record

Checked 1 min ago
+
+

MX

publishedKeep any existing primary MX if this is a backup-MX
+
+
+
+
+
+
+
+
+
+ +
+
+
+
02

Upstream

Not a mailbox
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+
03

Valid recipients

+
+
+
+
+
+
+

Unknown recipients are rejected at RCPT, so this relay generates no backscatter. Prefer a list unless the upstream itself rejects unknowns.

+ +
+
+
+
+
+ +
+
04

Spam filter

on
+
+
+
Engine
rspamd, for every inbound domain of this server
+
Suspicious mail
Held — 1 message in quarantine for this domain
+
Spam
Refused at the door; see reject in the log
+
Allow and deny lists
Kept by the global administrator, one pair for the whole server
+
+
+
+
+
+ + +
+
+ + diff --git a/docs/assets/panel-redesign/panel/in-domains.html b/docs/assets/panel-redesign/panel/in-domains.html new file mode 100644 index 0000000..753983b --- /dev/null +++ b/docs/assets/panel-redesign/panel/in-domains.html @@ -0,0 +1,105 @@ + + + + + +Inbound domains · SelfPost + + + + + + + + + +
+
+
+
+

Inbound

+

Inbound domains

+

Backup-MX / forwarder. Port 25 accepts mail only for the domains listed here and hands it to their upstream. No mailboxes.

+
+
+ +
+
01

Add a domain

+
+
+
+
+
+
+

Mail is not accepted until an upstream host is saved on the domain's page. Adding and deleting domains is for a global administrator; a domain administrator sees the list without this form and without Delete.

+
+
+
+ +
+
02

Domains

Spam filter on · 2 domains
+
+ + + + + +
DomainDNSUpstreamRecipientsTLS to upstream
lists.example.orgMXmx.internal:254 addressesrequiredOpenDelete
acme.ioMX10.0.4.12:2525any addressopportunisticOpenDelete
+
The MX tag is green when at least one MX of the domain points at this server.
+
+ + +
+
+ + diff --git a/docs/assets/panel-redesign/panel/in-filter-lists.html b/docs/assets/panel-redesign/panel/in-filter-lists.html new file mode 100644 index 0000000..de1a1dd --- /dev/null +++ b/docs/assets/panel-redesign/panel/in-filter-lists.html @@ -0,0 +1,145 @@ + + + + + +Filter lists · SelfPost + + + + + + + + + +
+
+
+
+

Inbound · global role

+

Filter lists

+

Correct the spam filter by hand: senders it must always let through, and senders it must always turn away. One pair of lists for the whole instance.

+
+
+ +
+
01

Add an entry

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+ +
+
+
+
02

Deny

3 entries · wins over Allow
+
+ + + + + + +
ValueNoteAdded
@bulk.example domainnewsletter nobody subscribed to2026-09-02Remove
198.51.100.0/24 ipdictionary attack on lists.example.org2026-08-19Remove
win@lottery.example address—2026-07-30Remove
+
+
+
+
+
03

Allow

2 entries
+
+ + + + + +
ValueNoteAdded
@partner.example domaininvoices were scored as spam2026-09-11Remove
noreply@github.example addresssecurity advisories2026-06-04Remove
+
+
+
+ +
+
04

Where the lists go

applied
+
+
+
Applied by
rspamd, from map files
+
Files
/data/antispam/allow.map
/data/antispam/deny.map
+
Last written
2026-09-11 08:40 UTC
+
When the filter is off
The lists are kept and editable, but nothing reads them until INBOUND_ANTISPAM_MILTER is set.
+
+
+
+ + +
+
+ + diff --git a/docs/assets/panel-redesign/panel/in-log.html b/docs/assets/panel-redesign/panel/in-log.html new file mode 100644 index 0000000..89d532b --- /dev/null +++ b/docs/assets/panel-redesign/panel/in-log.html @@ -0,0 +1,105 @@ + + + + + +Inbound log · SelfPost + + + + + + + + + +
+
+
+
+

Inbound

+

Inbound log

+

What port 25 decided about each message, one row per recipient. Accepts come from the inbound journal, rejects from mail.log; the filter's reasons appear when the spam filter is on.

+
+
+ +
+
+ 01

Messages

+
+
+
+ + + +
+
+
+ + + + + + + + + +
Time, UTCFrom · clientToSubjectDecisionWhy
09-21 14:00:18t.berg@uni.example
192.0.2.77
dev@lists.example.orgRe: [dev] patch series v3acceptrspamd · score 0.4Deny sender
09-21 13:59:02invoice@partner-billing.example
203.0.113.140
owner@lists.example.orgOutstanding invoice — action requiredquarantinerspamd · score 9.8 · PHISHING, FORGED_SENDERReview
09-21 13:57:41promo@bulk.example
198.51.100.90
sales@lists.example.org—rejectpostfix · 550 5.1.1 unknown recipientDeny sender
09-21 13:51:30billing@partner.example
198.51.100.12
owner@lists.example.orgInvoice 2026-0917rejectrspamd · score 16.2 · BAYES_SPAMAllow sender
09-21 13:44:02hr@partner.example
192.0.2.31
jobs@acme.ioApplication: backend engineertempfailselfpost · upstream 10.0.4.12 timed out
09-21 13:30:55noreply@github.example
192.0.2.200
security@lists.example.org[advisory] new reportacceptrspamd · allow list
+
Page 1 of 38Older →Allow / Deny sender opens Filter lists with the entry filled in · global administrator only
+
+ + +
+
+ + diff --git a/docs/assets/panel-redesign/panel/in-quarantine-message.html b/docs/assets/panel-redesign/panel/in-quarantine-message.html new file mode 100644 index 0000000..3afd458 --- /dev/null +++ b/docs/assets/panel-redesign/panel/in-quarantine-message.html @@ -0,0 +1,149 @@ + + + + + +Held message · Quarantine · SelfPost + + + + + + + + + +
+
+
+
+

Quarantine /

+

Outstanding invoice — action required

+

invoice@partner-billing.exampleowner@lists.example.orgquarantine

+
+
+ +
+
+
+
01

Message

+
+
+
Inbound domain
lists.example.org
+
Client
203.0.113.140
+
Held
2026-09-21 13:59:02 UTC
+
Deleted on
2026-10-05 · in 14 days
+
Size
48 kB · 1 attachment (invoice.html)
+
Would go to
mx.internal:25
+
+
+
+
+
+
+
02

Why it was held

rspamd · score 9.8
+
+ + + + + + +
SymbolScore
PHISHING5.0
FORGED_SENDER3.0
HTML_ATTACHMENT1.8
+
+
+
+ +
+
03

Headers

The body and attachments are never rendered in the panel
+
Received: from mail.partner-billing.example (unknown [203.0.113.140]) by mail.example.org
+From: "Partner Billing" <invoice@partner-billing.example>
+Reply-To: payments.dept@freemail.example
+To: owner@lists.example.org
+Subject: Outstanding invoice — action required
+Date: Mon, 21 Sep 2026 13:58:57 +0000
+Authentication-Results: spf=fail dkim=none dmarc=fail
+
+ +
+
+
+
04

Release

+
+

Hands the message to mx.internal:25 unchanged, as if it had just arrived. It leaves the quarantine.

+
+
+ +
+
+
+
+
+
+

Discard

+
+

Deletes the message now instead of in 14 days. The sender is not told. This cannot be undone.

+
+
+ +
+
+
+
+
+ + +
+
+ + diff --git a/docs/assets/panel-redesign/panel/in-quarantine.html b/docs/assets/panel-redesign/panel/in-quarantine.html new file mode 100644 index 0000000..f693374 --- /dev/null +++ b/docs/assets/panel-redesign/panel/in-quarantine.html @@ -0,0 +1,99 @@ + + + + + +Quarantine · SelfPost + + + + + + + + + +
+
+
+
+

Inbound

+

Quarantine

+

Mail the filter found suspicious enough to hold, but not to refuse. Release hands a message to its upstream as if it had just arrived; Discard deletes it. Anything left is deleted after 14 days.

+
+
+ +
+
+ 01

Held messages

+
+
+ +
+
+
+ + + + + + +
Held, UTCFromToSubjectWhySizeDeleted in
09-21 13:59:02invoice@partner-billing.exampleowner@lists.example.orgOutstanding invoice — action requiredscore 9.8 · PHISHING48 kB14 daysReview
09-20 22:14:40no-reply@shipping-update.examplejobs@acme.ioYour parcel could not be deliveredscore 8.1 · URL_SHORTENER12 kB13 daysReview
09-09 07:02:11m.ortega@supplier.exampleowner@lists.example.orgFwd: scanned contract (3 attachments)score 7.4 · MIME_ARCHIVE2.9 MB2 daysReview
+
3 messages · 3.0 MB of 500 MBA domain administrator sees only their assigned inbound domains
+
+ + +
+
+ + diff --git a/docs/assets/panel-redesign/panel/in-queue.html b/docs/assets/panel-redesign/panel/in-queue.html new file mode 100644 index 0000000..09236bf --- /dev/null +++ b/docs/assets/panel-redesign/panel/in-queue.html @@ -0,0 +1,97 @@ + + + + + +Inbound queue · SelfPost + + + + + + + + + +
+
+
+
+

Inbound

+

Inbound queue

+

Mail accepted on port 25 and still waiting for its upstream. The same Postfix queue as outbound, filtered by recipient domain.

+
+
+ +
+
01

Waiting

Refreshes every 10 s
+
Nothing is waiting. Every accepted message has reached its upstream.
+
+ +
+
02

How retries work

This Postfix's policy, read at panel start
+
+
+
First retry
5 min
+
Later retries
doubling
capped at 66 min
+
Kept in queue
5 days
+
Then
bounced
back to the original sender
+
+
+
+ + +
+
+ + diff --git a/docs/assets/panel-redesign/panel/login.html b/docs/assets/panel-redesign/panel/login.html new file mode 100644 index 0000000..997db18 --- /dev/null +++ b/docs/assets/panel-redesign/panel/login.html @@ -0,0 +1,39 @@ + + + + + +Sign in · SelfPost + + + + + + + + + + diff --git a/docs/assets/panel-redesign/panel/out-app-created.html b/docs/assets/panel-redesign/panel/out-app-created.html new file mode 100644 index 0000000..471291c --- /dev/null +++ b/docs/assets/panel-redesign/panel/out-app-created.html @@ -0,0 +1,107 @@ + + + + + +New password · prod-server · SelfPost + + + + + + + + + +
+
+
+
+

Outbound domains / example.org / Applications /

+

New password for prod-server

+
+
+ +
+
+
+

Shown once

Not stored — copy it now
+
+
+
+
+
+

The previous password stopped working when this one was generated. If this one is lost, generate another.

+
+ +
+
+
+
+

Connect with

+
+
+
Server
mail.example.org
+
Port
465 SSL/TLS · 587 STARTTLS
+
May send as
*@example.org
+
+
+
+
+
+ + +
+
+ + diff --git a/docs/assets/panel-redesign/panel/out-app.html b/docs/assets/panel-redesign/panel/out-app.html new file mode 100644 index 0000000..7f41848 --- /dev/null +++ b/docs/assets/panel-redesign/panel/out-app.html @@ -0,0 +1,136 @@ + + + + + +prod-server · example.org · SelfPost + + + + + + + + + +
+
+
+
+

Outbound domains / example.org / Applications /

+

prod-server

+

1 102 messages in 30 days · peak 96 msg/h · average 1.5 msg/h. The same form, empty, adds a new application.

+
+ +
+ +
+
+
+
+
01

Sender

+
+
+
+

Unique across domains; letters, digits, . - _.

+
+
+
+
+

One per line. Used only with a list.

+
+
+
+ +
+
+
02

Client IP allow-list

off
+
+
+
+
+

A login from anywhere else is refused with a 4xx at MAIL FROM. A sending control, fail-open — not an authentication boundary.

+
+
+
+ +
+
+
03

Rate limit

active
+
+
+
+
+
+
+
+

Overrides the domain limit (288 / h) for this application; may be higher or lower, never above level 1.

+
+
+
+
+ +
+ + Cancel +
+
+ + +
+
+ + diff --git a/docs/assets/panel-redesign/panel/out-domain-delete.html b/docs/assets/panel-redesign/panel/out-domain-delete.html new file mode 100644 index 0000000..3ad4f1e --- /dev/null +++ b/docs/assets/panel-redesign/panel/out-domain-delete.html @@ -0,0 +1,110 @@ + + + + + +Delete example.org · SelfPost + + + + + + + + + +
+
+
+
+

Outbound domains / example.org /

+

Delete example.org

+
+
+ +
+
+
+

This cannot be undone

+
+

Deleting example.org will:

+
    +
  • permanently delete its DKIM signing key;
  • +
  • delete both applications (prod-server, alerts) with their credentials and sender bindings;
  • +
  • reload OpenDKIM so the domain is no longer signed.
  • +
+

The published DKIM record becomes invalid — remove it from DNS unless you plan to re-add the domain. Inbound domains are not touched.

+
+
+ + Keep it +
+
+
+
+
+
+
+

Moving it instead?

+
+

Export the domain first. The file carries the key and the application passwords, so the new instance needs no DNS change.

+
+
+
+
+ + +
+
+ + diff --git a/docs/assets/panel-redesign/panel/out-domain-settings.html b/docs/assets/panel-redesign/panel/out-domain-settings.html new file mode 100644 index 0000000..2ac6f50 --- /dev/null +++ b/docs/assets/panel-redesign/panel/out-domain-settings.html @@ -0,0 +1,147 @@ + + + + + +Settings · example.org · SelfPost + + + + + + + + + +
+
+
+
+

Outbound domains / example.org /

+

Domain settings

+

The things set once and rarely touched: where DMARC reports go, the sending ceiling, moving the domain elsewhere.

+
+
+ +
+
+
+
01

DMARC report address

+
+
+
+
+

A default belongs to a user and is set under their Account; a domain follows one named user, so two people sharing a domain never pull it two ways. Changing this changes the DMARC record to publish.

+ +
+
+
+ +
+
03

Export domain

+
+

One file with the DKIM key and every application's password hash — import it on another SelfPost and the published DNS needs no change. The file is a secret.

+
+
+
+
+
+
+

Keep this password: SelfPost does not store it, and the file cannot be opened without it.

+ +
+
+
+
+ +
+
+
02

Rate limit

active
+
+
+
+
+
+
+

Computed limit: 288 messages / 3600 s. Peak was 96 msg/h. Last recalculated yesterday 03:00 UTC.

+
+ + + +
+
+

Applies to every sender on this domain and cannot exceed level 1 (600 messages / 3600 s per client IP, set in .env). An application may carry its own limit above or below this one.

+
+
+ +
+
04

Delete domain

+
+

Removes the DKIM key and both applications. Asks once more before doing it.

+ Delete example.org… +
+
+
+
+ + +
+
+ + diff --git a/docs/assets/panel-redesign/panel/out-domain.html b/docs/assets/panel-redesign/panel/out-domain.html new file mode 100644 index 0000000..17f0d07 --- /dev/null +++ b/docs/assets/panel-redesign/panel/out-domain.html @@ -0,0 +1,179 @@ + + + + + +example.org · Outbound domains · SelfPost + + + + + + + + + +
+
+
+
DNSFAIL1 OF 3 RECORDS
+
+

Outbound domains /

+

example.org

+

1 284 messages in 30 days · peak 96 msg/h · average 1.8 msg/h

+
+
+
+ Add application +
+
+ +
+
+ +
+ +
+
+
01

DNS records

Checked 3 min ago
+ +
+

DKIM

publishedNot a secret · selector sp2026
+
+
+
+
+
+
+
+
+ +
+

SPF

mismatchMerge into the existing record — never publish a second one
+
+
+
+
+
+
+
+
+
+

The published record does not authorize 203.0.113.25. Add ip4:203.0.113.25 before ~all. Shallow check: include: is not followed.

+
+ +
+

DMARC

publishedReport address: admin's default
+
+
+
+
+
+
+
+

p=none does not affect delivery. Tighten to quarantine, then reject, once the reports look clean.

+
+
+ +
+
02

Applications

SASL logins that may send as this domain
+
+ + + + + + + +
LoginMay send as30 daysLimits
prod-server*@example.org1 102 msg · peak 96/h200 / hEditNew passwordDelete
alertsalerts@example.org, noc@example.org182 msg · peak 14/hdomain 2 IPsEditNew passwordDelete
+
New password and Delete ask for confirmation; the old password stops working at once.
+
+ +
+
03

Connection

The same for every domain
+
+
+
Server
mail.example.org
+
Port 465
SSL/TLS (implicit)
+
Port 587
STARTTLS (submission)
+
Authentication
Application login, required on every port
+
+
+
+
+
+ + +
+
+ + diff --git a/docs/assets/panel-redesign/panel/out-domains.html b/docs/assets/panel-redesign/panel/out-domains.html new file mode 100644 index 0000000..b1f0e76 --- /dev/null +++ b/docs/assets/panel-redesign/panel/out-domains.html @@ -0,0 +1,107 @@ + + + + + +Outbound domains · SelfPost + + + + + + + + + +
+
+
+
+

Outbound

+

Outbound domains

+

Domains this relay signs and sends for. Each gets a DKIM key and its own application logins.

+
+
+ +
+
01

Add a domain

+
+
+
+
+
+
+

A DKIM key is generated at once; the next page shows the three DNS records to publish. + Moving a domain from another SelfPost? Import it instead — the key and passwords come across.

+
+
+
+ +
+
02

Domains

3 domains · DNS cached a few minutes
+
+ + + + + + +
DomainDNSSelectorApps30 days
example.orgDKIM SPF DMARCsp202621 284 msg · peak 96/hOpenDelete
shop.example.orgDKIM SPF DMARCsp2026118 920 msg · peak 410/hOpenDelete
notify.acme.ioDKIM SPF DMARCsp20253402 msg · peak 22/hOpenDelete
+
Each tag is one check. Green — published and correct; amber — published but weak; red — missing or wrong.
+
+ + +
+
+ + diff --git a/docs/assets/panel-redesign/panel/out-log.html b/docs/assets/panel-redesign/panel/out-log.html new file mode 100644 index 0000000..07089c5 --- /dev/null +++ b/docs/assets/panel-redesign/panel/out-log.html @@ -0,0 +1,104 @@ + + + + + +Outbound log · SelfPost + + + + + + + + + +
+
+
+
+

Outbound

+

Outbound log

+

Every message an application handed to the relay. Rows older than 30 days are deleted — change that in Settings.

+
+
+ +
+
+ 01

Messages

+
+
+
+
+ +
+
+
+ + + + + + + + + +
Time, UTCFromToSubjectStatus
09-21 14:01:52shop@shop.example.orgm.keller@gmx.deYour order #48213 has shippedsentDetails
09-21 14:01:50shop@shop.example.organna.lind@outlook.comYour order #48212 has shippedsentDetails
09-21 13:58:07alerts@example.orgnoc@example.org[FIRING] disk usage above 90 % on db-2deferredDetails
09-21 13:41:19no-reply@notify.acme.ioj.doe@nonexistent.exampleReset your passwordbouncedDetails
09-21 13:40:02prod@example.orgbilling@partner.exampleInvoice 2026-0917rate-limitedDetails
09-21 13:12:44shop@shop.example.orgp.novak@seznam.czWe received your return requestsentDetails
+
Page 1 of 412Older →New rows appear on their own
+
+ + +
+
+ + diff --git a/docs/assets/panel-redesign/panel/out-message.html b/docs/assets/panel-redesign/panel/out-message.html new file mode 100644 index 0000000..95b3b06 --- /dev/null +++ b/docs/assets/panel-redesign/panel/out-message.html @@ -0,0 +1,118 @@ + + + + + +Message · Outbound log · SelfPost + + + + + + + + + +
+
+
+
+

Outbound log /

+

[FIRING] disk usage above 90 % on db-2

+

alerts@example.orgnoc@example.orgdeferred

+
+
+ +
+
+
+
01

Message

+
+
+ +
Application
alerts
+
Accepted
2026-09-21 13:58:07 UTC
+
Status reported
2026-09-21 13:58:09 UTC
+
Queue id
4XcB7k2Jm9z1
+
Journal id
184220
+
+
+
+
+
+
+
02

History

+
+
    +
  1. Accepted from alerts at 198.51.100.7
  2. +
  3. Deferred — the receiving server asked to retry later
  4. +
  5. Still in the queue; kept for 5 days, then bounced
  6. +
+
+
+
+
+ +
+
03

Delivery log

Lines from mail.log with this queue id
+
13:58:07 postfix/smtpd[2114]: 4XcB7k2Jm9z1: client=unknown[198.51.100.7], sasl_username=alerts
+13:58:07 postfix/cleanup[2120]: 4XcB7k2Jm9z1: message-id=<a81f0c@alertmanager>
+13:58:07 opendkim[39]: 4XcB7k2Jm9z1: DKIM-Signature field added (s=sp2026, d=example.org)
+13:58:09 postfix/smtp[2123]: 4XcB7k2Jm9z1: to=<noc@example.org>, relay=mx1.example.org[192.0.2.10]:25, delay=1.9, status=deferred (host mx1.example.org said: 451 4.7.1 Greylisted, try again in 5 minutes)
+
+ + +
+
+ + diff --git a/docs/assets/panel-redesign/panel/out-queue.html b/docs/assets/panel-redesign/panel/out-queue.html new file mode 100644 index 0000000..95a1f73 --- /dev/null +++ b/docs/assets/panel-redesign/panel/out-queue.html @@ -0,0 +1,102 @@ + + + + + +Outbound queue · SelfPost + + + + + + + + + +
+
+
+
+

Outbound

+

Outbound queue

+

Messages accepted from applications and still waiting for the receiving server. Refreshes every 10 s.

+
+
+ +
+
01

Waiting

1 message · 3.1 kB
+
+ + + + +
Queue idArrived, UTCFromToLast reply
4XcB7k2Jm9z109-21 13:58:07alerts@example.orgnoc@example.org451 4.7.1 Greylisted, try again in 5 minutesDetails
+
+ +
+
02

How retries work

This Postfix's policy, read at panel start
+
+
+
First retry
5 min
+
Later retries
doubling
capped at 66 min
+
Kept in queue
5 days
+
Then
bounced
no attempt counter, only time
+
+
+
+ + +
+
+ + diff --git a/docs/assets/panel-redesign/panel/outlines.json b/docs/assets/panel-redesign/panel/outlines.json new file mode 100644 index 0000000..c96b228 --- /dev/null +++ b/docs/assets/panel-redesign/panel/outlines.json @@ -0,0 +1,466 @@ +{ + "account": [ + "head", + { + "columns": [ + { + "is-5": [ + "box[Profile]:body", + "box[Password]:body" + ] + }, + { + "is-7": [ + "box[Notifications]:body", + "box[DMARC reports]:record×2" + ] + } + ] + } + ], + "backup": [ + "head", + { + "columns": [ + { + "is-6": [ + "box[Full backup]:body" + ] + }, + { + "is-6": [ + "box[Import a domain]:body" + ] + } + ] + } + ], + "dmarc-domain": [ + "head+postmark+actions", + { + "columns": [ + { + "is-5": [ + "box[Sources · 7 days]:table" + ] + }, + { + "is-7": [ + "box[Reports]:table" + ] + } + ] + } + ], + "dmarc-report": [ + "head", + { + "columns": [ + { + "is-6": [ + "box[Report]:body" + ] + }, + { + "is-6": [ + "box[Published policy]:body" + ] + } + ] + }, + "box[Records]:table" + ], + "dmarc": [ + "head", + "box[Ingest]:body", + "box[Recent reports]:table" + ], + "health": [ + "head+actions", + { + "columns": [ + { + "is-6": [ + "box[Machine]:table" + ] + }, + { + "is-6": [ + "box[Processes]:table" + ] + } + ] + }, + { + "columns": [ + { + "is-4": [ + "box[TLS certificate]:body" + ] + }, + { + "is-4": [ + "box[Milter sockets]:table" + ] + }, + { + "is-4": [ + "box[Hostname and reverse DNS]:body" + ] + } + ] + }, + "box[Configuration]:body" + ], + "help": [ + "head", + { + "columns": [ + { + "is-3": [ + "side_menu" + ] + }, + { + "is-9": [ + "box[Overview]:help×3", + "box[Outbound]:help×3" + ] + } + ] + } + ], + "in-domain-delete": [ + "head", + { + "columns": [ + { + "is-7": [ + "box.sp-danger-zone[This cannot be undone]:body" + ] + } + ] + } + ], + "in-domain": [ + "head+postmark+actions", + { + "columns": [ + { + "is-3": [ + "side_menu" + ] + }, + { + "is-9": [ + "box[MX record]:record", + { + "columns": [ + { + "is-6": [ + "box[Upstream]:body" + ] + }, + { + "is-6": [ + "box[Valid recipients]:body" + ] + } + ] + }, + "box[Spam filter]:body" + ] + } + ] + } + ], + "in-domains": [ + "head", + "box[Add a domain]:body", + "box[Domains]:table" + ], + "in-filter-lists": [ + "head", + "box[Add an entry]:body", + { + "columns": [ + { + "is-6": [ + "box[Deny]:table" + ] + }, + { + "is-6": [ + "box[Allow]:table" + ] + } + ] + }, + "box[Where the lists go]:body" + ], + "in-log": [ + "head", + "box[Messages]:table" + ], + "in-quarantine-message": [ + "head", + { + "columns": [ + { + "is-7": [ + "box[Message]:body" + ] + }, + { + "is-5": [ + "box[Why it was held]:table" + ] + } + ] + }, + "box[Headers]:log", + { + "columns": [ + { + "is-6": [ + "box[Release]:body" + ] + }, + { + "is-6": [ + "box.sp-danger-zone[Discard]:body" + ] + } + ] + } + ], + "in-quarantine": [ + "head", + "box[Held messages]:table" + ], + "in-queue": [ + "head", + "box[Waiting]:empty", + "box[How retries work]:body" + ], + "out-app-created": [ + "head", + { + "columns": [ + { + "is-7": [ + "box.sp-credential[Shown once]:record" + ] + }, + { + "is-5": [ + "box[Connect with]:body" + ] + } + ] + } + ], + "out-app": [ + "head+actions", + { + "form": [ + { + "columns": [ + { + "is-4": [ + "box[Sender]:body" + ] + }, + { + "is-4": [ + "box[Client IP allow-list]:body" + ] + }, + { + "is-4": [ + "box[Rate limit]:body" + ] + } + ] + }, + "submit_row" + ] + } + ], + "out-domain-delete": [ + "head", + { + "columns": [ + { + "is-7": [ + "box.sp-danger-zone[This cannot be undone]:body" + ] + }, + { + "is-5": [ + "box[Moving it instead?]:body" + ] + } + ] + } + ], + "out-domain-settings": [ + "head", + { + "columns": [ + { + "is-6": [ + "box[DMARC report address]:body", + "box[Export domain]:body" + ] + }, + { + "is-6": [ + "box[Rate limit]:body", + "box.sp-danger-zone[Delete domain]:body" + ] + } + ] + } + ], + "out-domain": [ + "head+postmark+actions", + { + "columns": [ + { + "is-3": [ + "side_menu" + ] + }, + { + "is-9": [ + "box[DNS records]:record×3", + "box[Applications]:table", + "box[Connection]:body" + ] + } + ] + } + ], + "out-domains": [ + "head", + "box[Add a domain]:body", + "box[Domains]:table" + ], + "out-log": [ + "head", + "box[Messages]:table" + ], + "out-message": [ + "head", + { + "columns": [ + { + "is-7": [ + "box[Message]:body" + ] + }, + { + "is-5": [ + "box[History]:body" + ] + } + ] + }, + "box[Delivery log]:log" + ], + "out-queue": [ + "head", + "box[Waiting]:table", + "box[How retries work]:body" + ], + "overview": [ + "head+postmark", + "box[Server health]:health", + { + "columns": [ + { + "is-7": [ + "box[Outbound domains]:table" + ] + }, + { + "is-5": [ + "box[Inbound domains]:table" + ] + } + ] + } + ], + "preflight": [ + "head+postmark+actions", + "box[Checks]:table", + "box[Send a test e-mail]:body" + ], + "settings": [ + "head", + { + "form": [ + { + "columns": [ + { + "is-6": [ + "box[Log retention]:body", + "box[Notifications]:body" + ] + }, + { + "is-6": [ + "box[Sending rate limits]:body" + ] + } + ] + }, + "submit_row" + ] + } + ], + "system-log": [ + "head", + "box[Recent lines]:log" + ], + "user-delete": [ + "head", + { + "columns": [ + { + "is-7": [ + "box.sp-danger-zone[This cannot be undone]:body" + ] + } + ] + } + ], + "user": [ + "head+actions", + { + "form": [ + { + "columns": [ + { + "is-6": [ + "box[Account]:body" + ] + }, + { + "is-6": [ + "box[Outbound domains]:body", + "box[Inbound domains]:body" + ] + } + ] + }, + "submit_row" + ] + } + ], + "users": [ + "head+actions", + "box[Panel users]:table" + ] +} diff --git a/docs/assets/panel-redesign/panel/overview.html b/docs/assets/panel-redesign/panel/overview.html new file mode 100644 index 0000000..6b73e25 --- /dev/null +++ b/docs/assets/panel-redesign/panel/overview.html @@ -0,0 +1,122 @@ + + + + + +Overview · SelfPost + + + + + + + + + +
+
+
+
SELFPOSTWARN1 OF 6 CHECKS
+
+

mail.example.org

+

Mail is flowing. One thing needs attention.

+

The TLS certificate expires in 12 days and has not renewed yet.

+
+
Updated 14:02:31 UTC
refreshes every 10 s
+
+ + + +
+
+
+
02

Outbound domains

+
+ + + + + + +
DomainDNSApps30 days
example.orgDKIM SPF DMARC21 284 msg
shop.example.orgDKIM SPF DMARC118 920 msg
notify.acme.ioDKIM SPF DMARC3402 msg
+
+
+
+
+
03

Inbound domains

+
+ + + + + +
DomainMXUpstream
lists.example.orgMXmx.internal:25
acme.ioMX10.0.4.12:2525
+
+
+
+ + +
+
+ + diff --git a/docs/assets/panel-redesign/panel/perf-edge.svg b/docs/assets/panel-redesign/panel/perf-edge.svg new file mode 100644 index 0000000..64107ef --- /dev/null +++ b/docs/assets/panel-redesign/panel/perf-edge.svg @@ -0,0 +1,6 @@ + + + + + diff --git a/docs/assets/panel-redesign/panel/preflight.html b/docs/assets/panel-redesign/panel/preflight.html new file mode 100644 index 0000000..59aeb07 --- /dev/null +++ b/docs/assets/panel-redesign/panel/preflight.html @@ -0,0 +1,124 @@ + + + + + +Preflight · SelfPost + + + + + + + + + +
+
+
+
PREFLIGHTWARN1 OF 7 CHECKS
+
+

Server

+

Preflight

+

Is this installation ready to deliver mail? Run it after the first start, after moving the server, or when receivers start refusing you. Health watches what runs; Preflight checks what the outside world sees.

+
+
+
+ +
+
01

Checks

Ran 14:02 UTC · 3.1 s
+
+ + + + + + + + + + +
CheckResultFoundWhat to do
Reverse DNSok203.0.113.25 ⇄ mail.example.org—
TLS certificatewarnValid for mail.example.org, expires in 12 daysRenewal has not run. Check that port 80 reaches the ACME client and look for acme in the system log.
Port 25ok220 mail.example.org ESMTP—
Ports 465, 587okTLS handshake, 220 banner on both—
HELO nameokmail.example.org—
Proxy headersokPeer 172.18.0.2 is trusted; X-Forwarded-Proto: https—
DKIM signingokinet:127.0.0.1:8891 answers—
+
Ports are dialled from inside the container at the public address; a firewall that treats inside and outside differently can make this pass while the world is still blocked. SPF, DKIM and DMARC are per domain — each outbound domain shows its own.
+
+ +
+
02

Send a test e-mail

Confirms the relay accepted it, not that it arrived
+
+
+
+
+
+
+
+
+
+

Sent from postmaster@mail.example.org through the local Postfix.

+
+
+
+
+
Last test
14:03 UTC to mix@elsewhere.example
+
Result
queued 4XcC1d8Pq2z1
+ +
+
+
+
+
+ + +
+
+ + diff --git a/docs/assets/panel-redesign/panel/settings.html b/docs/assets/panel-redesign/panel/settings.html new file mode 100644 index 0000000..7ad85e4 --- /dev/null +++ b/docs/assets/panel-redesign/panel/settings.html @@ -0,0 +1,116 @@ + + + + + +Settings · SelfPost + + + + + + + + + +
+
+
+
+

Server

+

Settings

+

What holds for the whole instance, whoever is signed in. Your own name, e-mail, notifications and DMARC report address are under Account.

+
+
+ +
+
+
+
+
01

Log retention

+
+
+
+

The main driver of /data growth. Does not affect mail.log rotation (fourteen daily files).

+
+
+ +
+
02

Notifications

+
+
+

Sent through this relay from postmaster@mail.example.org. Each user picks the events under Account; a user without an e-mail gets none.

+
+
+
+ +
+
+
03

Sending rate limits

Read-only
+
+
+
Level 1 · per client IP
600 / h
Set in .env; restart to change. Nothing below may exceed it.
+
Level 2 · domain, application
Set on each domain and application.
+
+
+
+
+
+
+
+ + +
+
+ + diff --git a/docs/assets/panel-redesign/panel/setup.html b/docs/assets/panel-redesign/panel/setup.html new file mode 100644 index 0000000..42840ba --- /dev/null +++ b/docs/assets/panel-redesign/panel/setup.html @@ -0,0 +1,44 @@ + + + + + +Create administrator · SelfPost + + + + + + + + + + diff --git a/docs/assets/panel-redesign/panel/src/account.html b/docs/assets/panel-redesign/panel/src/account.html new file mode 100644 index 0000000..8ab8ab7 --- /dev/null +++ b/docs/assets/panel-redesign/panel/src/account.html @@ -0,0 +1,88 @@ + +
+
+

Signed in as admin · global

+

Account

+

Who you are to this panel, what it should tell you about, and where reports about your domains go. Applications keep their own logins and passwords and are not affected.

+
+
+ +
+
+
+
01

Profile

+
+
+
+
+

Where the panel writes to you: the notifications on the right and a password-reset link. It can also receive DMARC reports — your choice, under DMARC reports.

+ +
+
+
+ +
+
02

Password

+
+
+
+
+
+
+
+

Changing it signs out every other session of this account; this one stays signed in.

+ +
+
+
+
+ +
+
+
03

Notifications

Sent to mix@example.org
+
+
+

Your domains

+
+
+
+
+
+

The server · global role

+
+
+
+

One message when a problem starts and one when it clears — never a stream. A domain administrator is told only about the domains assigned to them.

+ +
+
+
+ +
+
04

DMARC reports

authorized
+
+
+
+
+

Used by every outbound domain whose report address is set to admin's default — 2 of your 3 now. Changing it changes the DMARC record those domains must publish. The hosted address is parsed by SelfPost; any other just receives the raw XML.

+ +
+
+
+

Report authorization

publishedNeeded because the address is on another domain than the senders
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/assets/panel-redesign/panel/src/backup.html b/docs/assets/panel-redesign/panel/src/backup.html new file mode 100644 index 0000000..d492c03 --- /dev/null +++ b/docs/assets/panel-redesign/panel/src/backup.html @@ -0,0 +1,44 @@ + +
+
+

Server

+

Backup

+

Take the whole instance with you, or bring one domain in from another SelfPost. Both files are secrets.

+
+
+ +
+
+
+
01

Full backup

+
+

data/ (database, DKIM keys, credentials, the queue), docker-compose.yml, .env and certs/ in one archive. Restore into an empty project directory and start the same SelfPost version. The reverse-proxy vhost is not included.

+
+
+
+
+
+
+

Keep this password: SelfPost does not store it, and the file cannot be opened without it.

+ +
+
+
+
+ +
+
+
02

Import a domain

+
+

A domain export from another instance — plain .json or encrypted .spde. Its DKIM key and application passwords come across, so the published DNS needs no change. The export itself is made on the domain's settings.

+
+
+
+
+

Asked only for an encrypted .spde file.

+ +
+
+
+
+
diff --git a/docs/assets/panel-redesign/panel/src/components.html b/docs/assets/panel-redesign/panel/src/components.html new file mode 100644 index 0000000..7a6b717 --- /dev/null +++ b/docs/assets/panel-redesign/panel/src/components.html @@ -0,0 +1,222 @@ + +
+
SELFPOSTREFDESIGN CONTRACT
+
+

Reference · page_head

+

Components

+

Every building block of the panel, in every state it has. A screen is assembled from these and from plain Bulma — nothing else. The title of each box is the name of its template partial.

+
+ +
+ +
flash — the result of the last action, between page_head and the first box. Success, or…
+
…flash, error — a failure that belongs to the page, not to one field. A field's error stays under the field in Bulma's help is-danger.
+ +
+
00

Page layouts

A page is exactly one of these
+
+
+
list
page_head, then full-width boxes: the add form first, the table second. Example
+
detail
page_head, then columns: is-3 side menu + is-9 boxes. Example
+
form
page_head, then boxes in equal columns, one submit row under them. Example
+
signed out
The split brand / form screen, no navbar. Example
+
+
+
+ +
+
+
+
01

postmark

Worst status of the page's checks
+
+
+
SELFPOSTOK6 OF 6 CHECKS
+
SELFPOSTWARN1 OF 6 CHECKS
+
DNSFAIL1 OF 3 RECORDS
+
+

Only inside page_head, at most one per page, and only where the page has a verdict to give.

+
+
+ +
+
03

status_tag

One mapping, one function
+
+ + + + + + + + +
StatusTagBulma classes
ok, published, running, sentoktag is-success is-light
warn, deferred, quietwarntag is-warning is-light
error, fail, mismatch, bouncedfailtag is-danger is-light
unknown, off, neutral countsofftag is-light
held: quarantine · role: globalquarantinetag is-primary is-light
+
+
+ +
+
+
02

box · box_head

The end slot: a note, a tag, a link or a filter form
+

The after the end slot is sp-help: an optional link to the section's topic on the Help page. It replaces today's help drawer.

box_body — padded content. A table or a run of sp-record blocks sits directly in the box, without box_body.

+
box_foot — a legend, pagingend slot
+
+
+

box · sp-danger-zone

+

For destructive confirmations and the "delete" entry of a settings page. The number may be an icon when the box is not part of a sequence.

+
+
+

box · sp-credential

Shown once
+

Only for a secret the panel will never show again.

+
+
+
+ +
+
04

health_card

Overview only · each card links to its detail
+ +
+ +
+
+
+
05

dns_record · copy_field

One block per record
+
+

Record

publishedA one-line note
+
+
+
+
+
+
+
+
+
+

Record

mismatch"In DNS now" appears only when it differs
+
+
+

What is wrong and the exact fix.

+
+
+ +
+
07

Table conventions

Always inside table-container · an address breaks after its @
+
+ + + + +
Time, UTCNamesp-clipStatus
09-21 14:01:52the row's linkA long subject is clipped with an ellipsis instead of wrapping the rowsentDetailsDelete
+
Page 1 of 9Older →
+
+ +
+
09

log_pane

sp-d time · sp-w warning · sp-e error
+
13:58:07 an ordinary line
+13:58:09 a deferred delivery — sp-w
+13:57:41 a reject or a bounce — sp-e
+
+
+ +
+
+
06

facts

+
+
+
Label
Value
+
Mono value
4XcB7k2Jm9z1
+
sp-big
5 days
a supporting line
+
+
+
+ +
+
08

timeline

+
+
    +
  1. Done — default
  2. +
  3. Deferred — sp-warn
  4. +
  5. Bounced — sp-fail
  6. +
  7. Expected next — sp-pending
  8. +
+
+
+ +
+
10

empty_state

+
One sentence: what is absent and why that is fine.
+
+ +
+
11

confirm_list

+
+
    +
  • each thing that will be lost, one per line;
  • +
  • inside an sp-danger-zone box, above the danger button.
  • +
+
+
+
+
+ +
+
+ +
+
+
+
12

Form rows · route · help_topic

+
+
+
+
+
+
+
+
+

Help text lives in Bulma's help.

+
+
+

from@example.orgto@example.netdeferred

+
+

help_topic

A heading and a paragraph; topics stack inside one box on the Help page.

+
+
+
+ +
+
13

shell

Owned by the layout — a screen never writes it
+
+
+
Name
The wordmark, not the stamp: at nav size the stamp's perforation is under a pixel and its brick field dissolves into the bar. The stamp lives on sign-in, setup and the favicon.
+
Edge
Built like the mark: the brick field, then the stamp's paper margin, and the perforation along the outer edge of that margin — round holes, flat teeth, the ink hairline. One tile, perf-edge.svg.
+
Sibling strip
The pages of the current group, under the edge. Five or six entries; past that the group is split.
+
Menus
Bulma hover dropdowns, no JavaScript. The user menu holds Account, Help and Sign out.
+
+
+
+ +
+
14

Type scale

Three sizes · nothing to be read is under 13px
+
+ + + + + + +
SizeLooks likeUsed for
body · 16pxThe quick brown fox, 203.0.113.25Text, table cells, inputs, selects, buttons, menus and their dropdowns
--sp-fs-s · 14pxThe quick brown fox, 203.0.113.25Supporting text: labels, help, notes in a box head or foot, mono values (sp-small), logs, the footer
--sp-fs-xs · 13pxUpper-case mono label tagUpper-case mono micro-labels (kicker, table head, dt, box title) and tags — nothing else
+
Bulma's is-small and is-size-7 are not used: a control is never small, and sp-small replaces the helper. The postmark's fine print is an imprint, not text.
+
diff --git a/docs/assets/panel-redesign/panel/src/dmarc-domain.html b/docs/assets/panel-redesign/panel/src/dmarc-domain.html new file mode 100644 index 0000000..376c508 --- /dev/null +++ b/docs/assets/panel-redesign/panel/src/dmarc-domain.html @@ -0,0 +1,38 @@ + +
+
DMARC99.6%PASS · 7 DAYS
+
+

DMARC reports /

+

shop.example.org

+

11 204 pass · 41 fail in the last 7 days. Failures come from a source that is not this relay — review before tightening p=.

+
+ Domain page +
+ +
+
+
+
01

Sources · 7 days

+
+ + + + + +
SourcePassFailDisposition
203.0.113.25 this relay11 2040none
198.51.100.44041none
+
+
+
+
+
02

Reports

+
+ + + + + + +
Received, UTCReporterWindowPassFail
09-21 04:40Outlook.com20 Sep1 9037View
09-21 02:15google.com20 Sep6 4100View
09-20 04:38Outlook.com19 Sep1 87734View
+
+
+
diff --git a/docs/assets/panel-redesign/panel/src/dmarc-report.html b/docs/assets/panel-redesign/panel/src/dmarc-report.html new file mode 100644 index 0000000..c651b99 --- /dev/null +++ b/docs/assets/panel-redesign/panel/src/dmarc-report.html @@ -0,0 +1,47 @@ + +
+
+

DMARC reports / shop.example.org /

+

Outlook.com · 20 Sep 2026

+

shop.example.org1 903 pass7 fail

+
+
+ +
+
+
+
01

Report

+
+
+
Reporter
Outlook.com
+
Report id
5f1c9a0e7b2d4e61a3
+
Window
20 Sep 00:00 – 21 Sep 00:00 UTC
+
Received
2026-09-21 04:40 UTC
+
+
+
+
+
+
+
02

Published policy

+
+
+
p / sp / pct
none / none / 100
+
adkim / aspf
r / r
+
rua
dmarc@mail.example.org
+
+
+
+
+
+ +
+
03

Records

Parsed from the aggregate XML
+
+ + + + + +
SourceCountDispositionSPFDKIMHeader from
203.0.113.25 this relay1 903nonepasspassshop.example.org
198.51.100.447nonefailfailshop.example.org
+
diff --git a/docs/assets/panel-redesign/panel/src/dmarc.html b/docs/assets/panel-redesign/panel/src/dmarc.html new file mode 100644 index 0000000..3d92e79 --- /dev/null +++ b/docs/assets/panel-redesign/panel/src/dmarc.html @@ -0,0 +1,33 @@ + +
+
+

Outbound

+

DMARC reports

+

How receivers saw mail claiming to be from your domains. Aggregate (rua=) only; open a report for the parsed XML.

+
+
+ +
+
01

Ingest

ok
+
+
+
Last report
2026-09-21 06:12 UTC
+
This week
14 kept · 0 parse failures
+
Hosted address
dmarc@mail.example.org
+
Retention
500 reports or 90 days
+
+
+
+ +
+
02

Recent reports

+
+ + + + + + + +
Received, UTCDomainReporterWindowPassFail
09-21 06:12example.orggoogle.com20 Sep4120View
09-21 04:40shop.example.orgOutlook.com20 Sep1 9037View
09-20 23:58example.orgYahoo19 Sep380View
09-20 06:09notify.acme.iogoogle.com19 Sep610View
+
diff --git a/docs/assets/panel-redesign/panel/src/health.html b/docs/assets/panel-redesign/panel/src/health.html new file mode 100644 index 0000000..13daf39 --- /dev/null +++ b/docs/assets/panel-redesign/panel/src/health.html @@ -0,0 +1,88 @@ + +
+
+

Server

+

Health

+

Everything behind the six cards on Overview. Refreshes every 10 s.

+
+
+
+ +
+
+
+
01

Machine

ok
+
+ + + + + + +
ResourceUsageDetail
CPU12 %2 cores, load 0.21
Memory41 %812 MB of 1.9 GB
Network↓ 18 kB/s · ↑ 44 kB/seth0: 2.1 GB in, 6.4 GB out
+
+
+
+
+
02

Processes

ok
+
+ + + + + + + + +
ProgramStateDetail
postfixrunningpid 41, uptime 18 days
opendkimrunningpid 39, uptime 18 days
journal-milterrunningpid 40, uptime 18 days
panelrunningpid 44, uptime 18 days
dmarc-ingestrunningpid 47, uptime 18 days
+
+
+
+ +
+
+
+
03

TLS certificate

warn
+
+
+
Expires
2026-10-03 09:14 UTC
+
Names
mail.example.org
+
+

Expires in 12 days — renewal has not run.

+

Renewal normally runs 30 days before expiry. Check that port 80 is reachable and look for acme lines in the system log.

+
+
+
+
+
+
04

Milter sockets

ok
+
+ + + + + + +
MilterState
opendkim
inet:127.0.0.1:8891
ok
journal-milter
unix:/run/selfpost/journal.sock
ok
rspamd · inbound spam filter
inet:antispam:11332
ok
+
+
+
+
+
05

Hostname and reverse DNS

ok
+
+
+
Hostname
mail.example.org
+
Lookup
→ 203.0.113.25
← mail.example.org
+
+
+
+
+
+ +
+
06

Configuration

Safe to run at any time
+
+

Regenerates the OpenDKIM and Postfix configuration from the database and reloads both daemons. Use it after editing the files by hand, after restoring a backup, or when the running configuration looks out of step with the domain and application lists. It does not touch the queue or the TLS certificate.

+
+
+
diff --git a/docs/assets/panel-redesign/panel/src/help.html b/docs/assets/panel-redesign/panel/src/help.html new file mode 100644 index 0000000..7a6abb5 --- /dev/null +++ b/docs/assets/panel-redesign/panel/src/help.html @@ -0,0 +1,47 @@ + +
+
+

Reference

+

Help

+

What each screen checks and what to do when it is not green. Every numbered section on a page links to its topic here.

+
+
+ +
+ +
+
+
01

Overview

+

Health checks

Six checks, the worst of them is the postmark. ok needs nothing; warn still delivers mail but will stop doing so if ignored; fail means mail is being lost or refused now.

+

TLS certificate

The certificate Postfix presents on 465 and 587. It warns 14 days before expiry and fails once expired — clients that verify certificates then refuse to connect.

+

Hostname and reverse DNS

The hostname must resolve to this server's address, and that address must resolve back to the hostname. Large receivers reject or spam-folder mail from hosts where the two disagree. The PTR record is set at your hosting provider, not in your DNS zone.

+
+
+
02

Outbound

+

DNS records

DKIM proves the message was signed by this relay, SPF lists the addresses allowed to send for the domain, DMARC tells receivers what to do when both fail and where to report. Publish all three exactly as shown; merge SPF into an existing record rather than adding a second one.

+

Applications

An application is one SASL login. It may send as any address of its domain or only as listed addresses. The password is shown once at creation or regeneration and is not stored in readable form.

+

Rate limits

Level 1 is a per-IP ceiling set in .env. Level 2 is optional, per domain and per application, manual or computed from 30-day statistics, and can never exceed level 1.

+
+
+
diff --git a/docs/assets/panel-redesign/panel/src/in-domain-delete.html b/docs/assets/panel-redesign/panel/src/in-domain-delete.html new file mode 100644 index 0000000..ff0d89a --- /dev/null +++ b/docs/assets/panel-redesign/panel/src/in-domain-delete.html @@ -0,0 +1,29 @@ + +
+
+

Inbound domains / lists.example.org /

+

Delete lists.example.org

+
+
+ +
+
+
+

This cannot be undone

+
+

Deleting the inbound domain lists.example.org will:

+
    +
  • stop accepting mail for it on port 25 — senders get a relay-denied reply;
  • +
  • remove its upstream and its 4 listed recipients.
  • +
+

Remove or repoint the MX record first, or mail for the domain will bounce. Outbound domains are not touched.

+
+
+ + Keep it +
+
+
+
+
+
diff --git a/docs/assets/panel-redesign/panel/src/in-domain.html b/docs/assets/panel-redesign/panel/src/in-domain.html new file mode 100644 index 0000000..d04534f --- /dev/null +++ b/docs/assets/panel-redesign/panel/src/in-domain.html @@ -0,0 +1,99 @@ + +
+
DNSOKMX POINTS HERE
+
+

Inbound domains /

+

lists.example.org

+

Accepted on port 25, handed to mx.internal:25 over required TLS · 4 recipients

+
+
+
+
+
+ +
+
+ +
+ +
+
+
01

MX record

Checked 1 min ago
+
+

MX

publishedKeep any existing primary MX if this is a backup-MX
+
+
+
+
+
+
+
+
+
+ +
+
+
+
02

Upstream

Not a mailbox
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+
03

Valid recipients

+
+
+
+
+
+
+

Unknown recipients are rejected at RCPT, so this relay generates no backscatter. Prefer a list unless the upstream itself rejects unknowns.

+ +
+
+
+
+
+ +
+
04

Spam filter

on
+
+
+
Engine
rspamd, for every inbound domain of this server
+
Suspicious mail
Held — 1 message in quarantine for this domain
+
Spam
Refused at the door; see reject in the log
+
Allow and deny lists
Kept by the global administrator, one pair for the whole server
+
+
+
+
+
diff --git a/docs/assets/panel-redesign/panel/src/in-domains.html b/docs/assets/panel-redesign/panel/src/in-domains.html new file mode 100644 index 0000000..6362e9f --- /dev/null +++ b/docs/assets/panel-redesign/panel/src/in-domains.html @@ -0,0 +1,33 @@ + +
+
+

Inbound

+

Inbound domains

+

Backup-MX / forwarder. Port 25 accepts mail only for the domains listed here and hands it to their upstream. No mailboxes.

+
+
+ +
+
01

Add a domain

+
+
+
+
+
+
+

Mail is not accepted until an upstream host is saved on the domain's page. Adding and deleting domains is for a global administrator; a domain administrator sees the list without this form and without Delete.

+
+
+
+ +
+
02

Domains

Spam filter on · 2 domains
+
+ + + + + +
DomainDNSUpstreamRecipientsTLS to upstream
lists.example.orgMXmx.internal:254 addressesrequiredOpenDelete
acme.ioMX10.0.4.12:2525any addressopportunisticOpenDelete
+
The MX tag is green when at least one MX of the domain points at this server.
+
diff --git a/docs/assets/panel-redesign/panel/src/in-filter-lists.html b/docs/assets/panel-redesign/panel/src/in-filter-lists.html new file mode 100644 index 0000000..3b11e03 --- /dev/null +++ b/docs/assets/panel-redesign/panel/src/in-filter-lists.html @@ -0,0 +1,73 @@ + +
+
+

Inbound · global role

+

Filter lists

+

Correct the spam filter by hand: senders it must always let through, and senders it must always turn away. One pair of lists for the whole instance.

+
+
+ +
+
01

Add an entry

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+ +
+
+
+
02

Deny

3 entries · wins over Allow
+
+ + + + + + +
ValueNoteAdded
@bulk.example domainnewsletter nobody subscribed to2026-09-02Remove
198.51.100.0/24 ipdictionary attack on lists.example.org2026-08-19Remove
win@lottery.example address—2026-07-30Remove
+
+
+
+
+
03

Allow

2 entries
+
+ + + + + +
ValueNoteAdded
@partner.example domaininvoices were scored as spam2026-09-11Remove
noreply@github.example addresssecurity advisories2026-06-04Remove
+
+
+
+ +
+
04

Where the lists go

applied
+
+
+
Applied by
rspamd, from map files
+
Files
/data/antispam/allow.map
/data/antispam/deny.map
+
Last written
2026-09-11 08:40 UTC
+
When the filter is off
The lists are kept and editable, but nothing reads them until INBOUND_ANTISPAM_MILTER is set.
+
+
+
diff --git a/docs/assets/panel-redesign/panel/src/in-log.html b/docs/assets/panel-redesign/panel/src/in-log.html new file mode 100644 index 0000000..1300ee2 --- /dev/null +++ b/docs/assets/panel-redesign/panel/src/in-log.html @@ -0,0 +1,33 @@ + +
+
+

Inbound

+

Inbound log

+

What port 25 decided about each message, one row per recipient. Accepts come from the inbound journal, rejects from mail.log; the filter's reasons appear when the spam filter is on.

+
+
+ +
+
+ 01

Messages

+
+
+
+ + + +
+
+
+ + + + + + + + + +
Time, UTCFrom · clientToSubjectDecisionWhy
09-21 14:00:18t.berg@uni.example
192.0.2.77
dev@lists.example.orgRe: [dev] patch series v3acceptrspamd · score 0.4Deny sender
09-21 13:59:02invoice@partner-billing.example
203.0.113.140
owner@lists.example.orgOutstanding invoice — action requiredquarantinerspamd · score 9.8 · PHISHING, FORGED_SENDERReview
09-21 13:57:41promo@bulk.example
198.51.100.90
sales@lists.example.org—rejectpostfix · 550 5.1.1 unknown recipientDeny sender
09-21 13:51:30billing@partner.example
198.51.100.12
owner@lists.example.orgInvoice 2026-0917rejectrspamd · score 16.2 · BAYES_SPAMAllow sender
09-21 13:44:02hr@partner.example
192.0.2.31
jobs@acme.ioApplication: backend engineertempfailselfpost · upstream 10.0.4.12 timed out
09-21 13:30:55noreply@github.example
192.0.2.200
security@lists.example.org[advisory] new reportacceptrspamd · allow list
+
Page 1 of 38Older →Allow / Deny sender opens Filter lists with the entry filled in · global administrator only
+
diff --git a/docs/assets/panel-redesign/panel/src/in-quarantine-message.html b/docs/assets/panel-redesign/panel/src/in-quarantine-message.html new file mode 100644 index 0000000..ebdf86d --- /dev/null +++ b/docs/assets/panel-redesign/panel/src/in-quarantine-message.html @@ -0,0 +1,77 @@ + +
+
+

Quarantine /

+

Outstanding invoice — action required

+

invoice@partner-billing.exampleowner@lists.example.orgquarantine

+
+
+ +
+
+
+
01

Message

+
+
+
Inbound domain
lists.example.org
+
Client
203.0.113.140
+
Held
2026-09-21 13:59:02 UTC
+
Deleted on
2026-10-05 · in 14 days
+
Size
48 kB · 1 attachment (invoice.html)
+
Would go to
mx.internal:25
+
+
+
+
+
+
+
02

Why it was held

rspamd · score 9.8
+
+ + + + + + +
SymbolScore
PHISHING5.0
FORGED_SENDER3.0
HTML_ATTACHMENT1.8
+
+
+
+ +
+
03

Headers

The body and attachments are never rendered in the panel
+
Received: from mail.partner-billing.example (unknown [203.0.113.140]) by mail.example.org
+From: "Partner Billing" <invoice@partner-billing.example>
+Reply-To: payments.dept@freemail.example
+To: owner@lists.example.org
+Subject: Outstanding invoice — action required
+Date: Mon, 21 Sep 2026 13:58:57 +0000
+Authentication-Results: spf=fail dkim=none dmarc=fail
+
+ +
+
+
+
04

Release

+
+

Hands the message to mx.internal:25 unchanged, as if it had just arrived. It leaves the quarantine.

+
+
+ +
+
+
+
+
+
+

Discard

+
+

Deletes the message now instead of in 14 days. The sender is not told. This cannot be undone.

+
+
+ +
+
+
+
+
diff --git a/docs/assets/panel-redesign/panel/src/in-quarantine.html b/docs/assets/panel-redesign/panel/src/in-quarantine.html new file mode 100644 index 0000000..1511dcf --- /dev/null +++ b/docs/assets/panel-redesign/panel/src/in-quarantine.html @@ -0,0 +1,27 @@ + +
+
+

Inbound

+

Quarantine

+

Mail the filter found suspicious enough to hold, but not to refuse. Release hands a message to its upstream as if it had just arrived; Discard deletes it. Anything left is deleted after 14 days.

+
+
+ +
+
+ 01

Held messages

+
+
+ +
+
+
+ + + + + + +
Held, UTCFromToSubjectWhySizeDeleted in
09-21 13:59:02invoice@partner-billing.exampleowner@lists.example.orgOutstanding invoice — action requiredscore 9.8 · PHISHING48 kB14 daysReview
09-20 22:14:40no-reply@shipping-update.examplejobs@acme.ioYour parcel could not be deliveredscore 8.1 · URL_SHORTENER12 kB13 daysReview
09-09 07:02:11m.ortega@supplier.exampleowner@lists.example.orgFwd: scanned contract (3 attachments)score 7.4 · MIME_ARCHIVE2.9 MB2 daysReview
+
3 messages · 3.0 MB of 500 MBA domain administrator sees only their assigned inbound domains
+
diff --git a/docs/assets/panel-redesign/panel/src/in-queue.html b/docs/assets/panel-redesign/panel/src/in-queue.html new file mode 100644 index 0000000..6e721c4 --- /dev/null +++ b/docs/assets/panel-redesign/panel/src/in-queue.html @@ -0,0 +1,25 @@ + +
+
+

Inbound

+

Inbound queue

+

Mail accepted on port 25 and still waiting for its upstream. The same Postfix queue as outbound, filtered by recipient domain.

+
+
+ +
+
01

Waiting

Refreshes every 10 s
+
Nothing is waiting. Every accepted message has reached its upstream.
+
+ +
+
02

How retries work

This Postfix's policy, read at panel start
+
+
+
First retry
5 min
+
Later retries
doubling
capped at 66 min
+
Kept in queue
5 days
+
Then
bounced
back to the original sender
+
+
+
diff --git a/docs/assets/panel-redesign/panel/src/login.html b/docs/assets/panel-redesign/panel/src/login.html new file mode 100644 index 0000000..18e70c7 --- /dev/null +++ b/docs/assets/panel-redesign/panel/src/login.html @@ -0,0 +1,25 @@ + + diff --git a/docs/assets/panel-redesign/panel/src/out-app-created.html b/docs/assets/panel-redesign/panel/src/out-app-created.html new file mode 100644 index 0000000..11bccdb --- /dev/null +++ b/docs/assets/panel-redesign/panel/src/out-app-created.html @@ -0,0 +1,35 @@ + +
+
+

Outbound domains / example.org / Applications /

+

New password for prod-server

+
+
+ +
+
+
+

Shown once

Not stored — copy it now
+
+
+
+
+
+

The previous password stopped working when this one was generated. If this one is lost, generate another.

+
+ +
+
+
+
+

Connect with

+
+
+
Server
mail.example.org
+
Port
465 SSL/TLS · 587 STARTTLS
+
May send as
*@example.org
+
+
+
+
+
diff --git a/docs/assets/panel-redesign/panel/src/out-app.html b/docs/assets/panel-redesign/panel/src/out-app.html new file mode 100644 index 0000000..ffb61c6 --- /dev/null +++ b/docs/assets/panel-redesign/panel/src/out-app.html @@ -0,0 +1,64 @@ + +
+
+

Outbound domains / example.org / Applications /

+

prod-server

+

1 102 messages in 30 days · peak 96 msg/h · average 1.5 msg/h. The same form, empty, adds a new application.

+
+ +
+ +
+
+
+
+
01

Sender

+
+
+
+

Unique across domains; letters, digits, . - _.

+
+
+
+
+

One per line. Used only with a list.

+
+
+
+ +
+
+
02

Client IP allow-list

off
+
+
+
+
+

A login from anywhere else is refused with a 4xx at MAIL FROM. A sending control, fail-open — not an authentication boundary.

+
+
+
+ +
+
+
03

Rate limit

active
+
+
+
+
+
+
+
+

Overrides the domain limit (288 / h) for this application; may be higher or lower, never above level 1.

+
+
+
+
+ +
+ + Cancel +
+
diff --git a/docs/assets/panel-redesign/panel/src/out-domain-delete.html b/docs/assets/panel-redesign/panel/src/out-domain-delete.html new file mode 100644 index 0000000..f3156a7 --- /dev/null +++ b/docs/assets/panel-redesign/panel/src/out-domain-delete.html @@ -0,0 +1,38 @@ + +
+
+

Outbound domains / example.org /

+

Delete example.org

+
+
+ +
+
+
+

This cannot be undone

+
+

Deleting example.org will:

+
    +
  • permanently delete its DKIM signing key;
  • +
  • delete both applications (prod-server, alerts) with their credentials and sender bindings;
  • +
  • reload OpenDKIM so the domain is no longer signed.
  • +
+

The published DKIM record becomes invalid — remove it from DNS unless you plan to re-add the domain. Inbound domains are not touched.

+
+
+ + Keep it +
+
+
+
+
+
+
+

Moving it instead?

+
+

Export the domain first. The file carries the key and the application passwords, so the new instance needs no DNS change.

+
+
+
+
diff --git a/docs/assets/panel-redesign/panel/src/out-domain-settings.html b/docs/assets/panel-redesign/panel/src/out-domain-settings.html new file mode 100644 index 0000000..9125dff --- /dev/null +++ b/docs/assets/panel-redesign/panel/src/out-domain-settings.html @@ -0,0 +1,75 @@ + +
+
+

Outbound domains / example.org /

+

Domain settings

+

The things set once and rarely touched: where DMARC reports go, the sending ceiling, moving the domain elsewhere.

+
+
+ +
+
+
+
01

DMARC report address

+
+
+
+
+

A default belongs to a user and is set under their Account; a domain follows one named user, so two people sharing a domain never pull it two ways. Changing this changes the DMARC record to publish.

+ +
+
+
+ +
+
03

Export domain

+
+

One file with the DKIM key and every application's password hash — import it on another SelfPost and the published DNS needs no change. The file is a secret.

+
+
+
+
+
+
+

Keep this password: SelfPost does not store it, and the file cannot be opened without it.

+ +
+
+
+
+ +
+
+
02

Rate limit

active
+
+
+
+
+
+
+

Computed limit: 288 messages / 3600 s. Peak was 96 msg/h. Last recalculated yesterday 03:00 UTC.

+
+ + + +
+
+

Applies to every sender on this domain and cannot exceed level 1 (600 messages / 3600 s per client IP, set in .env). An application may carry its own limit above or below this one.

+
+
+ +
+
04

Delete domain

+
+

Removes the DKIM key and both applications. Asks once more before doing it.

+ Delete example.org… +
+
+
+
diff --git a/docs/assets/panel-redesign/panel/src/out-domain.html b/docs/assets/panel-redesign/panel/src/out-domain.html new file mode 100644 index 0000000..57a6133 --- /dev/null +++ b/docs/assets/panel-redesign/panel/src/out-domain.html @@ -0,0 +1,107 @@ + +
+
DNSFAIL1 OF 3 RECORDS
+
+

Outbound domains /

+

example.org

+

1 284 messages in 30 days · peak 96 msg/h · average 1.8 msg/h

+
+
+
+ Add application +
+
+ +
+
+ +
+ +
+
+
01

DNS records

Checked 3 min ago
+ +
+

DKIM

publishedNot a secret · selector sp2026
+
+
+
+
+
+
+
+
+ +
+

SPF

mismatchMerge into the existing record — never publish a second one
+
+
+
+
+
+
+
+
+
+

The published record does not authorize 203.0.113.25. Add ip4:203.0.113.25 before ~all. Shallow check: include: is not followed.

+
+ +
+

DMARC

publishedReport address: admin's default
+
+
+
+
+
+
+
+

p=none does not affect delivery. Tighten to quarantine, then reject, once the reports look clean.

+
+
+ +
+
02

Applications

SASL logins that may send as this domain
+
+ + + + + + + +
LoginMay send as30 daysLimits
prod-server*@example.org1 102 msg · peak 96/h200 / hEditNew passwordDelete
alertsalerts@example.org, noc@example.org182 msg · peak 14/hdomain 2 IPsEditNew passwordDelete
+
New password and Delete ask for confirmation; the old password stops working at once.
+
+ +
+
03

Connection

The same for every domain
+
+
+
Server
mail.example.org
+
Port 465
SSL/TLS (implicit)
+
Port 587
STARTTLS (submission)
+
Authentication
Application login, required on every port
+
+
+
+
+
diff --git a/docs/assets/panel-redesign/panel/src/out-domains.html b/docs/assets/panel-redesign/panel/src/out-domains.html new file mode 100644 index 0000000..4fadd2f --- /dev/null +++ b/docs/assets/panel-redesign/panel/src/out-domains.html @@ -0,0 +1,35 @@ + +
+
+

Outbound

+

Outbound domains

+

Domains this relay signs and sends for. Each gets a DKIM key and its own application logins.

+
+
+ +
+
01

Add a domain

+
+
+
+
+
+
+

A DKIM key is generated at once; the next page shows the three DNS records to publish. + Moving a domain from another SelfPost? Import it instead — the key and passwords come across.

+
+
+
+ +
+
02

Domains

3 domains · DNS cached a few minutes
+
+ + + + + + +
DomainDNSSelectorApps30 days
example.orgDKIM SPF DMARCsp202621 284 msg · peak 96/hOpenDelete
shop.example.orgDKIM SPF DMARCsp2026118 920 msg · peak 410/hOpenDelete
notify.acme.ioDKIM SPF DMARCsp20253402 msg · peak 22/hOpenDelete
+
Each tag is one check. Green — published and correct; amber — published but weak; red — missing or wrong.
+
diff --git a/docs/assets/panel-redesign/panel/src/out-log.html b/docs/assets/panel-redesign/panel/src/out-log.html new file mode 100644 index 0000000..9ddea15 --- /dev/null +++ b/docs/assets/panel-redesign/panel/src/out-log.html @@ -0,0 +1,32 @@ + +
+
+

Outbound

+

Outbound log

+

Every message an application handed to the relay. Rows older than 30 days are deleted — change that in Settings.

+
+
+ +
+
+ 01

Messages

+
+
+
+
+ +
+
+
+ + + + + + + + + +
Time, UTCFromToSubjectStatus
09-21 14:01:52shop@shop.example.orgm.keller@gmx.deYour order #48213 has shippedsentDetails
09-21 14:01:50shop@shop.example.organna.lind@outlook.comYour order #48212 has shippedsentDetails
09-21 13:58:07alerts@example.orgnoc@example.org[FIRING] disk usage above 90 % on db-2deferredDetails
09-21 13:41:19no-reply@notify.acme.ioj.doe@nonexistent.exampleReset your passwordbouncedDetails
09-21 13:40:02prod@example.orgbilling@partner.exampleInvoice 2026-0917rate-limitedDetails
09-21 13:12:44shop@shop.example.orgp.novak@seznam.czWe received your return requestsentDetails
+
Page 1 of 412Older →New rows appear on their own
+
diff --git a/docs/assets/panel-redesign/panel/src/out-message.html b/docs/assets/panel-redesign/panel/src/out-message.html new file mode 100644 index 0000000..cdb30bc --- /dev/null +++ b/docs/assets/panel-redesign/panel/src/out-message.html @@ -0,0 +1,46 @@ + +
+
+

Outbound log /

+

[FIRING] disk usage above 90 % on db-2

+

alerts@example.orgnoc@example.orgdeferred

+
+
+ +
+
+
+
01

Message

+
+
+ +
Application
alerts
+
Accepted
2026-09-21 13:58:07 UTC
+
Status reported
2026-09-21 13:58:09 UTC
+
Queue id
4XcB7k2Jm9z1
+
Journal id
184220
+
+
+
+
+
+
+
02

History

+
+
    +
  1. Accepted from alerts at 198.51.100.7
  2. +
  3. Deferred — the receiving server asked to retry later
  4. +
  5. Still in the queue; kept for 5 days, then bounced
  6. +
+
+
+
+
+ +
+
03

Delivery log

Lines from mail.log with this queue id
+
13:58:07 postfix/smtpd[2114]: 4XcB7k2Jm9z1: client=unknown[198.51.100.7], sasl_username=alerts
+13:58:07 postfix/cleanup[2120]: 4XcB7k2Jm9z1: message-id=<a81f0c@alertmanager>
+13:58:07 opendkim[39]: 4XcB7k2Jm9z1: DKIM-Signature field added (s=sp2026, d=example.org)
+13:58:09 postfix/smtp[2123]: 4XcB7k2Jm9z1: to=<noc@example.org>, relay=mx1.example.org[192.0.2.10]:25, delay=1.9, status=deferred (host mx1.example.org said: 451 4.7.1 Greylisted, try again in 5 minutes)
+
diff --git a/docs/assets/panel-redesign/panel/src/out-queue.html b/docs/assets/panel-redesign/panel/src/out-queue.html new file mode 100644 index 0000000..523af78 --- /dev/null +++ b/docs/assets/panel-redesign/panel/src/out-queue.html @@ -0,0 +1,30 @@ + +
+
+

Outbound

+

Outbound queue

+

Messages accepted from applications and still waiting for the receiving server. Refreshes every 10 s.

+
+
+ +
+
01

Waiting

1 message · 3.1 kB
+
+ + + + +
Queue idArrived, UTCFromToLast reply
4XcB7k2Jm9z109-21 13:58:07alerts@example.orgnoc@example.org451 4.7.1 Greylisted, try again in 5 minutesDetails
+
+ +
+
02

How retries work

This Postfix's policy, read at panel start
+
+
+
First retry
5 min
+
Later retries
doubling
capped at 66 min
+
Kept in queue
5 days
+
Then
bounced
no attempt counter, only time
+
+
+
diff --git a/docs/assets/panel-redesign/panel/src/overview.html b/docs/assets/panel-redesign/panel/src/overview.html new file mode 100644 index 0000000..a7d203a --- /dev/null +++ b/docs/assets/panel-redesign/panel/src/overview.html @@ -0,0 +1,50 @@ + +
+
SELFPOSTWARN1 OF 6 CHECKS
+
+

mail.example.org

+

Mail is flowing. One thing needs attention.

+

The TLS certificate expires in 12 days and has not renewed yet.

+
+
Updated 14:02:31 UTC
refreshes every 10 s
+
+ + + +
+
+
+
02

Outbound domains

+
+ + + + + + +
DomainDNSApps30 days
example.orgDKIM SPF DMARC21 284 msg
shop.example.orgDKIM SPF DMARC118 920 msg
notify.acme.ioDKIM SPF DMARC3402 msg
+
+
+
+
+
03

Inbound domains

+
+ + + + + +
DomainMXUpstream
lists.example.orgMXmx.internal:25
acme.ioMX10.0.4.12:2525
+
+
+
diff --git a/docs/assets/panel-redesign/panel/src/preflight.html b/docs/assets/panel-redesign/panel/src/preflight.html new file mode 100644 index 0000000..ba3b009 --- /dev/null +++ b/docs/assets/panel-redesign/panel/src/preflight.html @@ -0,0 +1,52 @@ + +
+
PREFLIGHTWARN1 OF 7 CHECKS
+
+

Server

+

Preflight

+

Is this installation ready to deliver mail? Run it after the first start, after moving the server, or when receivers start refusing you. Health watches what runs; Preflight checks what the outside world sees.

+
+
+
+ +
+
01

Checks

Ran 14:02 UTC · 3.1 s
+
+ + + + + + + + + + +
CheckResultFoundWhat to do
Reverse DNSok203.0.113.25 ⇄ mail.example.org—
TLS certificatewarnValid for mail.example.org, expires in 12 daysRenewal has not run. Check that port 80 reaches the ACME client and look for acme in the system log.
Port 25ok220 mail.example.org ESMTP—
Ports 465, 587okTLS handshake, 220 banner on both—
HELO nameokmail.example.org—
Proxy headersokPeer 172.18.0.2 is trusted; X-Forwarded-Proto: https—
DKIM signingokinet:127.0.0.1:8891 answers—
+
Ports are dialled from inside the container at the public address; a firewall that treats inside and outside differently can make this pass while the world is still blocked. SPF, DKIM and DMARC are per domain — each outbound domain shows its own.
+
+ +
+
02

Send a test e-mail

Confirms the relay accepted it, not that it arrived
+
+
+
+
+
+
+
+
+
+

Sent from postmaster@mail.example.org through the local Postfix.

+
+
+
+
+
Last test
14:03 UTC to mix@elsewhere.example
+
Result
queued 4XcC1d8Pq2z1
+ +
+
+
+
+
diff --git a/docs/assets/panel-redesign/panel/src/settings.html b/docs/assets/panel-redesign/panel/src/settings.html new file mode 100644 index 0000000..6ea0ce8 --- /dev/null +++ b/docs/assets/panel-redesign/panel/src/settings.html @@ -0,0 +1,44 @@ + +
+
+

Server

+

Settings

+

What holds for the whole instance, whoever is signed in. Your own name, e-mail, notifications and DMARC report address are under Account.

+
+
+ +
+
+
+
+
01

Log retention

+
+
+
+

The main driver of /data growth. Does not affect mail.log rotation (fourteen daily files).

+
+
+ +
+
02

Notifications

+
+
+

Sent through this relay from postmaster@mail.example.org. Each user picks the events under Account; a user without an e-mail gets none.

+
+
+
+ +
+
+
03

Sending rate limits

Read-only
+
+
+
Level 1 · per client IP
600 / h
Set in .env; restart to change. Nothing below may exceed it.
+
Level 2 · domain, application
Set on each domain and application.
+
+
+
+
+
+
+
diff --git a/docs/assets/panel-redesign/panel/src/setup.html b/docs/assets/panel-redesign/panel/src/setup.html new file mode 100644 index 0000000..f7c3d76 --- /dev/null +++ b/docs/assets/panel-redesign/panel/src/setup.html @@ -0,0 +1,30 @@ + + diff --git a/docs/assets/panel-redesign/panel/src/system-log.html b/docs/assets/panel-redesign/panel/src/system-log.html new file mode 100644 index 0000000..c0a37ee --- /dev/null +++ b/docs/assets/panel-redesign/panel/src/system-log.html @@ -0,0 +1,22 @@ + +
+
+

Server

+

System log

+

The tail of mail.log — Postfix, OpenDKIM and the milters. For one message, open it from a log page instead.

+
+
+ +
+
01

Recent lines

Last 200 · refreshes every 10 s
+
Sep 21 14:01:52 postfix/smtp[2131]: 4XcB9q0Lw2z1: to=<m.keller@gmx.de>, relay=mx00.gmx.net[212.227.15.9]:25, delay=0.8, status=sent (250 Requested mail action okay)
+Sep 21 14:01:52 postfix/qmgr[58]: 4XcB9q0Lw2z1: removed
+Sep 21 14:00:18 postfix/smtpd[2129]: connect from mail.uni.example[192.0.2.77]
+Sep 21 14:00:18 postfix/smtp[2130]: 4XcB8z5Tn1z1: to=<dev@lists.example.org>, relay=mx.internal[10.0.4.2]:25, status=sent (250 2.0.0 Ok: queued)
+Sep 21 13:58:09 postfix/smtp[2123]: 4XcB7k2Jm9z1: to=<noc@example.org>, relay=mx1.example.org[192.0.2.10]:25, status=deferred (451 4.7.1 Greylisted, try again in 5 minutes)
+Sep 21 13:57:41 postfix/smtpd[2119]: NOQUEUE: reject: RCPT from bulk.example[198.51.100.90]: 550 5.1.1 <sales@lists.example.org>: Recipient address rejected: unknown recipient
+Sep 21 13:44:02 postfix/smtp[2101]: 4XcB2m7Hd4z1: to=<jobs@acme.io>, relay=none, status=deferred (connect to 10.0.4.12[10.0.4.12]:2525: Connection timed out)
+Sep 21 13:41:19 postfix/smtp[2098]: 4XcB1c3Rk8z1: to=<j.doe@nonexistent.example>, status=bounced (Host or domain name not found)
+Sep 21 13:40:02 journal-milter[40]: rate limit: app=prod-server 201/200 in 3600s — tempfail at MAIL FROM
+Sep 21 13:00:00 opendkim[39]: key table reloaded (3 domains)
+
diff --git a/docs/assets/panel-redesign/panel/src/user-delete.html b/docs/assets/panel-redesign/panel/src/user-delete.html new file mode 100644 index 0000000..dcf0888 --- /dev/null +++ b/docs/assets/panel-redesign/panel/src/user-delete.html @@ -0,0 +1,29 @@ + +
+
+

Users / acme-ops /

+

Delete acme-ops

+
+
+ +
+
+
+

This cannot be undone

+
+

Deleting the panel user acme-ops will:

+
    +
  • end any signed-in session of this user at once;
  • +
  • remove the assignments to all outbound domains and to acme.io (inbound).
  • +
+

The domains, their applications and passwords, upstreams and recipients are not affected.

+
+
+ + Keep it +
+
+
+
+
+
diff --git a/docs/assets/panel-redesign/panel/src/user.html b/docs/assets/panel-redesign/panel/src/user.html new file mode 100644 index 0000000..e005506 --- /dev/null +++ b/docs/assets/panel-redesign/panel/src/user.html @@ -0,0 +1,54 @@ + +
+
+

Users /

+

acme-ops

+

The same form, empty, creates a new user.

+
+ Delete user +
+ +
+
+
+
+
01

Account

+
+
+
+

For notifications and a password-reset link. The user can change it under Account.

+
+

Leave empty to keep the current one.

+
+
+

Everyone here is an administrator; the role is the reach. Global also sees Server and is the only one who adds or deletes domains. The only global user cannot be changed to domain or deleted.

+
+
+
+
+
+
02

Outbound domains

DNS records, applications, log
+
+
+
+
+
+

With All ticked the list below it is ignored — and greyed out where scripts run.

+
+
+
+
03

Inbound domains

Upstream, recipients, log
+
+
+
+
+

Granted separately from outbound: the same name on both lists is two assignments. The domain role needs at least one domain, or All, on either list.

+
+
+
+
+
+ + Cancel +
+
diff --git a/docs/assets/panel-redesign/panel/src/users.html b/docs/assets/panel-redesign/panel/src/users.html new file mode 100644 index 0000000..d4947ff --- /dev/null +++ b/docs/assets/panel-redesign/panel/src/users.html @@ -0,0 +1,23 @@ + +
+
+

Server

+

Users

+

Who may sign in to this panel. Everyone here is an administrator; the role is the reach — global is the whole server, domain is the domains assigned, outbound and inbound separately.

+
+ Create user +
+ +
User acme-ops created.
+ +
+
01

Panel users

3 users
+
+ + + + + + +
UsernameE-mailRoleOutbound domainsInbound domains
admin youmix@example.orgglobalAllAllEdit
shop-teamteam@shop.example.orgdomainshop.example.org—Edit
acme-opsops@acme.iodomainAllacme.ioEdit
+
diff --git a/docs/assets/panel-redesign/panel/system-log.html b/docs/assets/panel-redesign/panel/system-log.html new file mode 100644 index 0000000..c99f1c6 --- /dev/null +++ b/docs/assets/panel-redesign/panel/system-log.html @@ -0,0 +1,94 @@ + + + + + +System log · SelfPost + + + + + + + + + +
+
+
+
+

Server

+

System log

+

The tail of mail.log — Postfix, OpenDKIM and the milters. For one message, open it from a log page instead.

+
+
+ +
+
01

Recent lines

Last 200 · refreshes every 10 s
+
Sep 21 14:01:52 postfix/smtp[2131]: 4XcB9q0Lw2z1: to=<m.keller@gmx.de>, relay=mx00.gmx.net[212.227.15.9]:25, delay=0.8, status=sent (250 Requested mail action okay)
+Sep 21 14:01:52 postfix/qmgr[58]: 4XcB9q0Lw2z1: removed
+Sep 21 14:00:18 postfix/smtpd[2129]: connect from mail.uni.example[192.0.2.77]
+Sep 21 14:00:18 postfix/smtp[2130]: 4XcB8z5Tn1z1: to=<dev@lists.example.org>, relay=mx.internal[10.0.4.2]:25, status=sent (250 2.0.0 Ok: queued)
+Sep 21 13:58:09 postfix/smtp[2123]: 4XcB7k2Jm9z1: to=<noc@example.org>, relay=mx1.example.org[192.0.2.10]:25, status=deferred (451 4.7.1 Greylisted, try again in 5 minutes)
+Sep 21 13:57:41 postfix/smtpd[2119]: NOQUEUE: reject: RCPT from bulk.example[198.51.100.90]: 550 5.1.1 <sales@lists.example.org>: Recipient address rejected: unknown recipient
+Sep 21 13:44:02 postfix/smtp[2101]: 4XcB2m7Hd4z1: to=<jobs@acme.io>, relay=none, status=deferred (connect to 10.0.4.12[10.0.4.12]:2525: Connection timed out)
+Sep 21 13:41:19 postfix/smtp[2098]: 4XcB1c3Rk8z1: to=<j.doe@nonexistent.example>, status=bounced (Host or domain name not found)
+Sep 21 13:40:02 journal-milter[40]: rate limit: app=prod-server 201/200 in 3600s — tempfail at MAIL FROM
+Sep 21 13:00:00 opendkim[39]: key table reloaded (3 domains)
+
+ + +
+
+ + diff --git a/docs/assets/panel-redesign/panel/theme.css b/docs/assets/panel-redesign/panel/theme.css new file mode 100644 index 0000000..2e58ec3 --- /dev/null +++ b/docs/assets/panel-redesign/panel/theme.css @@ -0,0 +1,257 @@ +/* The accepted direction: C ("Counter", Bulma) as the base, the postal + signature of A (postmark, numbered mono section heads, the stamp's + perforation) and the icons of B. Bulma carries navbar, dropdowns, columns, + boxes, tables, tags, menu, forms; what follows is brand mapping plus the + handful of components that are SelfPost's own. */ + +:root { + --bulma-family-primary: var(--sp-sans); + --bulma-family-secondary: var(--sp-sans); + --bulma-family-code: var(--sp-mono); + --bulma-primary-h: 10deg; --bulma-primary-s: 45%; --bulma-primary-l: 33%; + --bulma-link-h: 10deg; --bulma-link-s: 45%; --bulma-link-l: 33%; + --bulma-success-h: 138deg; --bulma-success-s: 42%; --bulma-success-l: 30%; + --bulma-warning-h: 36deg; --bulma-warning-s: 85%; --bulma-warning-l: 55%; + --bulma-danger-h: 4deg; --bulma-danger-s: 76%; --bulma-danger-l: 40%; + --bulma-radius: 6px; --bulma-radius-large: 10px; + --bulma-body-size: 16px; + /* The type scale. Three sizes carry all running text; nothing a person has + to read is below 13px. check.py enforces the floor. + body 16px text, inputs, buttons, menus, table cells + s 14px supporting text: labels, help, notes, footers, mono values, logs + xs 13px upper-case mono micro-labels and tags only */ + --sp-fs-s: .875rem; + --sp-fs-xs: .8125rem; + --bulma-link-text: var(--sp-brick); + --bulma-link-text-hover: var(--sp-brick-dark); +} +/* Bulma picks a button's text colour from the lightness of its fill; our brick + and our red are dark enough to land on the wrong side and get near-black + text (3:1). Solid buttons are white on colour; the light variants keep + Bulma's dark-on-tint. */ +.button.is-primary:not(.is-light), .button.is-primary:not(.is-light):hover, +.button.is-danger:not(.is-light), .button.is-danger:not(.is-light):hover { color: #fff; } +a strong { color: inherit; } +html, body { background: var(--sp-paper); } +body { color: var(--sp-ink); min-height: 100vh; display: flex; flex-direction: column; } +main { flex: 1; } +code { background: var(--sp-well); color: var(--sp-ink); border-radius: 3px; padding: .1em .35em; font-size: .95em; } +.ti { font-size: 1.15em; vertical-align: -.12em; } +.button .ti { margin-right: .35rem; } +.sp-muted { color: var(--sp-muted); } +/* Bulma ships these at .75rem; on the scale they are s or xs. `sp-small` + replaces Bulma's `is-size-7` helper, which is .75rem and !important. */ +.help, .label { font-size: var(--sp-fs-s); } +.tag, .menu-label { font-size: var(--sp-fs-xs); } +.menu-label { color: var(--sp-muted); } /* Bulma's grey is 4.2:1 on the paper */ +.sp-small { font-size: var(--sp-fs-s); } +.sp-mono { font-family: var(--sp-mono); } +.sp-nowrap { white-space: nowrap; } + +/* ---- navbar, the perforated edge under it, sibling pages below */ +.navbar.is-primary { --bulma-navbar-height: 4rem; } +/* The name, not the stamp: at this size the stamp's perforation is under a + pixel and its brick field dissolves into the bar. The stamp stays where it + has room — sign-in, setup, the favicon. */ +.navbar-brand img { max-height: none; height: 1.45rem; } +.navbar.is-primary .navbar-item, .navbar.is-primary .navbar-link { color: var(--sp-on-brick); font-weight: 500; } +.navbar.is-primary .navbar-link::after { border-color: var(--sp-on-brick); } +.navbar.is-primary .navbar-link .ti { margin-right: .4rem; } +/* Bulma shrinks dropdown items to .875rem; a menu entry is read as often as + the bar it hangs from, so it gets the bar's size. */ +.navbar-dropdown { border-top: 0; box-shadow: 0 8px 24px rgb(18 22 28 / .14); font-size: 1rem; } +.navbar.is-primary .navbar-dropdown .navbar-item { color: var(--sp-ink); font-weight: 400; padding-right: 2rem; } +.navbar.is-primary .navbar-dropdown .navbar-item .ti { margin-right: .6rem; color: var(--sp-muted); } +.navbar.is-primary .navbar-dropdown .navbar-item.is-active { color: var(--sp-brick); font-weight: 600; background: var(--sp-brick-tint); } +.navbar.is-primary .navbar-dropdown .navbar-item.is-active .ti { color: var(--sp-brick); } +.navbar.is-primary .sp-current > .navbar-link, .navbar.is-primary a.navbar-item.sp-current { background: rgb(0 0 0 / .18); } +/* The header is built like the mark: a brick field, then the stamp's paper + margin, and the perforation runs along the outer edge of that margin — round + holes, flat teeth, the mark's ink hairline (perf-edge.svg is one tooth and + one hole at the mark's 2.2 / 7.03 ratio). On the mark the margin is one + pitch deep and a tenth of the brick field's height; here that is 8px under + a 60px bar — a little over a tenth, so a 2.5px hole still reads as round. */ +.sp-perf { + height: 8px; + background: + url("perf-edge.svg") repeat-x left bottom / 8px 4px, + linear-gradient(var(--sp-stamp-paper), var(--sp-stamp-paper)) no-repeat left top / 100% 4px; +} +.sp-subnav { border-bottom: 1px solid var(--sp-rule); margin-top: -1px; } +.sp-subnav .container { display: flex; gap: 1.8rem; overflow-x: auto; } +.sp-subnav a { color: var(--sp-muted); padding: .75rem 0 .65rem; white-space: nowrap; border-bottom: 2px solid transparent; } +.sp-subnav a .ti { margin-right: .4rem; } +.sp-subnav a:hover { color: var(--sp-ink); } +.sp-subnav a[aria-current] { color: var(--sp-ink); font-weight: 600; border-bottom-color: var(--sp-brick); } + +/* ---- page head */ +.sp-page { padding-block: 1.8rem 2.5rem; } +.sp-head { display: flex; align-items: center; gap: 1.2rem; flex-wrap: wrap; margin-bottom: 1.5rem; } +.sp-head .sp-grow { flex: 1; min-width: 14rem; } +.sp-kicker { font-family: var(--sp-mono); font-size: var(--sp-fs-xs); letter-spacing: .1em; text-transform: uppercase; color: var(--sp-muted); } +.sp-kicker a { color: inherit; } +.sp-kicker a:hover { color: var(--sp-brick); } +.title { color: var(--sp-ink); font-weight: 600; } +.sp-head .title { margin: 0; overflow-wrap: anywhere; } +.sp-head .sp-lead { color: var(--sp-muted); margin-top: .2rem; max-width: 48rem; } +.sp-head .buttons { margin: 0; } +.sp-head .buttons > * { margin-bottom: 0; } + +/* ---- postmark */ +.sp-postmark { + flex: none; width: 6rem; height: 6rem; border-radius: 50%; transform: rotate(-9deg); + border: 2px solid currentColor; outline: 1px solid currentColor; outline-offset: 3px; margin: .3rem .5rem; + display: grid; place-content: center; text-align: center; color: var(--sp-ok); + font-family: var(--sp-mono); font-weight: 600; letter-spacing: .08em; line-height: 1.15; +} +.sp-postmark.sp-warn { color: var(--sp-warn); } +.sp-postmark.sp-fail { color: var(--sp-fail); } +.sp-postmark b { font-size: 1.3rem; display: block; } +/* Below the floor on purpose: an imprint, and the heading beside it says the same in words. */ +.sp-postmark span { font-size: .6rem; display: block; } + +/* ---- box with a numbered mono head */ +.box { box-shadow: none; border: 1px solid var(--sp-rule); padding: 0; overflow: hidden; } +.box > .sp-box-head { + display: flex; flex-wrap: wrap; align-items: center; gap: .7rem; padding: .7rem 1.25rem; border-bottom: 1px solid var(--sp-rule); +} +.sp-box-head form.sp-end { justify-content: flex-end; } +/* Bulma's .input is 100% wide; in the filter row it takes a flex basis instead, so it sits beside the selects. */ +.sp-box-head form.sp-end > .input { flex: 0 1 10.5rem; } +.sp-box-head .sp-no { font-family: var(--sp-mono); font-size: var(--sp-fs-xs); font-weight: 600; color: var(--sp-brick); } +.sp-box-head h2 { font-family: var(--sp-mono); font-size: var(--sp-fs-xs); font-weight: 600; letter-spacing: .1em; text-transform: uppercase; margin: 0; } +.sp-box-head .sp-end { margin-left: auto; color: var(--sp-muted); font-size: var(--sp-fs-s); display: flex; gap: .6rem; align-items: center; } +.sp-box-head .sp-help { color: var(--sp-muted); line-height: 1; } +.sp-box-head .sp-help:hover { color: var(--sp-brick); } +.sp-box-head .sp-end + .sp-help { margin-left: 0; } +.sp-box-head h2 + .sp-help { margin-left: auto; } +.notification { border: 1px solid transparent; padding: .8rem 1.25rem; } +.notification.is-success.is-light { border-color: var(--sp-ok-rule); } +.notification.is-danger.is-light { border-color: var(--sp-fail-rule); } +.notification .ti { margin-right: .5rem; } +.box > .sp-box-body { padding: 1.25rem; } +.box > .sp-box-body > :last-child { margin-bottom: 0; } +/* A table never sits bare in a box: the container lets a wide one scroll + sideways instead of being cut off by the box's rounded overflow. */ +.box > .table-container, .box > .table-container > .table { margin: 0; } +.sp-box-foot .sp-end { margin-left: auto; } +/* A filter form in the head keeps full-size controls; the head gives up its + own padding to them instead of shrinking the text. */ +.sp-box-head form.sp-end { margin-block: -.35rem; font-size: 1rem; } +.box > .sp-box-foot {padding: .7rem 1.25rem; border-top: 1px solid var(--sp-rule); color: var(--sp-muted); font-size: var(--sp-fs-s); display: flex; gap: 1rem; align-items: center; } +.box.sp-danger-zone { border-color: var(--sp-fail-rule); } +.box.sp-danger-zone .sp-box-head { background: var(--sp-fail-bg); border-color: var(--sp-fail-rule); } +.box.sp-credential { border-color: #e0c874; } +.box.sp-credential .sp-box-head { background: #fcf6e4; border-color: #e0c874; } + +.table { background: transparent; } +.table thead th { font-family: var(--sp-mono); font-size: var(--sp-fs-xs); font-weight: 400; letter-spacing: .08em; text-transform: uppercase; color: var(--sp-muted); } +/* Addresses in tables carry a after the @ (one template function), so a + long one breaks where it reads naturally and its column can still shrink; + `overflow-wrap: anywhere` would do it too, but mid-word. */ +.table td, .table th { vertical-align: middle; padding: .55rem .6rem; } +.box > .table-container td:first-child, .box > .table-container th:first-child { padding-left: 1.25rem; } +.box > .table-container td:last-child, .box > .table-container th:last-child { padding-right: 1.25rem; } +.table td.sp-actions { text-align: right; white-space: nowrap; } +.table td.sp-actions a { margin-left: .9rem; } +.table td.sp-clip { max-width: 13rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } +.tag { font-family: var(--sp-mono); font-weight: 600; letter-spacing: .04em; } +.sp-empty { padding: 2.2rem 1.25rem; text-align: center; color: var(--sp-muted); } +.sp-empty .ti { font-size: 2rem; display: block; margin-bottom: .4rem; color: var(--sp-rule-strong); } + +/* ---- health cards */ +/* Six cards: six, three or two columns — never a count that leaves one card alone on a row. */ +.sp-health { display: grid; grid-template-columns: repeat(6, 1fr); gap: 0; } +.sp-health > a { + display: flex; gap: .7rem; align-items: center; padding: .75rem 1rem; color: var(--sp-ink); min-width: 0; + border-right: 1px solid var(--sp-rule); border-bottom: 1px solid var(--sp-rule); margin: 0 -1px -1px 0; +} +.sp-health > a:hover { background: var(--sp-paper); } +.sp-health > a > span:last-child { min-width: 0; } +.sp-h-icon { flex: none; width: 2.1rem; height: 2.1rem; border-radius: 7px; display: grid; place-content: center; background: var(--sp-ok-bg); color: var(--sp-ok); } +.sp-h-icon .ti { font-size: 1.25rem; vertical-align: 0; } +.sp-health > a.sp-warn { background: var(--sp-warn-bg); } +.sp-health > a.sp-warn .sp-h-icon { background: #f6e2b8; color: #8a5510; } +.sp-health > a.sp-fail { background: var(--sp-fail-bg); } +.sp-health > a.sp-fail .sp-h-icon { background: #f5d3cc; color: var(--sp-fail); } +/* Each line is a block with its own tight line height; a verdict is two or + three words and never wraps — a wrapped card would stretch the whole row. */ +.sp-h-name, .sp-h-value, .sp-h-sub { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } +.sp-h-name { font-family: var(--sp-mono); font-size: var(--sp-fs-xs); letter-spacing: .08em; text-transform: uppercase; color: var(--sp-muted); line-height: 1.3; } +.sp-h-value { font-weight: 600; line-height: 1.3; } +.sp-h-sub { font-size: var(--sp-fs-s); color: var(--sp-muted); line-height: 1.3; } + +/* ---- facts, records, side menu */ +.sp-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr)); gap: 1rem 1.5rem; margin: 0; } +.sp-facts dt { font-family: var(--sp-mono); font-size: var(--sp-fs-xs); letter-spacing: .08em; text-transform: uppercase; color: var(--sp-muted); } +.sp-facts dd { margin: 0; overflow-wrap: anywhere; } +.sp-facts dd.sp-big { font-size: 1.5rem; font-weight: 600; line-height: 1.2; } +.sp-side { position: sticky; top: 1.5rem; } +.menu-label { font-family: var(--sp-mono); letter-spacing: .1em; } +.menu-list a { display: flex; align-items: center; gap: .55rem; } +.menu-list a .ti { color: var(--sp-muted); } +.menu-list a.is-active .ti { color: inherit; } +.menu-list a .tag { margin-left: auto; } +.sp-record { padding: 1.25rem; } +.sp-record + .sp-record { border-top: 1px solid var(--sp-rule); } +.sp-record-head { display: flex; align-items: center; gap: .6rem; margin-bottom: .75rem; } +.sp-record-head h3 { font-size: 1rem; font-weight: 600; margin: 0; } +.sp-record-head small { margin-left: auto; color: var(--sp-muted); text-align: right; } +.sp-record .label, .sp-form .label { font-weight: 500; color: var(--sp-ink-2); margin-bottom: .25rem; } +.sp-record .label { font-weight: 400; color: var(--sp-muted); } +.input[readonly], .textarea[readonly] { font-family: var(--sp-mono); font-size: var(--sp-fs-s); background: var(--sp-well); box-shadow: none; } +/* Bulma sizes a control from its own font; the smaller mono text made the + value shorter than the Copy button joined to it. */ +.input[readonly] { height: 2.5rem; } +.textarea[readonly] { min-height: 2.5rem; } +.textarea[readonly] { resize: none; min-height: 0; } +.sp-record .field:not(:last-child) { margin-bottom: .6rem; } +.sp-row { display: grid; grid-template-columns: 1fr 7rem; gap: .75rem; } +.sp-pair { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; } + +/* ---- logs, timeline, help */ +.sp-log { + margin: 0; padding: 1rem 1.25rem; background: #191c21; color: #d9d5cc; border-radius: 0; + font-family: var(--sp-mono); font-size: var(--sp-fs-s); line-height: 1.6; overflow-x: auto; white-space: pre; +} +.sp-log .sp-w { color: #e0b15c; } .sp-log .sp-e { color: #ef8f82; } .sp-log .sp-d { color: #7f8894; } +.sp-timeline { list-style: none; margin: 0; padding: 0; } +.sp-timeline li { position: relative; padding: 0 0 1.1rem 1.6rem; border-left: 2px solid var(--sp-rule); margin-left: .4rem; } +.sp-timeline li:last-child { padding-bottom: 0; border-left-color: transparent; } +.sp-timeline li::before { content: ""; position: absolute; left: -7px; top: .25rem; width: 12px; height: 12px; border-radius: 50%; background: var(--sp-ok); box-shadow: 0 0 0 3px #fff; } +.sp-timeline li.sp-warn::before { background: #d9962b; } +.sp-timeline li.sp-fail::before { background: var(--sp-fail); } +.sp-timeline li.sp-pending::before { background: #fff; border: 2px solid var(--sp-rule-strong); } +.sp-timeline time { font-family: var(--sp-mono); font-size: var(--sp-fs-xs); color: var(--sp-muted); display: block; } +.sp-route { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; font-family: var(--sp-mono); font-size: var(--sp-fs-s); margin-top: .3rem; } +.sp-help-topic + .sp-help-topic { border-top: 1px solid var(--sp-rule); } +.sp-help-topic { padding: 1rem 1.25rem; } +.sp-help-topic h3 { font-weight: 600; margin-bottom: .3rem; } +.sp-list-check { list-style: none; margin: 0 0 1rem; } +.sp-list-check li { padding-left: 1.7rem; position: relative; margin-bottom: .45rem; } +.sp-list-check li .ti { position: absolute; left: 0; top: .15rem; color: var(--sp-fail); } + +/* ---- signed-out pages */ +.sp-signin { min-height: 100vh; margin: 0; } +.sp-signin-brand { background: var(--sp-brick); display: grid; place-content: center; text-align: center; padding: 3rem; position: relative; } +.sp-signin-brand::after { + content: ""; position: absolute; top: 0; bottom: 0; right: -7px; width: 7px; z-index: 1; + background: radial-gradient(circle at 0 7px, var(--sp-brick) 5px, transparent 5.6px); background-size: 7px 14px; +} +.sp-signin-brand img { width: 20rem; max-width: 100%; height: auto; } +.sp-signin-brand p { font-family: var(--sp-mono); letter-spacing: .18em; font-size: var(--sp-fs-xs); color: var(--sp-on-brick); margin-top: 1.6rem; } +.sp-signin-form { display: flex; flex-direction: column; justify-content: center; padding: 3rem; } +.sp-signin-form form { width: 22rem; max-width: 100%; margin-inline: auto; } +.sp-foot { color: var(--sp-muted); font-size: var(--sp-fs-s); padding-block: 1.5rem 0; } +.sp-foot a { color: inherit; text-decoration: underline; } +.sp-signin-form .sp-foot { text-align: center; margin-top: 2.5rem; } + +@media (max-width: 1407px) { .sp-health { grid-template-columns: repeat(3, 1fr); } } +@media (max-width: 1023px) { .sp-box-head form.sp-end { flex-wrap: wrap; } } +@media (max-width: 768px) { + .sp-health { grid-template-columns: repeat(2, 1fr); } + .sp-row, .sp-pair { grid-template-columns: 1fr; } + .sp-record-head { flex-wrap: wrap; } + .sp-record-head small { margin-left: 0; text-align: left; flex-basis: 100%; } + .sp-postmark { display: none; } +} diff --git a/docs/assets/panel-redesign/panel/user-delete.html b/docs/assets/panel-redesign/panel/user-delete.html new file mode 100644 index 0000000..374acbc --- /dev/null +++ b/docs/assets/panel-redesign/panel/user-delete.html @@ -0,0 +1,101 @@ + + + + + +Delete acme-ops · SelfPost + + + + + + + + + +
+
+
+
+

Users / acme-ops /

+

Delete acme-ops

+
+
+ +
+
+
+

This cannot be undone

+
+

Deleting the panel user acme-ops will:

+
    +
  • end any signed-in session of this user at once;
  • +
  • remove the assignments to all outbound domains and to acme.io (inbound).
  • +
+

The domains, their applications and passwords, upstreams and recipients are not affected.

+
+
+ + Keep it +
+
+
+
+
+
+ + +
+
+ + diff --git a/docs/assets/panel-redesign/panel/user.html b/docs/assets/panel-redesign/panel/user.html new file mode 100644 index 0000000..32b7e2a --- /dev/null +++ b/docs/assets/panel-redesign/panel/user.html @@ -0,0 +1,126 @@ + + + + + +acme-ops · Users · SelfPost + + + + + + + + + +
+
+
+
+

Users /

+

acme-ops

+

The same form, empty, creates a new user.

+
+ Delete user +
+ +
+
+
+
+
01

Account

+
+
+
+

For notifications and a password-reset link. The user can change it under Account.

+
+

Leave empty to keep the current one.

+
+
+

Everyone here is an administrator; the role is the reach. Global also sees Server and is the only one who adds or deletes domains. The only global user cannot be changed to domain or deleted.

+
+
+
+
+
+
02

Outbound domains

DNS records, applications, log
+
+
+
+
+
+

With All ticked the list below it is ignored — and greyed out where scripts run.

+
+
+
+
03

Inbound domains

Upstream, recipients, log
+
+
+
+
+

Granted separately from outbound: the same name on both lists is two assignments. The domain role needs at least one domain, or All, on either list.

+
+
+
+
+
+ + Cancel +
+
+ + +
+
+ + diff --git a/docs/assets/panel-redesign/panel/users.html b/docs/assets/panel-redesign/panel/users.html new file mode 100644 index 0000000..a7959df --- /dev/null +++ b/docs/assets/panel-redesign/panel/users.html @@ -0,0 +1,95 @@ + + + + + +Users · SelfPost + + + + + + + + + +
+
+
+
+

Server

+

Users

+

Who may sign in to this panel. Everyone here is an administrator; the role is the reach — global is the whole server, domain is the domains assigned, outbound and inbound separately.

+
+ Create user +
+ +
User acme-ops created.
+ +
+
01

Panel users

3 users
+
+ + + + + + +
UsernameE-mailRoleOutbound domainsInbound domains
admin youmix@example.orgglobalAllAllEdit
shop-teamteam@shop.example.orgdomainshop.example.org—Edit
acme-opsops@acme.iodomainAllacme.ioEdit
+
+ + +
+
+ + diff --git a/docs/assets/panel-redesign/shared/brand.css b/docs/assets/panel-redesign/shared/brand.css new file mode 100644 index 0000000..3ca41ab --- /dev/null +++ b/docs/assets/panel-redesign/shared/brand.css @@ -0,0 +1,48 @@ +/* Brand layer shared by the three redesign directions: the panel's own fonts + and the palette of the mark (docs/assets/selfpost-proof.html). Each + direction maps these tokens onto its library's variables in its own + theme.css — nothing here knows about Pico, Tabler or Bulma. + + Mockup note: no inline style="" and no inline

+
+ +
+