Handbook
Configuration and environment variables
Fleet reads environment variables at process start. Production installs often set them in forge-fleet.env (see systemd/environment.example in the repo).
Updated
Values are case-sensitive. Empty/unset usually means “use default” where a default exists.
Core server
| Variable | Purpose |
|---|---|
FLEET_DATA_DIR |
Directory for fleet.sqlite and etc/ layout (default .fleet-data or CLI --data-dir). |
FLEET_BEARER_TOKEN |
Shared secret for Authorization: Bearer on /v1/* when policy requires it. |
FLEET_ENFORCE_BEARER |
If 1/true/yes, require bearer even on loopback when token is set. |
Git / version metadata
| Variable | Purpose |
|---|---|
FLEET_GIT_ROOT |
Checkout used for self-update and SHA resolution. |
FLEET_GIT_SHA / SOURCE_GIT_COMMIT |
Override recorded git SHA for /v1/version. |
FLEET_SELF_UPDATE_INSTALL_PROFILE |
system suppresses user-install self-update button behavior. |
FLEET_SELF_UPDATE_POST_GIT_COMMAND |
Custom command after git pull for self-update. |
Integrations (admin snapshot, compose)
| Variable | Purpose |
|---|---|
FLEET_FORGE_CONSOLE_URL |
Optional Forge Console URL in snapshot meta.integrations. |
FLEET_FORGE_LLM_ROOT |
Auto-migration hint for Forge LLM compose trees; snapshot integration. |
FLEET_FORGE_LLM_COMPOSE_FILES |
Optional override for compose file list when migrating services. |
Telemetry and cooldown
| Variable | Purpose |
|---|---|
FLEET_TELEMETRY_INTERVAL_S |
Minimum seconds between throttled samples (default 60, floor 5). |
FLEET_ENVIRONMENT_TELEMETRY_CACHE_TTL_S |
Cache for docker stats / compose ps rows shared by admin snapshot and GET /v1/environments/telemetry (default 8, floor 5). On Granite with Studio dock polling, 60 reduces duplicate docker work. |
FLEET_TELEMETRY_RETENTION_DAYS |
Prune old telemetry + cooldown rows (0 may mean no prune — see store.py). |
FLEET_COOLDOWN_EVENT_MAX_S |
Max recorded duration_s per cooldown event (default 86400). |
Workspace and template uploads
| Variable | Purpose |
|---|---|
FLEET_WORKSPACE_UPLOAD_MAX_BYTES |
Max gzip tarball size for PUT .../workspace. |
FLEET_TEMPLATE_PACKAGE_UPLOAD_MAX_BYTES |
Max uploaded template package bytes. |
FLEET_TEMPLATE_PACKAGE_MAX_UNCOMPRESSED_BYTES |
Extracted size guard for template packages. |
FLEET_TEMPLATE_PACKAGE_MAX_FILES |
File count guard. |
FLEET_TEMPLATE_PACKAGE_MAX_PATH_DEPTH |
Path depth guard. |
FLEET_DOCKER_BUILDKIT |
Pass-through for docker build BuildKit preference. |
FLEET_MIGRATION_SCRATCH_RETENTION_HOURS |
Hours to keep bundle scratch after a failed extract step before GC (default 24). |
FLEET_MIGRATION_ABANDONED_HOURS |
Hours before GC removes ready bundles whose extract steps never started (default 24). |
FLEET_DOCKER_BUILDER_PRUNE_HOURS |
Prune Docker BuildKit layers older than this many hours at Fleet startup (0 = off; default 168). |
FLEET_ROLLOUT_BACKUP_KEEP_COUNT |
Default minimum rollout pg_dump files to keep per service when using POST /v1/admin/cleanup (default 3). |
FLEET_ROLLOUT_BACKUP_KEEP_DAYS |
Default age floor for rollout backups (days); newer dumps are never removed (default 14). |
FLEET_ROLLOUT_BACKUP_ROOT |
Override rollout backup parent directory (default {FLEET_DATA_DIR}/backups or ~/.local/state/forge-fleet/backups). |
Runner / Docker
| Variable | Purpose |
|---|---|
FLEET_DOCKER_BIN |
Explicit docker binary path. |
FLEET_INJECT_HOST_METRICS_ENV_IN_DOCKER |
If set, inject host metrics URL/token into job env (see HTTP API reference). |
FLEET_HOST_METRICS_BASE_URL |
Base URL reachable from inside containers for health polling. |
FLEET_LENSES_WORKSPACE_ROOT |
Doc/test fleet integration path (see test_fleet.py / README). |
FLEET_LENSES_REPO_ROOT |
Optional Lenses repo hint (containers.py). |
FLEET_EMPTY_CONTAINER_IMAGE / FLEET_TEST_CONTAINER_IMAGE |
Image defaults for internal helpers. |
Thermal / advisory (LLM)
| Variable | Purpose |
|---|---|
FLEET_THERMAL_CPU_DEFAULT |
Policy default tier behavior (thermal_llm_policy.py). |
FLEET_ARM_SOC_TJMAX_C |
SoC thermal ceiling hint on ARM. |
Space and Memory guardians
| Variable | Purpose |
|---|---|
FLEET_SPACE_GUARDIAN |
Enable Space Guardian scheduler (default 1). |
FLEET_SPACE_INTERVAL_S |
Tier 0 interval seconds (default 21600). |
FLEET_SPACE_PRESSURE_FREE_PCT / FLEET_SPACE_PRESSURE_FREE_GB |
Disk pressure thresholds. |
FLEET_VOLUME_QUARANTINE_DAYS / FLEET_VOLUME_SNAPSHOT_MAX_GB |
Orphan volume quarantine TTL and snapshot cap. |
FLEET_LEGACY_BACKUP_ROOTS |
Colon-separated Tier 1 legacy backup roots. |
FLEET_VOLUME_ALLOWLIST |
Comma-separated Docker volume names never quarantined. |
FLEET_MEMORY_GUARDIAN |
Enable Memory Guardian thread (default 1). |
FLEET_MEMORY_INTERVAL_S |
Memory pass interval (default 3600). |
Request guard and app gateways
| Variable | Purpose |
|---|---|
FLEET_GUARD_MODE |
enforce (default) or observe for request guard. |
FLEET_BEARER_DIRECT |
Direct bearer mint policy (mint-only, etc.). |
FLEET_TRUSTED_PROXY_CIDRS |
CIDRs allowed to set forwarded client IP. |
FLEET_APP_GATEWAY_CORS_ORIGINS |
Comma-separated CORS origins for app gateway proxy. |
FLEET_APP_GATEWAY_PROXY_TIMEOUT_SEC |
Upstream proxy timeout for app gateways. |
Lifecycle and upgrade
| Variable | Purpose |
|---|---|
FLEET_LIFECYCLE_QUEUED_BLOCK_MAX_AGE_SEC |
Stale queued jobs no longer block cooperative upgrade. |
FLEET_STOP_GRACE_SEC |
Dependent drain grace (default 25). |
FLEET_LIFECYCLE_EXTRA |
Extra loopback lifecycle dependents JSON. |
FLEET_REMOTE_UPGRADE_REQUIRE_APT |
When set, remote upgrade paths prefer apt channel. |
See also
- SECURITY.md — sensitivity and threat notes
- README.md — install-specific
forge-fleet.envexamples