Set on the container (Compose environment:, Helm values, or the AMI’s overrides file). Every one has a working default; the complete list is in the published .env.example.
| 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 for tensor parallelism > 1. Fixed at container creation. |
LIFEBOAT_GPU_DEVICE |
a no-op self-mapping |
Passes an integrated GPU through, e.g. /dev/dri:/dev/dri. The default is deliberately inert: a hardcoded device that the host lacks makes the container refuse to start. |
| Variable |
Default |
Notes |
LIFEBOAT_LB_QUEUE_ENABLED |
off |
Queue instead of rejecting at capacity. Queue-all mode forces it on. |
LIFEBOAT_LB_QUEUE_TTL_SEC |
30 |
Wait before a 504. |
LIFEBOAT_LB_QUEUE_MAX_DEPTH_MULTIPLIER |
4 |
Depth ceiling, times the pool’s total concurrency. |
LIFEBOAT_LB_SUPERFAST_CAP |
4 |
Per-server cap in superfast, and in hybrid while quiet. |
LIFEBOAT_LB_HYBRID_INFLIGHT / _RATE |
10 / 10 |
Thresholds that flip a hybrid pool busy. |
LIFEBOAT_TTS_MAX_CONCURRENCY |
2 |
Text-to-speech runs a subprocess per request; each reloads the model, so parallelism costs memory without adding throughput. |
| 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. Raising the timeout alone only moves the cliff.
| Variable |
Default |
Notes |
LIFEBOAT_LICENSE_FILE |
— |
Offline .lic imported at boot. |
LIFEBOAT_GRACE_HOURS |
24 |
The grace window. Not the paid trial. |
LIFEBOAT_TELEMETRY |
on |
off stops the census. The licence check-in continues — see Telemetry. |
| Variable |
Notes |
LIFEBOAT_CLUSTER_SECRET |
Shared between control plane and every agent. Mismatch → 401 naming the node. |
LIFEBOAT_LOG_LEVEL defaults to INFO. 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 asking why Lifeboat chose something, this is where the answer is.
| Shape |
Where |
| Compose |
the environment: map |
| Helm |
values, rendered into the pod |
| AMI |
/etc/lifeboat/overrides.env — survives restarts |
| Desktop |
not generally needed |
A variable must be named in environment: to reach the process — an .env file alone only provides substitution.