Appearance
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
| Variable | Effect |
|---|---|
RAYLUX_DATA_DIR | Where Nexus keeps its data. Defaults to the working directory, which is why the installed service always passes --data-dir explicitly. |
RAYLUX_PROJECT | The project file. Defaults to raylux_project.json in the data directory. |
RAYLUX_LOG_PATH | The log file. Defaults to logs/raylux_nexus.log in the data directory. |
RAYLUX_WEB_DIST | The built operator runtime to serve. Without a valid path Nexus answers its API and serves no screens. |
RAYLUX_FONTS_DIR | Fonts embedded into report PDFs. Defaults to fonts beside the executable. |
RAYLUX_PYTHON_HOME | The 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
| Variable | Effect |
|---|---|
RAYLUX_JWT_SECRET | The 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.
| Variable | Effect |
|---|---|
RAYLUX_LENS_URL | Nexus to open. Setting it skips the Hub entirely. |
RAYLUX_LENS_PROJECT | Which project to display. |
RAYLUX_LENS_MODE | kiosk 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
| Variable | Effect |
|---|---|
RAYLUX_STARTUP_HOLD_MS | Holds 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. |