Admin panel guide
A tour of the server-side admin panel — the web area at /admin where the organisation owner runs the whole operation: personnel accounts, Dienste (events), the materials catalog, printers, and the tablet fleet. This page is for the organisation owner/admin, not for operators on the tablet.
|
The admin panel is server-rendered (Askama HTML templates) and served by the Axum server. It is a completely separate surface from the tablet app — there is no PIN here. You reach it in a normal web browser at |
Signing in
Open /admin/login in a browser and sign in with your email address and password. A successful login sets a signed session cookie; every /admin/* page then checks that cookie before rendering. Sign out again at /admin/logout.
| Route | Purpose |
|---|---|
|
Email + password login form. |
|
End the admin session. |
|
The admin panel uses email + password + a signed cookie — it is not a PIN login. The PINs (Shift-PIN, Firmen-PIN, maintenance) belong to the tablet app. See PINs. |
Nutzer — personnel accounts
Route: /admin/users
Nutzer are the personnel accounts of your organisation — the people who can be rostered onto a Dienst. From this page you:
-
Create a user account.
-
Rename an existing user.
-
Deactivate a user (they can no longer be used for new assignments).
These accounts are the pool you draw from when you assign a roster to a Dienst (see below). A person who has no account can still be added to a Dienst as an external person.
Dienste (events)
Route: /admin/events — list and create; each row opens a detail page at /admin/events/{event_id}.
The Dienste list shows every event and lets you create a new one. Creating a Dienst here is the preferred path: it syncs down to the enrolled tablets automatically. Open a Dienst to reach its detail page, which is the control centre for that shift.
Shift-PIN
On the event detail page you set and rotate the Shift-PIN — the 6-digit code that tablets enter to join this Dienst. Rotating it revokes the old code. The mechanics and the difference from the other PINs are covered in PINs.
Roster — assign personnel
Assign who is on this Dienst. You can add a person either:
-
from an existing Nutzer account, or
-
as an external person (someone without an account — entered by name).
You can also remove an assigned person. The roster you set here is the planned roster.
Gemeldetes Personal (Einsatz)
The detail page also shows Gemeldetes Personal (Einsatz) — the roster actually reported back from the tablets. This is the crew that established readiness on the ground, including their presence and any ad-hoc additions made on the tablet during the shift. Compare it against the planned roster to see who was really present.
|
The planned roster is what you assigned in the panel; Gemeldetes Personal is what the tablets reported. They can differ — that is expected, and the reported list is the record of who was actually on duty. |
Protocols and encrypted export
The event detail page lists this Dienst’s protocols and lets you download an encrypted export of them.
Export route: /admin/events/{event_id}/export-encrypted
The export is encrypted — the protocol contents leave the server only in encrypted form. See Dienst lifecycle for how and when a Dienst reaches the point where its protocols are ready to export.
Material / Kleinstbehandlungen report
Each Dienst also has an aggregated Material / Kleinstbehandlungen report — a tally of consumed material and minor treatments across the whole Dienst.
Reports route: /admin/material-reports
The catalog that these reports draw from is managed separately, below and in Material catalog.
Materials catalog
Route: /admin/materials
The materials catalog is what drives the tablet streamdeck. From here you:
-
Create, update, toggle, and delete catalog items, each with capability flags.
-
Manage groups that organise the items.
Changes made here propagate to the tablets and change what operators can tap. The full behaviour of capability flags and groups is documented in Material catalog.
Drucker (printers)
Route: /admin/printers
Drucker are the Bluetooth thermal printers pushed to the whole tablet fleet. From this page you:
-
Register a printer by its Bluetooth MAC address.
-
Delete a printer.
A registered printer is distributed to every tablet, so operators do not pair printers by hand. Pairing, paper handling, and the print pipeline are covered in Printing.
Geräte (devices)
Route: /admin/devices (enrollment token generated via /admin/enroll).
Geräte is the tablet fleet view. From here you:
-
Generate a device enrollment token — the token a new tablet uses to enrol.
-
List enrolled devices with their name, enrolled_at, last_seen, app_version, and device_owner status.
-
Enqueue remote device commands for a device to pick up on its next check-in.
|
Enrollment is manual, token-based, and GPG-verified — there is no zero-touch provisioning. The full onboarding procedure is in Onboarding. |
Server configuration (for server operators)
The admin panel runs on the Axum server against PostgreSQL. Whoever operates the server must provide these environment variables:
| Variable | Requirement |
|---|---|
|
PostgreSQL connection string. |
|
At least 32 characters. |
|
64 hex characters (signs the admin session cookie). |
|
64 hex characters. |
|
This is setup context for whoever runs the server — day-to-day admins do not touch these. They must be set before the server starts. |
Related pages
-
PINs — Shift-PIN, Firmen-PIN, and the maintenance path.
-
Onboarding — enrolling a tablet with a token.
-
Material catalog — catalog items, capability flags, and groups.
-
Printing — registering and using thermal printers.
-
Dienst lifecycle — the full arc of a Dienst from create to export.