> For the complete documentation index, see [llms.txt](https://help.fovus.co/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.fovus.co/docs/pipeline/nextflow/pipeline-submission/local-hosted-manager.md).

# Run with local Nextflow manager

Run Nextflow on your machine or workstation while Fovus executes each process in the cloud.

Run the Nextflow manager on your Linux machine or [Fovus Workstation](/docs/workstation/launch-workstation.md). The nf-fovus plugin submits each pipeline process as a Fovus cloud job — your terminal drives orchestration; Fovus handles compute and storage.

{% hint style="warning" %}
The Nextflow process must keep running for the entire pipeline. If the terminal closes, the machine loses network connectivity, or the machine shuts down, the pipeline stops. For unattended runs, use [Fovus-hosted execution](/docs/pipeline/nextflow/pipeline-submission/fovus-hosted-manager.md).
{% endhint %}

## When to use local manager mode

| Situation                                    | Recommendation                                                                                                |
| -------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
| Developing or testing a new pipeline         | Local manager — fast iteration, full terminal output                                                          |
| Short pipelines that finish in one session   | Local manager                                                                                                 |
| Pipeline must continue if your laptop sleeps | [Fovus-hosted](/docs/pipeline/nextflow/pipeline-submission/fovus-hosted-manager.md)                           |
| Unattended or overnight runs                 | [Fovus-hosted](/docs/pipeline/nextflow/pipeline-submission/fovus-hosted-manager.md)                           |
| macOS desktop                                | Not supported — use a [Fovus Workstation](/docs/workstation/launch-workstation.md) or Fovus-hosted submission |

## Run a pipeline

{% stepper %}
{% step %}

#### Set up your environment

{% tabs %}
{% tab title="Linux or WSL" %}

1. [Install the Fovus CLI](https://help.fovus.co/cli/) and authenticate.
2. [Install Nextflow](https://www.nextflow.io/docs/latest/install.html).
3. [Mount Fovus Storage locally](/docs/storage/mount-storage-locally.md) so `/fovus-storage/pipelines` is available.
   {% endtab %}

{% tab title="Fovus Workstation" %}

1. [Launch a workstation](/docs/workstation/launch-workstation.md) and [connect](/docs/workstation/connect-to-workstation.md) to it.
2. `/fovus-storage` is already mounted — no separate mount step. Nextflow is pre-installed on the workstation.

{% hint style="warning" %}
When launching the workstation, allocate enough **walltime** to cover the full pipeline run and enough **storage** for all pipeline output files (those published via `publishDir`). The pipeline will fail if the workstation reaches its walltime limit or runs out of storage space.
{% endhint %}
{% endtab %}
{% endtabs %}
{% endstep %}

{% step %}

#### Configure nextflow\.config

Create `nextflow.config` in your pipeline directory. Minimal example:

```groovy
plugins {
  id 'nf-fovus'
}

process {
  executor = 'fovus'
  ext.benchmarkingProfileName = 'Default CPU'
  ext.timeToCostPriorityRatio  = '0.5/0.5'
}

fovus {
  pipelineName = 'My Fovus Pipeline'
}

workDir = '/fovus-storage/pipelines'
```

If the Fovus CLI is not on your `PATH`, add `cliPath` inside the `fovus {}` block (use the output of `which fovus`):

```groovy
fovus {
  pipelineName = 'My Fovus Pipeline'
  cliPath = '/home/user/.fovus-venv/bin/fovus'
}
```

For uploads, Docker, and per-process overrides, see [Prepare inputs and configure Nextflow](/docs/pipeline/nextflow/pipeline-submission/prepare-inputs.md).
{% endstep %}

{% step %}

#### Launch Nextflow

In the directory containing your workflow and config:

```bash
nextflow run <your-workflow.nf>
```

The nf-fovus plugin registers the pipeline in Fovus and submits each process as a cloud job. Look for `executor > fovus` in the terminal output.

{% hint style="warning" %}
Do not close the terminal while the pipeline is running.
{% endhint %}
{% endstep %}

{% step %}

#### Stop or resume

* **Stop:** press `Ctrl+C` in the Nextflow terminal.
* **Resume:** run the same command with the `-resume` flag:

```bash
nextflow run <your-workflow.nf> -resume
```

Nextflow skips tasks already cached under `/fovus-storage/pipelines/<your_pipeline_id>/`. There is no **Stop** or **Resume** control in the Fovus UI for local manager pipelines.
{% endstep %}
{% endstepper %}

## Monitor results

Watch live output in your Nextflow terminal. To review jobs, files, and cost in Fovus after submission, see [Monitor your pipeline](/docs/pipeline/monitor-manage/pipeline-monitoring.md).

For per-task logs on disk, open `fovus-std.out` in each task's work directory under `/fovus-storage/pipelines/<your_pipeline_id>/` when [Fovus Storage](/docs/storage/storage-overview.md) is mounted locally.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://help.fovus.co/docs/pipeline/nextflow/pipeline-submission/local-hosted-manager.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
