> For the complete documentation index, see [llms.txt](https://doc.duaer.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://doc.duaer.com/deploy/host-n8n/configure-n8n/set-up-task-runners.md).

# Set up task runners as an external process in Duaer

Duaer deprecates the internal task runner. Run the runner separately, set it to external, and share DUAER_RUNNERS_AUTH_TOKEN with the launcher.
## Why external mode

Task runners execute user code such as the Code node in an isolated process. Internal mode launches the runner as a child process that shares the same user and host as the main process. That mode is deprecated and not for production. If you still use internal, upgrades or logs warn and link here.

## Switch to external

Give the main process and the runner at least these variables (change the values for your deploy):

```
DUAER_RUNNERS_ENABLED=true
DUAER_RUNNERS_MODE=external
DUAER_RUNNERS_AUTH_TOKEN=your-secret-here
```

Run the runner with the launcher as its own process, and share the same token on both sides. Default timeouts and whether the image includes a runner are under [task runners in hosting](/hosting/configuration/task-runners.md). This page is the deployment cut-over; the hosting page is the behavior detail.
## Questions

### Why does Duaer say not to keep using the internal task runner?

Internal mode is deprecated and insecure: the runner shares the same user and host as the main process. Set external mode, run the runner separately, and share DUAER_RUNNERS_AUTH_TOKEN.

