Lumic Control Center
initial authenticated UI implemented

Operator UI

Operate applications and managed services through Lumic's local Rust UI.

lumicd serves the initial operator UI from the same Rust application/platform services used by CLI and MCP. It has no frontend runtime and no separate business-logic stack.

Sign in

Generate or rotate the admin token on the node:

sudo lumic ui token rotate

The token is shown once. Lumic persists only its SHA-256 digest in private state. Open http://127.0.0.1:8080 through an SSH tunnel:

ssh -L 8080:127.0.0.1:8080 root@server

Sessions are in-memory, HttpOnly, SameSite=Strict and expire after eight hours. The session set is bounded, and daemon restart or admin-token rotation invalidates existing sessions. Mutating POSTs require a session-bound CSRF token. Responses carry a restrictive content-security policy, no-sniff, no-referrer and no-store headers.

lumicd refuses a non-loopback LUMIC_UI_BIND. For remote/shared access, keep Lumic on loopback and place an authenticated TLS reverse proxy in front of it; direct unauthenticated exposure is unsupported.

Current views and actions

The black/white UI uses a responsive, grouped sidenav modeled on Rust/UI’s Sidenav with Grouped Sections block. Monitor, workload and system capabilities remain visually separate; the active destination is identified in both markup and presentation. On narrow screens the same navigation is available from a keyboard-operable disclosure panel. The shell is still rendered by Rust/Axum, so this improvement does not add a browser application runtime or duplicate Lumic’s application behavior.

The UI provides:

  • the canonical conversational attention card, including severity, evidence and recommended actions;
  • live server identity and resource overview;
  • application list/detail and typed service references;
  • evidence-backed application fingerprint and dependency graph panels;
  • deployment history, phases and commit detail;
  • managed-service list/detail, provider health and local data records;
  • events and bounded journal logs;
  • expert systemd unit, configuration/data paths, version, bind address and port;
  • recipe catalog and installed-version state;
  • host accounts, listeners, mounts, timers and pending updates;
  • infrastructure identity, trusted/revoked peers, Git repositories/mirrors, portable environments, endpoints, memberships and coordinated deployment state;
  • confirmed restart, deploy, rollback and security-update actions.

Safe actions call the existing shared services and therefore retain their validation, health gates, rollback behavior, events and audits. Installation registers lumicd.service; inspect it with systemctl status lumicd.service and logs with journalctl -u lumicd.service.

The attention card uses the same AttentionService as lumic how-are-you and MCP. A selected personality changes its phrasing, but the card always includes the complete factual summary and never suppresses a warning.

The authenticated /api/infrastructure endpoint exposes the same read model as JSON. Infrastructure and application-intelligence mutations remain in CLI/MCP for now; the UI shows the deterministic fingerprint evidence and dependency graph without adding a second orchestration path. The initial UI intentionally omits service installation/configuration forms, fine-grained identities, persistent sessions, login throttling and fleet-wide mutation forms. Those are follow-up work rather than a reason to introduce a large frontend framework.