Administration

Administration covers users, model access, account flows, chat administration tools, and security boundaries for the local LLM Controller instance.

Admin actions affect the local LLM Controller instance. Destructive chat and user actions should be used carefully.

User Management

Create users

Admins can create standard user accounts from the Admin Users page. The app generates a temporary password, shows it to the admin, and prompts the new user to change it after login.

Delete users

Admins can delete non-admin users and choose whether to retain or purge that user's chats. Admins cannot delete their own account from that page.

Password policy

The Admin Users page offers Basic, Moderate, Strong, and Custom policies. Custom rules can require character classes and a minimum length. Policy length is bounded to 6–72 characters; the separate bcrypt limit is 72 UTF-8 bytes, so non-ASCII characters can reach that boundary sooner.

Model Access

Green registry state means enabled, yellow means present but disabled, and red means missing. Runtime readiness is separate. MMPROJ identifies a projector asset; Speech-to-Text designates a compatible speech checkpoint and excludes it from chat, title, and benchmark choices.

For images, save the matching projector filename for the language model in the registry, then stop/reload the model. The projector must exist within Models DIR. An Images suitability label alone does not enable vision.

Model scan

Configure Models DIR, finish copying files, then use Rescan Models. Discovery includes local GGUF models and .nemo speech checkpoints. It does not download models or guarantee compatibility.

Split GGUF files

Split files using a pattern such as -00001-of-00002.gguf are grouped as one model when the expected shards are present. The first shard path is used for launch.

Registry controls

Admins can enable, disable, favorite, and set benchmark eligibility. Metadata includes optional Friendly Names, notes, and usage profiles. Show friendly names in Model picker controls picker labels; names do not change the model file or its capabilities.

Launch control

Load/stop the main model and save launch defaults; GPU layers of 0 selects CPU-only loading. Selection and running state are distinct. Optional title selection follows the managed title lifecycle rather than independent user Start/Stop controls.

Auth Email & Account Flows

Account Settings shows the signed-in email and separates Instructions, Email, and Password tabs. Personal System Instructions affect subsequent browser chats; see instructions and Projects.

Flow Behavior
Forgot password The public response stays generic. A reset link is sent only when SMTP settings and the auth public base URL are configured.
Email confirmation Confirmation links use the configured auth public base URL. Tokens are stored hashed, and consumed or expired tokens are rejected.
Resend confirmation The public resend response stays generic and uses the same configured email-link requirements.
Email change Signed-in users request email changes from account settings using their current password. The current email remains active until the new address is confirmed through the emailed link.
Request throttling Forgot-password, resend-confirmation, and email-change requests use lightweight throttling by IP and normalized email where applicable.

Admin Chat Tools

User activity list

Admin tools can list users with recorded chat activity and show usage summaries such as token totals.

Export chats

Admins can export a selected user's chats or all chats as JSON, CSV, or Markdown.

Delete chats

Admins can delete a selected user's chats or delete all chat history. These are destructive actions.

Security Boundaries

Admin accessAdmin pages and admin actions check for an admin session.
Session validationLogged-in requests validate account state and session version against the database.
Email linksAuth email links are built from the configured public base URL.
Destructive postsCSRF protection applies to the Flask app, including destructive chat deletion posts.

API and Speech Settings

Admin Settings → API Access controls the optional API and CE-issued key. See enablement, key rotation/revocation, and limits.

The speech settings card is below API Access. It needs the dedicated speech environment’s Python executable and a separate local port. Enable and designate a compatible speech checkpoint, then explicitly start it through Model → Speech-to-Text. See Local Voice setup.

Backups and Restoration

Before an upgrade or restoration, stop CE and preserve a coordinated backup of MySQL, chats.sqlite, bootstrap_config.json, and the matching flask_secret.key, plus local files and runtime/settings information needed to reproduce the installation. Database backups, restoration, and migrations are manual operator actions.

Keep backups outside public web folders. The matching Flask secret also supplies key material for stored SMTP credential encryption; if it is unavailable after restoration, enter SMTP credentials again.

Versioned JSON exports preserve chats, Projects, Project Instructions, membership, and empty Projects within the export scope. Legacy JSON lacks Project metadata; CSV is chat interchange and Markdown is a read-only archive. These exports do not replace a full installation backup.

Administrators can import compatible SQLite backups with Project metadata after source header, integrity, schema, and ownership checks. Maximum Chat Import Size and host resource limits still apply. Review format and restore behaviour and the release backup guidance before replacing data.