v1.2.0
What's New
-
Access log analytics - the Logs tab now shows a stats panel above the log list with status code breakdown (2xx/3xx/4xx/5xx with a stacked proportion bar), response time distribution (avg, max, fast/medium/slow buckets), HTTP method breakdown, top IPs, top paths, and top services. Updated live whenever you change the line count or search filter.
-
Route health pinging - status dots on route cards now show real latency measured server-side instead of a silent no-cors browser ping. Hovering the dot shows e.g. "Online · 42ms (200)". A new Ping All button (heartbeat icon) in the Routes filter bar pings all HTTP routes sequentially and updates their status dots live. Results are saved to the notification panel.
-
Middleware wizard - every template now has a structured wizard form instead of raw YAML. Click YAML to fall back to the editor at any time. Saving in wizard mode generates the YAML automatically. Wizard forms:
- Basic Auth - users list with inline hash generator (TM generates
$apr1$hashes server-side - no external tools needed) and optional realm - Digest Auth - users list and optional realm
- Forward Auth - auth service URL, trust forward header toggle, and auth response headers list. Authentik and Authelia presets pre-fill the correct URL and headers automatically
- Rate Limit - average (req/s), burst, and period fields
- IP Allow List - allowed CIDRs list. The Private Ranges preset pre-fills RFC-1918 ranges
- Secure Headers - checkbox grid for SSL redirect, HSTS (with max age, subdomains, preload), X-Content-Type-Options, X-XSS-Protection, X-Frame-Options, and referrer policy
- CORS Headers - method checkboxes, allowed origins, allowed headers, max age, and vary header toggle
- Redirect to HTTPS - scheme dropdown and permanent redirect toggle
- Redirect Regex - regex, replacement, and permanent redirect toggle
- Strip Prefix - prefixes list (one per line)
- Add Prefix - prefix input
- Replace Path - path input
- Compress - min response body bytes
- Retry - attempts and initial interval
- Circuit Breaker - expression input
- Buffering - max request/response body bytes and optional retry expression
- Middleware Chain - middlewares list (one per line)
- In-Flight Limit - max concurrent requests
- Basic Auth - users list with inline hash generator (TM generates
-
Bulk route actions - click the selection icon in the Routes filter bar to enter bulk mode. Checkboxes appear on every route card. A sticky action bar lets you enable, disable, or delete all selected routes at once. Works in both grid and list view.
-
Entrypoint middleware display (#46) - when
STATIC_CONFIG_PATHis set, middlewares defined inentryPoints[name].http.middlewaresin the static config now appear as grey ep chips on route cards alongside the regular middleware chips. Hovering shows "Applied via entrypoint". -
Notification webhooks - a new Notifications panel in Settings lets you send every TM notification to a webhook. Select the type (Discord, Slack, ntfy.sh / self-hosted ntfy, or Generic JSON) and paste the URL. ntfy and generic endpoints support optional username and password for basic auth. A Test button sends a test payload immediately. See the webhook docs for payload formats and setup details.
Fixes
- OIDC save wiping password and tabs - saving OIDC settings no longer clears the password hash or resets visible tabs to all-off
- Basic Auth hash generator - fixed incorrect APR1-MD5 implementation that produced hashes Traefik rejected for passwords longer than one character
- Route map stale data - saving or deleting a route or middleware now correctly invalidates the route map cache
- Settings modal instant open - the settings modal now opens immediately instead of waiting for the API response before showing
- TM self-ping - TM's own route no longer shows as unreachable; the ping endpoint detects when it is pinging itself and returns online immediately
- Proxy header misconfiguration - removed
x_prefixfrom ProxyFix which caused URL routing to break when Traefik sentX-Forwarded-Prefix - Entrypoint middleware display fix - fixed a silent yaml parsing error that prevented ep chips from showing even with
STATIC_CONFIG_PATHconfigured - Installer cert resolver name - the traefik-stack installer now names the cert resolver in
traefik.ymlusing the provider name you choose (e.g.cloudflare) instead of hardcodingletsencrypt(#48) - Performance - reduced Traefik API calls from up to 12 per route load to 0 for file-based setups; the API is only queried when the Route Map tab needs external routes