Skip to content

Environment variables

Most installations need none of these — the installer sets what Nexus needs. They matter for a build-from-source install, a relocated installation, or a container.

A Windows service does not inherit your shell's environment

Setting a variable in PowerShell affects that window, not the service. For a service, either set it as a machine-wide system variable and restart the service, or use the equivalent command-line option, which is what the installer does.

Nexus

VariableEffect
RAYLUX_DATA_DIRWhere Nexus keeps its data. Defaults to the working directory, which is why the installed service always passes --data-dir explicitly.
RAYLUX_PROJECTThe project file. Defaults to raylux_project.json in the data directory.
RAYLUX_LOG_PATHThe log file. Defaults to logs/raylux_nexus.log in the data directory.
RAYLUX_WEB_DISTThe built operator runtime to serve. Without a valid path Nexus answers its API and serves no screens.
RAYLUX_FONTS_DIRFonts embedded into report PDFs. Defaults to fonts beside the executable.
RAYLUX_PYTHON_HOMEThe Python 3.14t runtime. Defaults to python beside the executable. Must be a free-threaded build.

Each has a matching command-line option that takes precedence: command line, then environment, then the configuration file.

Security

VariableEffect
RAYLUX_JWT_SECRETThe signing secret for sign-in tokens. Generated and stored if unset. Set it explicitly if you run more than one Nexus that must accept each other's sessions.

Treat RAYLUX_JWT_SECRET as a credential

Anyone holding it can mint a valid session for any account. Do not put it in a script committed to source control.

Raylux Lens

Set these on a panel PC to launch a view unattended, without configuring it through the Lens Hub.

VariableEffect
RAYLUX_LENS_URLNexus to open. Setting it skips the Hub entirely.
RAYLUX_LENS_PROJECTWhich project to display.
RAYLUX_LENS_MODEkiosk or windowed. Anything unrecognised is treated as kiosk.

A view launched this way has no route back to the desktop

Ctrl+Shift+H returns to the Hub only for a view launched from the Hub. That is deliberate: a commissioned panel should not offer an operator a way out to Windows. Configure the panel through the Hub if you want that escape.

Diagnostics

VariableEffect
RAYLUX_STARTUP_HOLD_MSHolds Nexus in its "starting" state for this many milliseconds before serving. For testing what clients do while a Nexus instance starts. Capped at ten minutes.