Skip to content

Worker Installation

Windows worker installation

Use these steps to install an external LyftData worker on Windows so it can connect to an existing server. Run all commands in an elevated PowerShell prompt.

Before you begin

Complete the installation prerequisites, install the Windows distribution (MSI recommended), and create a worker ID plus API key on the server. Confirm availability with lyftdata-worker --version (or lyftdata --version) from an elevated PowerShell prompt.

MSI automation (optional)

The MSI supports a small set of public properties for unattended installs:

Terminal window
# Default (recommended): LocalService
msiexec /i .\lyftdata-worker-x86_64-pc-windows-msvc.msi /qn
# Optional: LocalSystem (highly privileged; prefer a dedicated account in production)
msiexec /i .\lyftdata-worker-x86_64-pc-windows-msvc.msi /qn LYFTDATA_MSI_SERVICE_ACCOUNT=LocalSystem
# Optional: enable delayed-auto-start and attempt to start the service during MSI install (best-effort).
# Warning: this can leave the service configured to start automatically even if `service.env` is not ready yet.
msiexec /i .\lyftdata-worker-x86_64-pc-windows-msvc.msi /qn LYFTDATA_MSI_SERVICE_START=1

Prepare the worker account

Configure the service environment file

Native services load environment variables from a scoped file (instead of machine-wide registry environment variables) so secrets like worker API keys are not exposed to non-admin users.

Create C:\ProgramData\LyftData\worker\service.env with the required settings:

Terminal window
New-Item -ItemType Directory -Path "C:\ProgramData\LyftData\worker" -Force | Out-Null
@'
# LyftData worker service environment
LYFTDATA_WORKER_ID=worker-01
LYFTDATA_WORKER_API_KEY=<your-api-key>
LYFTDATA_URL=https://server-host:3000
LYFTDATA_JOBS_DIR=C:\ProgramData\LyftData\worker
LYFTDATA_LICENSE_EULA_ACCEPT=yes
# Evaluation only: allow connecting to a self-signed TLS server certificate
LYFTDATA_TLS_INSECURE=true
'@ | Set-Content -Path "C:\ProgramData\LyftData\worker\service.env" -Encoding UTF8

Optional settings

Before starting the service, add any other worker flags here—for example, change LYFTDATA_URL when targeting a staging control plane. Restarting the service after edits picks up the new environment immediately.

Install the native service

Install the worker service using built-in Windows Service Control Manager (SCM) integration. You can manage the worker service using either binary:

Terminal window
# Recommended: manage the worker service via lyftdata-worker.
# Use --replace for MSI installs and upgrades.
lyftdata-worker service install --replace
# Backward compatible: manage the worker service via lyftdata
# lyftdata service install --component worker
# Optional: run as a dedicated local user account (recommended for production)
# lyftdata-worker service install --replace --user ".\lyftdata-worker" --password-stdin
Start-Service LyftDataWorker

Verify the worker is online

Terminal window
# Confirm the Windows service is running
Get-Service LyftDataWorker
# Inspect the worker log (optional)
Get-ChildItem "C:\ProgramData\LyftData\worker\logs\lyftdata*.log" | Sort-Object LastWriteTime | Select-Object -Last 1 | Get-Content -Tail 50

Check the server UI to confirm the worker shows online. If the worker does not appear in the dashboard, verify the worker ID, API key, and server URL in C:\ProgramData\LyftData\worker\service.env, then restart the service.

Next steps

  • Deploy jobs to the new worker from the server UI
  • Repeat the process on additional hosts to scale out
  • Follow the post-install checklist to enable metrics and exercise the job editor

Legacy: Install with NSSM

If you are running an older LyftData build that does not include lyftdata-worker service ..., you can still install the worker service with NSSM.

Configure machine environment variables (legacy)

Terminal window
[Environment]::SetEnvironmentVariable("LYFTDATA_WORKER_ID", "worker-01", "Machine")
[Environment]::SetEnvironmentVariable("LYFTDATA_WORKER_API_KEY", "<your-api-key>", "Machine")
[Environment]::SetEnvironmentVariable("LYFTDATA_URL", "https://server-host:3000", "Machine")
[Environment]::SetEnvironmentVariable("LYFTDATA_TLS_INSECURE", "true", "Machine")
[Environment]::SetEnvironmentVariable("LYFTDATA_JOBS_DIR", "C:\\ProgramData\\LyftData\\worker", "Machine")
[Environment]::SetEnvironmentVariable("LYFTDATA_LICENSE_EULA_ACCEPT", "yes", "Machine")

Install the worker service with NSSM (legacy)

Terminal window
nssm install LyftDataWorker "C:\Program Files\LyftData\lyftdata.exe" run worker
nssm set LyftDataWorker AppDirectory "C:\Program Files\LyftData"
nssm set LyftDataWorker AppStdout "C:\ProgramData\LyftData\worker\worker.log"
nssm set LyftDataWorker AppStderr "C:\ProgramData\LyftData\worker\worker-error.log"
nssm set LyftDataWorker ObjectName ".\lyftdata-worker" "<ServiceAccountPassword>"
nssm set LyftDataWorker Start SERVICE_AUTO_START
Start-Service LyftDataWorker

Replace <ServiceAccountPassword> with the password for the lyftdata-worker service account before running the command.