Every page was read against the code on dev. What changed: - Pages that described 4.2 behaviour: satellite view on the vector maps, the mobile journal timeline, Collab with its fifth tab, the Review badge, clustered pins on the share page, the Leaflet preset list, the strict guard on fe80::/10, the invite link tools and their scopes, the Public API scope rules, the permission count in the plugin SDK. - Features of this release that no page mentioned: videos in a journal entry, receipts on an expense, the Google transit backend, routing counters, the rating on a place, the navigation menu, car stops, the manual school holiday catalogue and its MCP tools, the Dawarich panel in the Atlas, the release notes modal, plugin frames going fullscreen, the corridor call into the search provider hook. - Statements that sent an admin the wrong way: DEFAULT_LANGUAGE is not in the Helm ConfigMap, env.PORT cannot be changed on the chart alone, the rotation script does not cover the document sync credentials, event handlers cannot broadcast, there is no per user MFA reset in the admin panel, the demo user can edit, an unparsable APP_URL stops the server. - Updating gets a section for 4.3.0: the TREK Places API as the new default, the new variables, the Overpass timeout, SSO sessions on an OIDC only instance, the migration that puts booked nights on the drive.
6.2 KiB
Admin Panel Overview
The Admin Panel is the central control surface for TREK instance operators. It is only accessible to users with the admin role.
Accessing the Admin Panel
Open the user menu in the top navigation bar (your avatar), then select Admin. If the entry is not there, your account does not have admin privileges.
Tabs
The Admin Panel is divided into tabs. Most tabs are always visible; a few appear only under specific conditions.
| Tab | Purpose | Conditional? |
|---|---|---|
| Users | Manage users, invite links, and permissions | No |
| Personalization | Packing templates, place categories and the manually maintained school holiday catalog (see Vacay) | No |
| User Defaults | Default settings applied to new users | No |
| Addons | Enable or disable optional features instance-wide | No |
| Plugins | Install, update, and manage plugins; rescan the plugins folder; view each plugin's error log. See Admin-Plugins | No |
| Storage | Storage backends, category assignment, replication, health | No |
| Settings | Authentication methods, MFA, allowed file types, API keys, OIDC/SSO configuration, and JWT secret rotation | No |
| Notifications | SMTP, webhook, ntfy, and push notification channel configuration; trip reminder toggle; admin notification preferences | No |
| Backup | Manual and scheduled full-instance backups: database, uploads, plugin data and plugin code. See Backups | No |
| Audit | Chronological activity log | No |
| MCP Access | OAuth sessions and static API tokens | Only when the MCP addon is enabled |
| GitHub | Release timeline and support links | No |
| Dev: Notifications | Test notification dispatch | Only in development mode (NODE_ENV=development) |
Routing services
On desktop and mobile, User Defaults includes optional Own routing engine and Own Valhalla instance fields in the map section. Changes save when you leave the field; reset restores the built-in default.
With both fields empty, TREK uses public OSRM servers for routing and the public FOSSGIS Valhalla for avoiding toll roads, motorways and ferries. Configuring only a custom routing instance disables the public Valhalla fallback. After entering a custom server URL, restart TREK and reload the page. See Road-Trip.
AI / MCP: These fields configure the routing services the planner and the road trip MCP tools use, and do not change stored trip data.
Routing usage counters
Every route is calculated in the browser against the routing hosts, so the server never sees a routing request itself. To still know how much routing an instance does, the browser reports its tally in batches and the server keeps daily counters: how many requests, of what kind (route, segments, legs, alternatives), for which profile (driving, walking, cycling), how many waypoints, roughly how many kilometres, how many came back without a route, and whether a self-hosted engine answered. Counters only: no query, no coordinate, no route, no user and no trip is stored, and nothing leaves the instance. A day's row is kept for 400 days.
Counting is on by default and has no switch in the admin panel. To turn it off, set the route_usage_enabled key to false in the app_settings table; reports are then acknowledged but nothing is written. There is no admin screen for the totals either: an admin reads them at GET /api/route-usage/summary and wipes them with DELETE /api/route-usage.
Linking to a tab directly
Every panel is reachable by URL, so a bookmark, an onboarding mail or a support reply can point at the one tab it is about instead of at the top of a page with thirteen of them:
/admin?tab=audit
Unlike the trip planner's tab parameter, this one stays in the address bar and is rewritten as you switch tabs, so the URL always says which panel you are looking at. It replaces the current history entry instead of adding one, so the back button still leaves the admin page rather than walking back through the tabs you visited.
| Tab | Id |
|---|---|
| Users | users (the default, carries no ?tab=) |
| Personalization | config |
| User Defaults | defaults |
| Addons | addons |
| Plugins | plugins |
| Storage | storage |
| Settings | settings |
| Notifications | notifications |
| Backup | backup |
| Audit | audit |
| MCP Access | mcp-tokens |
| GitHub | github |
| Dev: Notifications | dev-notifications |
An id with no panel behind it opens Users. The two conditional tabs behave differently: mcp-tokens and dev-notifications open their panel even when the MCP addon is off or the instance is not in development mode, with nothing highlighted in the sidebar, because the entry is missing from it.
Plugin activity and audit
Plugins that are granted data-access capabilities have every host-mediated action they take recorded in a tamper-evident, hash-chained log. This log is separate from the instance Audit tab described above.
- Admins can review the per-plugin capability audit: every core-data read, broadcast, notification, and AI call a plugin made, with the acting user, the resource touched, and the outcome. It is served by
GET /api/admin/plugins/<id>/audit; the admin plugin view itself currently surfaces only each plugin's error log (View error log). - Every user (not just admins) can see the plugin actions taken in their own name under Settings → Plugins. This is what keeps a plugin's broad read grants accountable to the person whose data was read.
See Audit-Log for details on the hash chain and how the two logs differ.

