Skip to main content
🛠 This page is for engineering teams self-hosting their own Lightdash instance. If you want to set up scheduled deliveries, go to the Scheduled deliveries guide.
By default, the Lightdash backend runs scheduled jobs in-process. In production, run a dedicated scheduler worker so a heavy dashboard export can’t starve the API. Run one through the Helm chart’s built-in worker, or as a standalone process you start yourself.

Helm chart

Set scheduler.enabled: true and the chart deploys a dedicated scheduler worker:
When scheduler.enabled: true, the chart automatically sets SCHEDULER_ENABLED: "false" on the backend — don’t set it yourself. Tune delivery throughput with SCHEDULER_JOB_TIMEOUT, SCHEDULER_SCREENSHOT_TIMEOUT, and scheduler.tasks.include / scheduler.tasks.exclude to shard task types across worker groups. See the scheduler environment variables for the full reference.

Standalone worker

For infrastructure that doesn’t use the Helm chart, run the scheduler worker as a separate process.

1. Disable the scheduler worker in the main server

Set the following environment variable value:

2. Run the standalone scheduler worker

Command to start scheduler worker:
Note that it expects the same environment variables as the main server.

Example docker-compose.yml