Stage 1, step 3 (plan § Routes). BREAKING: every panel URL changes and the
old paths are removed without redirects.
Routes (web.go)
- /status -> /overview; /domains -> /outbound/domains with the domain's
settings actions under .../settings/ (reports, ratelimit, export);
/deliveries -> /outbound/log; /mail-queue -> /outbound/queue; /dmarc ->
/outbound/dmarc; /inbound -> /inbound/domains; /system-log ->
/server/log; /backup -> /server/backup (import under it); /users ->
/server/users; recheck and reload under /server/health/.
- One fragment name: <page>/fragment everywhere.
- Everything under /server/ is registered through server(), which wraps
the handler in globalOnly: the subtree is guarded once, where a new
route cannot forget it. Handlers keep their own requireGlobal.
- GET / leads to /overview, /outbound/domains or /inbound/domains.
- The /account -> /settings redirect is gone with /settings.
Account and Server > Settings
- handlers_account.go: GET /account and three POSTs - profile (username,
e-mail; no password asked, as designed), password (current password,
rate-limited like a sign-in, signs out other sessions), dmarc (the
user's default: hosted / account / custom / none, each validated).
This replaces step 1's bridge through the old Settings form.
- handlers_settings.go is the instance's page only: log retention and the
read-only rate limits, global role.
- One legacy template serves both pages by a flag until stage 2 gives each
its own: a new legacy page cannot be added to the ratchet.
Still to come inside stage 1, and why @routes stays on the ratchet:
- step 4: the application routes (one POST, under the domain);
- step 5: GET /server/health.
With @routes removed by hand TestRoutesFollowNavigation reports exactly
those and nothing else - no template links to a path the router lacks.
Old templates, tests and the e2e client are retargeted. The e2e module was
edited but not run here (no Docker, and its dependency could not be
downloaded on this machine).
Tests: Account (page, profile, password, DMARC default in every mode, a
domain administrator's own row only), Server settings (saved without a
password, range, global only), the /server/ subtree answered 404 by the
router for a domain administrator with All on both lists and for no
principal.
go test ./... green except the two Windows-only failures in internal/domain
and internal/logtail.
Roadmap 13/27.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
63 lines
2.3 KiB
HTML
63 lines
2.3 KiB
HTML
{{define "content"}}
|
|
<h1>Help</h1>
|
|
|
|
<p class="muted">Short operator notes inside the panel — not a second copy of
|
|
the full guide. The cards keep their readings and controls; this page (and the
|
|
drawer opened from each card's «?») holds the explanations that do not belong
|
|
on the card itself.</p>
|
|
|
|
<div class="card">
|
|
<h2>On this panel</h2>
|
|
{{if .IsGlobal}}
|
|
<ul>
|
|
<li><label for="help-status">Status checks</label> — Machine, TLS, PTR,
|
|
queue</li>
|
|
<li><a href="/outbound/queue">Mail queue retries</a> — time-based, no attempt
|
|
budget (on the queue page)</li>
|
|
{{if .InboundEnabled}}
|
|
<li><a href="/inbound/domains">Inbound</a> — not mailboxes; listed recipients or any
|
|
address at the domain</li>
|
|
{{end}}
|
|
</ul>
|
|
{{end}}
|
|
<p class="muted">Domain page</p>
|
|
<ul>
|
|
<li><label for="help-dns">DNS status</label></li>
|
|
<li><label for="help-records">DKIM and SPF records</label></li>
|
|
<li><label for="help-dmarc">DMARC record</label></li>
|
|
<li><label for="help-connection">Connection settings</label></li>
|
|
<li><label for="help-apps">Applications</label></li>
|
|
<li><label for="help-domain-settings">Domain settings</label></li>
|
|
<li><label for="help-export">Export domain</label></li>
|
|
</ul>
|
|
<p class="muted">Topics marked as labels open the same text in the help
|
|
drawer. For installation, backup, and environment variables see the
|
|
<a href="{{.SourceURL}}/blob/main/docs/guide.md">operator
|
|
guide</a> in the repository.</p>
|
|
</div>
|
|
|
|
{{if .IsGlobal}}
|
|
<div class="card">
|
|
<h2>Machine</h2>
|
|
<p>CPU and memory are the container's own readings, not the host's spare
|
|
capacity. Network is a short window, not a daily total. High CPU with an empty
|
|
queue usually means something else on the box — not SelfPost being slow to
|
|
send.</p>
|
|
</div>
|
|
|
|
<div class="card">
|
|
<h2>TLS certificate</h2>
|
|
<p>Port 465 presents the certificate the reverse proxy (or the image)
|
|
mounted. The panel does not issue certificates. A warn here is expires soon;
|
|
an error is missing or unreadable, and clients will refuse submission.</p>
|
|
</div>
|
|
|
|
<div class="card">
|
|
<h2>Hostname / reverse DNS</h2>
|
|
<p>Forward-confirmed reverse DNS: the A/AAAA for
|
|
<code>SELFPOST_HOSTNAME</code> must reverse to that same name. PTR is set at
|
|
the hosting provider, not in this panel.</p>
|
|
</div>
|
|
{{end}}
|
|
{{end}}
|