LexiSuite Docs

Panel Fleet

Use Fleet to enroll other boxes, allow and audit signed remote actions, hold incoming work during restarts, synchronize verified files, inspect link health, and review guarded campaign progress. Fleet controls are opt-in: a connected peer is not automatically authorized to accept actions.

Where to find each screen

Screen Address What is displayed
Fleet membership, actions and fleet operations /rust/fleet Fleet identity, join codes, member reports, signed action queue, policy, drain and restart holds, key rotation and revocation
Fleet sync /rust/fleet/sync Peer readiness, active transfer progress, transfer history, transfer controls for administrators
Fleet link reliability /rust/fleet/links Local clock and interface state, joined members, drift, active peer probe and plan-only overlay
Fleet campaign /rust/fleet/campaign Guarded controller state, independently verified signed receipt progress, explicit dispatch confirmation
Member campaign history /rust/fleet/campaign/history Paginated unsigned local diagnostics and separate proof status
Live owner qualification /rust/fleet/owner-state Privileged local updater qualification, when available to administrators
Fleet guided tasks /rust/fleet/guides The Join a box and sync a model and Run and follow a fleet campaign guides

Native pages place help markers beside registered controls. All operations use the same fleet owner and permissions; there is no separate state behind a second tab interface. The membership view updates its non-sensitive role and report summary periodically; refresh it for a complete new snapshot. An unauthenticated visitor or signed-in viewer sees no privileged fleet form.

Join a second box and transfer a model

  1. On the intended primary, open Fleet membership at /rust/fleet. Choose This box's role = Primary, then select Save fleet settings with the confirmation checked. Verify Fleet identity and reporting displays Primary.
  2. Choose Generate join code under Enroll another box. The primary creates a short-lived, single-use enrollment code; share it with the operator of the second box by an appropriately trusted channel.
  3. On the second box, choose Member under This box's role, enter Primary URL (members only) and Single-use join code (members only), then select Save fleet settings after confirming. The settings owner performs enrollment with the primary; no direct browser transport request is needed. It must report back to the primary before it can be trusted for remote actions. Do not reuse a spent code.
  4. On the member, use Allow signed remote actions to opt in to only the signed actions and instance IDs intended for that member. Check the primary's member list and Report now results; failed authentication, missing reports and blocked clocks should not be ignored.
  5. Open Fleet sync on the primary. Under the summary and peer list, check that the destination is marked sync-ready. Use Start a verified transfer: choose source and destination, the item type, a path relative to the selected verified library, and HTTPS. Choose the port, bandwidth limit and chunk size within the offered limits. Check the explicit authorization box, then select Start fleet sync.
  6. Watch Active fleet sync transfers and Recent fleet sync history. A queued transfer is not a complete or verified file. If a transfer is interrupted, use Resume an interrupted transfer with the actual job ID and confirmation. To stop a queued or running transfer, use Cancel a queued or running transfer. Cancellation is checked between chunks; it cannot undo a completed publication.
  7. Alternatively open Fleet guided tasks, choose Join a box and sync a model, and run each applicable step. Supply source box, destination box, file path and authorization explicitly. Manual steps open the page where the second-box operator acts; the guide cannot quietly join the remote box for them. The reversible transfer step provides cancellation when given the generated job ID and confirmation.

Remote actions are signed and subject to the receiving member's allowlist. Queue signed action queues only an enrolled, online, allowed action; Cancel pending action may stop pending work, but not undo an action already applied. Change gateway routing prevents new work during a planned restart when set to Drain. Rotate action key requires new key delivery and fingerprint confirmation; Revoke membership rejects future reports until a member joins again.

  1. Open /rust/fleet/links to inspect Local clock and network, Members, and Configuration drift. A missing, stale or untrusted clock is not evidence of safe signed action delivery.
  2. For a joined member, select Probe a joined member and provide its authenticated private/link-local address, port, attempts, and bytes per sample. Confirm the probe before submitting; it generates active traffic. Probes are refused for addresses not reported by that enrolled member.
  3. For a design-only overlay, use Plan overlay. Enter at least two node lines as name, overlay IP, endpoint (optional), listen port; each node needs its own unique, permitted overlay address and valid port. Supply an MTU from 576 to 9000. Generate plan only returns a plan including sensitive generated keys and example commands: it does not create interfaces, write keys, alter routes, or run commands. Store and distribute keys securely outside the Panel.

