The owner's "проверь, что документация актуальна с кодом" (2026-10-16): the words the mockups put on screen against what the panel renders and does, page by page (docs-audit, 2026-10-17). Where the code is right about behaviour the mockup follows it; where the mockup is right the code follows in the next commit. The mockups now say: "Refreshes automatically" / "refreshes on its own" instead of "every 10 s" (panel.js polls at 5 s, 30 s, up to 60 s) on Health, Overview, System log and both queues; System log points at the Outbound log, the one with a page per message; the Spam filter facts are what the panel knows without the quarantine (Applies to, Filter, If the filter is down), and Valid recipients takes one per line or comma; a DMARC report's title has no year, as its own title line; the "same form, empty" sentences go (a new application and a new user have their own heads); an application's login is fixed; the auto limit's multiplier is 1.5-5, default 2.5 (store/ratelimits.go); the user form's e-mail is for notifications (no reset link yet) and All makes the single domains ignored (nothing greys them); a user's deletion says "(outbound)"; a message's history is the panel's own steps, with the queue's wait after a deferral; the footer is the panel's, "Copyright © 2026 Mikhail Yenuchenko". Help, true to the code: an application's password is kept by the server (sasldb2) so an export can carry it; a refusal for From:/Sender: is one row of the Outbound log; every password check of a backup counts, right or wrong, ten in 15 minutes; a password set on the user form signs that user out everywhere, but your own keeps your session; the limit mail is daily per sending domain (notify.go, "limit:"+domain). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
26 lines
1.3 KiB
HTML
26 lines
1.3 KiB
HTML
<!-- title: Sign in | shell: bare -->
|
|
<div class="columns is-gapless sp-signin">
|
|
<div class="column is-half sp-signin-brand">
|
|
<div>
|
|
<img src="../../selfpost-stamp.svg" alt="SelfPost">
|
|
<p>YOUR SMTP. YOUR RULES.</p>
|
|
</div>
|
|
</div>
|
|
<div class="column is-half sp-signin-form">
|
|
<form class="sp-form" method="post" action="overview.html">
|
|
<p class="sp-kicker">mail.example.org</p>
|
|
<h1 class="title is-3">Sign in</h1>
|
|
<div class="field">
|
|
<label class="label" for="username">Username</label>
|
|
<div class="control has-icons-left"><input class="input" id="username" name="username" autocomplete="username" required><span class="icon is-left"><i class="ti ti-user"></i></span></div>
|
|
</div>
|
|
<div class="field">
|
|
<label class="label" for="password">Password</label>
|
|
<div class="control has-icons-left"><input class="input" id="password" name="password" type="password" autocomplete="current-password" required><span class="icon is-left"><i class="ti ti-lock"></i></span></div>
|
|
</div>
|
|
<div class="field mt-5"><button type="submit" class="button is-primary is-fullwidth">Sign in</button></div>
|
|
</form>
|
|
<p class="sp-foot">Copyright © 2026 Mikhail Yenuchenko · <a href="#">License (AGPL-3.0)</a> · <a href="#">Source</a> · No warranty</p>
|
|
</div>
|
|
</div>
|