Environment Variables
Most configuration lives in conf/super.toml (see Config Reference). A small set of public environment variables lets you configure the daemon and CLI without touching config files — useful for containers, systemd units, and one-off overrides.
Runtime layout
SUPER_ROOT
Instance root directory: holds conf/, data/, logs/, run/, and plugins/. Shared by superd, the super CLI, and licensed plugins so path resolution stays consistent.
Resolution order for the daemon:
SUPER_ROOT(if set, non-empty)- Directory layout inferred from the executable (
<root>/bin/superdexists →<root>) - Current working directory
The CLI’s offline tools (super check, super doctor) additionally probe super.toml, conf/super.toml, and /etc/super/super.toml when SUPER_ROOT is unset.
export SUPER_ROOT=/opt/super
superd # reads /opt/super/conf/super.tomlRelative Unix socket paths (--server unix://run/superd.sock, [server] socket) and relative pidfiles resolve under SUPER_ROOT. See Config Reference — Instance layout.
CLI authentication
SUPER_TOKEN
Access token or admin Bearer for CLI → daemon requests. Equivalent to super --token <TOKEN>, and takes precedence over a saved ~/.super/cli.json login for that invocation. Relevant when core auth is active (auth_secret set) or the security plugin is loaded. Default loopback OSS without auth_secret accepts requests without a token.
# OSS core auth — same string as [server].auth_secret in conf/super.toml
export SUPER_TOKEN='your-auth-secret'
# Licensed Access Token (security plugin) — sk-… from `super token create`
# export SUPER_TOKEN=sk-...
super listLicense (licensed deployments)
SUPER_LICENSE
Base64-encoded signed subscription key, in the same format as [license].key. Overrides the key from super.toml — useful in containers where the key is injected as an env var instead of written to disk.
export SUPER_LICENSE="eyJhbGciOiJFZDI1NTE5Iiwia2lkIjoia183Y2I5NTJhZiJ9..."
superdSUPER_LICENSE_STRICT
Force strict license verification — equivalent to [license].strict = true. When set to 1 / true / yes, an invalid or incompatible key refuses startup instead of degrading to OSS mode. Recommended for production licensed deployments.
export SUPER_LICENSE_STRICT=1
superdWithout SUPER_LICENSE_STRICT, startup still hard-fails when the key does not verify and any of these deployment signals is present: plugin libraries in $SUPER_ROOT/plugins/, an auth_secret configured, or a non-loopback bind. See Authentication — license verification.
SUPER_HOSTNAME
Optional display hostname for the daemon. When set (non-empty), it overrides the OS hostname for:
- Notification / webhook payloads and the “Sent from Super · host …” footer
system_startupevents- The
SUPER_HOSTNAMEvalue injected into managed children and hooks
Useful in containers and Kubernetes where the kernel hostname is a random pod id:
export SUPER_HOSTNAME=api-prod-1
superdIf unset, Super uses the OS hostname (hostname / gethostname).
Variables injected into children and hooks
The following are written into the environment of managed processes and hook/event scripts (you normally do not set them on children yourself). SUPER_HOSTNAME is special: if set on the daemon process, that value is what gets injected (see above).
| Variable | Where it appears |
|---|---|
SUPER_ID, SUPER_NAME, SUPER_HOSTNAME, SUPER_GROUP | Managed child processes and lifecycle hooks (Lifecycle Hooks) |
SUPER_PID, SUPER_EXIT_CODE, SUPER_UPTIME_SECS | Lifecycle hook scripts (post-start / pre-stop / post-stop) |
SUPER_PROCESS_NUM, SUPER_PROCESS_TOTAL | numprocs > 1 instances (worker-0, worker-1, …) |
SUPER_EVENT, SUPER_USAGE_BYTES, SUPER_LIMIT_BYTES, SUPER_WARN_BYTES, SUPER_RETRY_COUNT, … | OSS [[event_hooks]] scripts (System Events) |
Was this page helpful? Thanks for your feedback!
Still have questions? Open an issue or browse the source.