Run and verify a campaign

  1. In /rust/fleet/campaign, inspect Signed receipt progress and the displayed owner-control state. A campaign requires independently provisioned protected policy, authorized enrolled members, and live safety gates; without them the controller refuses to dispatch.
  2. In Member campaign history, supply an enrolled member ID, offset (zero or greater) and row count (1–100), then choose Inspect member history. Rows labeled unsigned_local_diagnostic describe local transport events, not signed proof of installation. If signed receipts are provisioned, the page shows their independent verification state.
  3. Open Live owner qualification and choose Inspect live qualification as an administrator. This reads local privileged updater state, not network acknowledgments. Missing or unavailable evidence does not qualify a release.
  4. Return to Fleet campaign. Tick the explicit authorization checkbox and select Run controller tick once. The existing owner rechecks signed policy, receipt history, clock and admission conditions. A successful response can contain queued: this describes pending work, not completed installation. A dispatched command cannot be automatically withdrawn by the guide.
  5. Refresh Signed receipt progress and each member's history to follow independently authenticated receipts. Repeat a tick only after reviewing the resulting state. The Run and follow a fleet campaign guide walks through history, explicit confirmation, guarded dispatch and receipt checking.

Control and help reference

The help text below is the text displayed by the fleet feature markers. The table includes control-level help for each form field, along with the overall action help.

Control (feature ID) Help tooltip Native page Owner route(s)
Fleet role and membership (fleet.membership) Choose a standalone, primary or member role; joining a member uses a one-time code. /rust/fleet GET /api/fleet, POST /api/fleet/settings, POST /api/fleet/join
Add a box (fleet.join-code) Create a short-lived, single-use enrollment code on the primary for a new member. /rust/fleet POST /api/fleet/join-code
Report now (fleet.report) Request an immediate member report; the result reports delivery or failure. /rust/fleet POST /api/fleet/send-now
Remote action policy (fleet.policy) Opt in to named remote actions and instance IDs; all remote actions are signed and audited. /rust/fleet POST /api/fleet/policy
Signed remote action (fleet.signed-action) Queue an allowed action on an enrolled member, subject to that member's policy and safety checks. /rust/fleet POST /api/fleet/action
Cancel queued action (fleet.cancel-action) Cancel a remote action before it has completed; an action already running may not be reversible. /rust/fleet POST /api/fleet/action/cancel
Drain and restart hold (fleet.drain) Hold new work while a member drains active requests before a planned restart. /rust/fleet POST /api/fleet/drain, POST /api/fleet/event
Rotate action key (fleet.rekey) Rotate the signed-action key; members must confirm the new fingerprint on their next report. /rust/fleet POST /api/fleet/rekey
Revoke membership (fleet.revoke) Remove a member from the primary's enrolled fleet; previously queued work may require review. /rust/fleet POST /api/fleet/revoke
Sync status and history (fleet.sync-status) Inspect joined peer readiness, running transfers, verified progress and past errors. /rust/fleet/sync GET /api/fleet/sync/status
Start verified transfer (fleet.sync-start) Start a signed, resumable model or build transfer; the destination verifies full-file hashes. /rust/fleet/sync POST /api/fleet/sync/start
Resume transfer (fleet.sync-resume) Resume a failed transfer after rechecking the source manifest and destination space. /rust/fleet/sync POST /api/fleet/sync/resume
Cancel transfer (fleet.sync-cancel) Request cancellation between transfer chunks; an in-flight publication may still finish. /rust/fleet/sync POST /api/fleet/sync/cancel
Link reliability (fleet.links) Review member clock trust, loss, throughput, path MTU and configuration drift. /rust/fleet/links GET /api/fleet/links
Probe joined member (fleet.link-probe) Measure a joined member's authenticated link address; active probes generate network traffic. /rust/fleet/links POST /api/fleet/links/probe
Plan WireGuard overlay (fleet.wireguard-plan) Generate an overlay plan only; this does not change interfaces, routes or keys on disk. /rust/fleet/links POST /api/fleet/links/wireguard-plan
Campaign progress (fleet.campaign-progress) Read independently signed receipt progress; transport acknowledgments are not installation proof. /rust/fleet/campaign GET /api/fleet/campaign/progress
Campaign member history (fleet.campaign-history) Inspect a member's paginated diagnostic history and distinguish unsigned rows from signed evidence. /rust/fleet/campaign/history GET /api/fleet/campaign/history
Run campaign controller (fleet.campaign-tick) Recheck signed policy and live gates, then queue only authorized campaign steps; dispatch is not undoable. /rust/fleet/campaign POST /api/fleet/campaign/tick
Live owner qualification (fleet.live-qualification) Check the privileged local updater's live owner state; unavailable evidence does not qualify a release. /rust/fleet/owner-state GET /api/fleet/owner-state/live-qualification
Join and sync guide (fleet.join-guide) Enroll a second member, verify its readiness and transfer a selected model with cancellation guidance. /rust/fleet/guides GET /api/fleet, POST /api/fleet/join-code, GET /api/fleet/sync/status, POST /api/fleet/sync/start, POST /api/fleet/sync/cancel
Campaign guide (fleet.campaign-guide) Inspect signed policy and history, confirm dispatch and follow the controller's verified progress. /rust/fleet/guides GET /api/fleet/campaign/progress, GET /api/fleet/campaign/history, POST /api/fleet/campaign/tick

