Skip to content
Docs

Configuration & Admin

This page is the summary. Each section below has a page of its own:

Lifeboat separates deployment-time configuration — environment variables, set once by whoever runs the host — from runtime administration, which is everything on the Configuration and Users pages and takes effect on save.

Users → Add User. Four roles, each a superset of the one below:

Role Can
Viewer Read everything: dashboard, models, servers, clusters, audit log. Change nothing.
Operator Everything a viewer can, plus start, stop and create servers, and download models. Day-to-day operation.
Admin Plus users, API keys, configuration, licence activation, and revealing a stored key.
Superadmin Plus the sealed-secret operations used by confidential computing.

Give applications an API key, not a user account — keys are scoped for inference and are revocable individually. See API and automation.

A fresh deployment asks you to create the first administrator in the browser. There is no default password shipped in the product: the container generates one per install if you do not set LIFEBOAT_ADMIN_PASSWORD, and writes it where the deployment can read it. A product that ships with known credentials is a product that runs with known credentials.

Change a password from the user menu at the top right. An administrator can reset another user’s from the Users page.

If no administrator can sign in, set LIFEBOAT_ADMIN_PASSWORD on the container and restart it. For the desktop app, quit it and start it again — it re-runs first-run setup if no account exists.

The one runtime setting most worth understanding, because it changes how the deployment behaves under load. Four modes, explained with their trade-offs in Clusters and load balancing. It applies fleet-wide, takes effect immediately on save, and the card polls live so you can watch Hybrid switch between its two states.

Unset or unrecognised means Max concurrency (since 2.2.60; Superfast before). Fresh installs and upgrades with no mode set both land there.

A system prompt set here is injected into every chat request that does not carry its own. It is applied correctly on both the OpenAI-compatible and the Anthropic-compatible endpoint, which have incompatible ways of expressing one — so it does not silently vanish on the second.

Set on the container (Compose environment:, Helm values, or the AMI’s overrides file). Every one has a working default; the full list is in .env.example.

Sizing and paths

Variable Default Notes
LIFEBOAT_MODELS_DIR /models Where weights live. Persist it.
LIFEBOAT_DATA_DIR — Registry, audit log, logs, licence. Persist it — the licence grace clock and cluster identity live here.
LIFEBOAT_SHM_SIZE 8gb Shared memory. Required for tensor parallelism above 1, and fixed at container creation — changing it needs the container recreated.
LIFEBOAT_PYTHON python3.12 Must match the image’s interpreter. A stale value breaks a bind mount in the Compose file.

Router

Variable Default Notes
LIFEBOAT_LB_QUEUE_ENABLED on Queue instead of rejecting at capacity. The Queue-all routing mode turns this on regardless.
LIFEBOAT_LB_QUEUE_TTL_SEC 120 How long a request may wait before a 504.
LIFEBOAT_LB_SUPERFAST_CAP 4 Per-server limit in Superfast, and in Hybrid while quiet.
LIFEBOAT_TTS_MAX_CONCURRENCY 2 Text-to-speech runs a subprocess per request; each reloads the model, so parallelism costs memory without adding throughput.

Startup timing

Variable Default Notes
LIFEBOAT_STARTING_TIMEOUT_SEC 900 How long a server may be starting.
LIFEBOAT_STARTING_STALL_SEC 300 Silence in its log that counts as stuck. Both must elapse — a slow start writes to its log, a hung one does not.

Licensing and telemetry

Variable Default Notes
LIFEBOAT_LICENSE_FILE — Path to an offline .lic to import at boot.
LIFEBOAT_TELEMETRY on off stops the census. The licence check-in continues — see below.
LIFEBOAT_GRACE_HOURS 24 The grace window. Not the paid trial.

Logging

LIFEBOAT_LOG_LEVEL defaults to INFO, and at that level the control plane explains its own automatic decisions — the derived memory fraction and why, measured footprints, engine auto-routing, embedding detection, parser corrections. If you are trying to understand why Lifeboat chose something, this is where the answer is.

A licensed deployment checks in with its licence key, cluster id, node count and version. An unlicensed one reports a daily census with no key. Both include a short hardware description, sent once per distinct configuration.

No model names, prompts, completions or token counts are ever collected. LIFEBOAT_TELEMETRY=off stops the census; the licence check-in continues, because demonstrating that a licence is bound to one cluster is contractual rather than telemetry. An air-gapped licence sends nothing at all. See Licensing.

Change Effect
Routing mode, system prompt, users, keys, weights, concurrency Immediate on save.
Per-server settings Next start of that server.
Environment variables Container restart.
LIFEBOAT_SHM_SIZE Container recreation, not restart.

Stop the stack, pull the new image, start it again, keeping the data volume — the registry, users, keys, audit log and downloaded models all carry across. On NVIDIA the host-setup step is idempotent and safe to re-run after a reboot or driver upgrade.

Note the container images and the desktop app ship on separate cadences, so their version numbers are not expected to match. A desktop version is not a pullable image tag.