release: 0.3.0: PTR fix via public resolvers; monitoring URLs and nav icons
panel: the PTR (reverse DNS) check no longer reports a correctly published Fixed: - panel: the PTR (reverse DNS) check no longer reports a correctly published Changed: - panel: the three monitoring pages now live at URLs that match their nav - panel: each entry in the navigation bar now carries an icon beside its label, - panel: the navigation bar is laid out as two rows on purpose — the signed-in Full detail: CHANGELOG.md (0.3.0).
This commit is contained in:
+12
-7
@@ -63,6 +63,11 @@ type Config struct {
|
||||
// session expires (env PANEL_SESSION_IDLE_DAYS, plan B.1). Non-positive
|
||||
// falls back to the 7-day default.
|
||||
SessionIdleDays int
|
||||
// DNSResolvers are the recursive resolvers the deliverability checks query
|
||||
// (env SELFPOST_DNS_RESOLVERS). Empty uses dnscheck.DefaultResolvers. The
|
||||
// checks must not go through the system resolver — see dnscheck's
|
||||
// externalResolver — so this is how a closed network points them at its own.
|
||||
DNSResolvers []string
|
||||
}
|
||||
|
||||
// Server is the panel HTTP application.
|
||||
@@ -105,7 +110,7 @@ func New(st *store.Store, domains *domain.Service, apps *app.Service, cfg Config
|
||||
// Published-DNS checks for the status page and the domain pages. The
|
||||
// checker caches its own results, so page views do not each pay for a
|
||||
// round of lookups (phase 13).
|
||||
dns: dnscheck.New(),
|
||||
dns: dnscheck.New(cfg.DNSResolvers),
|
||||
// Setup: a handful of attempts per minute per IP is plenty for a
|
||||
// legitimate admin and blunts automated probing (spec 7.6.1).
|
||||
setupLimiter: newRateLimiter(10, time.Minute),
|
||||
@@ -180,12 +185,12 @@ func (s *Server) Handler() http.Handler {
|
||||
|
||||
// Monitoring screens (spec 7.2.11-13): each page and its HTMX polling
|
||||
// fragment (spec 7.1 — the /rows and /body endpoints return HTML, not JSON).
|
||||
authed.HandleFunc("GET /sendlog", s.handleSendLog)
|
||||
authed.HandleFunc("GET /sendlog/rows", s.handleSendLogRows)
|
||||
authed.HandleFunc("GET /queue", s.handleQueue)
|
||||
authed.HandleFunc("GET /queue/body", s.handleQueueBody)
|
||||
authed.HandleFunc("GET /logtail", s.handleLogTail)
|
||||
authed.HandleFunc("GET /logtail/body", s.handleLogTailBody)
|
||||
authed.HandleFunc("GET /deliveries", s.handleDeliveries)
|
||||
authed.HandleFunc("GET /deliveries/rows", s.handleDeliveriesRows)
|
||||
authed.HandleFunc("GET /mail-queue", s.handleMailQueue)
|
||||
authed.HandleFunc("GET /mail-queue/body", s.handleMailQueueBody)
|
||||
authed.HandleFunc("GET /system-log", s.handleSystemLog)
|
||||
authed.HandleFunc("GET /system-log/body", s.handleSystemLogBody)
|
||||
|
||||
mux.Handle("/", s.requireAuth(authed))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user