Native fleet form actions and results

The native Fleet page submits its controls to dedicated paths so every form reaches the fleet owner rather than a legacy page handler. Form targets are:

Form shown in Fleet Native handler Registered owner
Save fleet settings /rust/fleet/manage/settings POST /api/fleet/settings
Generate join code /rust/fleet/manage/join-code POST /api/fleet/join-code
Report now /rust/fleet/manage/send-now POST /api/fleet/send-now
Save remote action policy /rust/fleet/manage/policy POST /api/fleet/policy
Queue signed action /rust/fleet/manage/action POST /api/fleet/action
Cancel pending action /rust/fleet/manage/action/cancel POST /api/fleet/action/cancel
Change gateway routing /rust/fleet/manage/drain POST /api/fleet/drain
Rotate action key /rust/fleet/manage/rekey POST /api/fleet/rekey
Revoke membership /rust/fleet/manage/revoke POST /api/fleet/revoke

Each action displays the actual owner response. Queued means an action was accepted for later delivery, not that it ran; failed does not mean an action succeeded. All state-changing actions except the member's Report now require the explicit confirmation checkbox. A signed command also requires an enrolled online member and its own policy to permit the operation. Use the member action log and independently verified campaign progress to observe completion.

Field-level help

Control (feature ID) Tooltip
Fleet role (fleet.role) Select standalone, primary or member; switching roles changes which fleet operations this box accepts.
Box display name (fleet.box-name) Set a recognizable label for this box in the enrolled fleet.
Primary address (fleet.primary-address) Enter the verified primary address this member will contact for enrollment and reports.
Single-use join code (fleet.enrollment-code) Enter the code issued by the primary; it is consumed when this member joins.
Share running instances (fleet.share) Let the primary gateway route eligible work here when this member is joined.
Permitted actions (fleet.policy-actions) Select only the specific signed operations the primary may request on this member.
Permitted instance IDs (fleet.policy-instances) Restrict remote actions to listed instance IDs, or use * to allow all.
Unencrypted transport exception (fleet.policy-transport) Allow commands over unencrypted transport only when the network path is trusted.
Target member ID (fleet.target-member) Copy a member ID from the enrolled inventory; an unknown member is refused.
Target instance ID (fleet.target-instance) Choose an instance reported by the online enrolled member.
Remote instance settings (fleet.instance-set) Enter only permitted KEY=VALUE settings; applying them may restart the member instance.
Remote worker fields (fleet.rpc) Set a worker address, peer address, port and device only when starting a joined worker.
Probe target (fleet.probe-target) Use the enrolled member ID and an address that member actually reported.
Probe settings (fleet.probe-options) Choose a transport port, attempt count and sample size before generating traffic.
Overlay nodes (fleet.overlay-nodes) Enter at least two unique overlay node lines; no interface is changed.
Overlay packet size (fleet.overlay-mtu) Choose the intended overlay MTU for the generated configuration preview.
Transfer endpoints (fleet.sync-endpoints) Choose distinct joined source and destination boxes for a verified transfer.
Transfer item (fleet.sync-item) Select a model or build path relative to its approved library.
Transfer transport (fleet.sync-transport) Use the required encrypted peer transport to copy verified chunks.
Transfer limits (fleet.sync-limits) Set the peer port, bandwidth limit and chunk size for a signed transfer.
Transfer job ID (fleet.sync-job) Use the ID returned by the transfer owner to resume or cancel that transfer.
History member (fleet.history-target) Select a member enrolled on the primary whose event history you want to inspect.
History page size (fleet.history-pagination) Choose a nonnegative offset and up to 100 events for one history page.
Guide step (fleet.guide-step) Choose the guided operation to run or undo; manual steps need a separate page.
Guide inputs (fleet.guide-values) Supply validated member and transfer identifiers required by the selected guide step.

Direct enrollment (POST /api/fleet/join) and restart event reports (POST /api/fleet/event) are authenticated member-to-primary transport operations. They are not separate browser action forms: membership settings initiate member enrollment and the fleet inventory or action logs show resulting state. These transport endpoints do not bypass one-time codes, authentication or signed-action verification.

Safety and access

Only an authenticated administrator can issue join codes, modify remote-action permissions, probe members, generate link plans, start/resume/cancel transfers, inspect protected campaign history and live owner state, or tick the controller. The receiving member still authorizes signed actions according to its own policy. Fleet peer transport endpoints remain machine-to-machine endpoints: their observable state appears in the fleet, sync, link and campaign screens instead of allowing raw transport requests from the browser.

Do not confuse a member's network report or a transport acknowledgment with a verified installation receipt. Use the independently signed receipt and privileged updater qualification before treating a campaign stage as complete. See Panel API, Panel Instances, and Reference Guided Tasks for related controls.