Configuration

August 7, 2026 · View on GitHub

This page is the single source of truth for Business Edition environment variables and on-disk paths. For inherited Community Edition variables (SWARMCLI_ENV, LOG_LEVEL, DOCKER_CONTEXT, SWARMCLI_DISABLE_VERSION_CHECK), see the README.

BE-specific environment variables

VariablePurposeDefaultRead at
SWARMCLI_LICENSELicense key. Takes priority over the license file.unsetstartup
SWARMCLI_PROXY_URLWebSocket URL of the rbac-proxy. Auto-derived from the active Docker context if unset.unsetshell connect
SWARMCLI_REVEAL_IMAGEImage used for the temporary service that reveals a secret.alpine:latestreveal action
SWARMCLI_SHELL_CMDShell command to exec when opening a shell into a task. If unset, the agent auto-detects (bashshash).unsetshell connect
SWARMCLI_FORWARD_IDLE_TIMEOUTIdle timeout for an active port-forward (no traffic in either direction). Accepts any Go duration; capped at 24h.30mper-forward, evaluated continuously

See License — Activation for the precedence between SWARMCLI_LICENSE and the license file, and Features for how SWARMCLI_REVEAL_IMAGE, SWARMCLI_SHELL_CMD, and SWARMCLI_FORWARD_IDLE_TIMEOUT are used.

On-disk paths

PathModeContents
~/.config/swarmcli/license.key0600Active license key. Created by the startup prompt or by :license <s>.
~/.config/swarmcli/certs/<stack>/ca.pem0600CA cert from :bootstrap.
~/.config/swarmcli/certs/<stack>/cert.pem0600Admin client cert (CN = seed username).
~/.config/swarmcli/certs/<stack>/key.pem0600Admin client private key.
~/.docker/contexts/…(Docker default)Managed Docker contexts — the <original>-managed entry created by :bootstrap and any <user>-managed entries imported via docker context import.

Directory mode is 0700 for ~/.config/swarmcli/certs/<stack>/. <stack> is the bootstrap stack name; default swarmcli-infra.

Log paths are unchanged from CE — see the README.

Stack-side configuration (rbac-proxy)

The :bootstrap command renders an embedded stack template. A handful of proxy-side environment variables are set on the rbac-proxy service and are useful to know when operating the deployment:

VariablePurposeSet by bootstrap
PROXY_LISTENmTLS listen address.:<port> (default :2376).
PROXY_INTERNAL_LISTENPlaintext loopback listener for management calls.127.0.0.1:2375.
PROXY_DOCKER_SOCKETBackend socket./var/run/docker.sock.
PROXY_AGENT_MANAGER_URLWhere the proxy reaches the agent-manager.tcp://swarmcli-infra_agent-manager:8080.
PROXY_STORE / PROXY_DATABASE_PATHUser/role store.sqlite at /data/proxy.db (volume proxy-data).
PROXY_TLS_*TLS material — server cert/key, client CA cert/key.Mounted from Docker secrets.
PROXY_ADMIN_TOKEN_FILEBearer token for the management API.Mounted from the _admin-token secret.
PROXY_EXTERNAL_URLURL embedded into onboarding bundles.tcp://<host>:<port>.
PROXY_SEED_USERNAME / PROXY_SEED_ROLEBootstrap admin user.admin / admin.
PROXY_ONBOARDING_TOKEN_TTLTime-to-live for onboarding tokens.Default 24h.

Changing these requires editing the deployed service (docker service update) or re-running :bootstrap from scratch — see Bootstrap — Re-bootstrap.

Stack-side configuration (agent)

One agent-side variable is worth knowing when using Volumes:

VariablePurposeSet by bootstrap
FILEOP_MAX_UPLOAD_BYTESMaximum size of a single volume file/directory upload; the agent rejects a larger payload with 413.2147483648 (2 GiB).

Deployments bootstrapped before this was templated fall back to the agent's built-in 2 GiB default. Raise or lower it the same way as the proxy-side variables above — docker service update the agent service, or re-run :bootstrap.