(install-page)=

# Installation

Nextflow can be used on any POSIX-compatible system (Linux, macOS, etc), and on Windows through [WSL](https://en.wikipedia.org/wiki/Windows_Subsystem_for_Linux). This page describes how to install Nextflow.

:::{note}
New versions of Nextflow are released regularly. See {ref}`updating-nextflow-page` for more information about Nextflow release cadence, how to update Nextflow, and how select your version of Nextflow.
:::

(install-requirements)=

## Requirements

Nextflow requires Bash 3.2 (or later) and [Java 17 (or later, up to 26)](http://www.oracle.com/technetwork/java/javase/downloads/index.html) to be installed. To see which version of Java you have, run the following command:

```{code-block} bash
:class: copyable
java -version
```

:::{versionchanged} 24.11.0-edge
Support for Java versions prior to 17 was dropped.
:::

If you don't have a compatible version of Java installed, it is recommended that you install it through [SDKMAN!](https://sdkman.io/), and that you use the latest Long-Term-Support (LTS) version of Temurin. See [Which version of JDK should I use?](https://whichjdk.com/) for more information about different versions of Java.

To install Java with SDKMAN:

1. [Install SDKMAN](https://sdkman.io/install):

    ```{code-block} bash
    :class: copyable
    curl -s https://get.sdkman.io | bash
    ```

2. Open a new terminal.

3. Install Java:

    ```{code-block} bash
    :class: copyable
    sdk install java 17.0.10-tem
    ```

4. Confirm that Java is installed correctly:

    ```{code-block} bash
    :class: copyable
    java -version
    ```

(install-nextflow)=

## Install Nextflow

Nextflow is distributed as an easy to use self-installing package. It is also distributed via Conda and as a standalone distribution.

### Self-install

In order to make the installation process as simple as possible, Nextflow is distributed as a self-installing package.

To install Nextflow with the self-installing package:

1. Download Nextflow:

    ```{code-block} bash
    :class: copyable
    curl -s https://get.nextflow.io | bash
    ```

    :::{tip}
    Set `export CAPSULE_LOG=none` to make the installation logs less verbose.
    :::

2. Make Nextflow executable:

    ```{code-block} bash
    :class: copyable
    chmod +x nextflow
    ```

3. Move Nextflow into an executable path. For example:

    ```{code-block} bash
    :class: copyable
    mkdir -p $HOME/.local/bin/
    mv nextflow $HOME/.local/bin/
    ```

    :::{tip}
    Ensure the directory `$HOME/.local/bin/` is included in your `PATH` variable. Temporarily add this directory to `PATH` by setting `export PATH="$PATH:$HOME/.local/bin"`. Add the directory to `PATH` permanently by adding the export command to your shell configuration file, such as `~/.bashrc` or `~/.zshrc`. Alternatively, move the `nextflow` executable to a directory already in your `PATH`.
    :::

    :::{warning}
    Nextflow updates its executable during the self-install process, therefore the update can fail if the executable is placed in a directory with restricted permissions.
    :::

4. Confirm Nextflow is installed correctly:

    ```{code-block} bash
    :class: copyable
    nextflow info
    ```

### Conda

To install Nextflow with Conda:

1. Create an environment with Nextflow:

    ```{code-block} bash
    :class: copyable
    conda create --name nf-env bioconda::nextflow
    ```

2. Activate the environment:

    ```{code-block} bash
    :class: copyable
    source activate nf-env
    ```

3. Confirm Nextflow is installed correctly:

    ```{code-block} bash
    :class: copyable
    nextflow info
    ```

:::{warning}
Installing Nextflow via Conda may lead to outdated versions, dependency conflicts, and Java compatibility issues. Using the self-installing package is recommended for a more reliable and up-to-date installation.
:::

(install-standalone)=

### Standalone distribution

The Nextflow standalone distribution (i.e., the `dist` release) is a self-contained `nextflow` executable that can run without needing to download core dependencies at runtime. This distribution is useful for offline environments as well as building and testing Nextflow locally.

To use the standalone distribution:

1. Download the standalone distribution from Assets section of the [GitHub releases page](https://github.com/nextflow-io/nextflow/releases).

2. Grant execution permissions to the downloaded file. For example:

    ```{code-block} bash
    :class: copyable
    chmod +x nextflow-24.10.1-dist
    ```

3. Use it as a drop-in replacement for `nextflow` command. For example:

    ```{code-block} bash
    :class: copyable
    ./nextflow-24.10.1-dist run info
    ```

:::{note}
The standalone distribution will still download core and third-party plugins as needed at runtime.
:::

## Seqera Platform

You can launch workflows directly from [Seqera Platform](https://seqera.io/platform/) without installing Nextflow locally.

Launching from Seqera provides you with:

- User-friendly launch interfaces.
- Automated cloud infrastructure creation.
- Organizational user management.
- Advanced analytics with resource optimization.

Seqera Cloud Basic is free for small teams. Researchers at qualifying academic institutions can apply for free access to Seqera Cloud Pro.
See [Seqera Platform Cloud](https://docs.seqera.io/platform) to get started.

If you have installed Nextflow locally, you can use the {ref}`nextflow auth <cli-auth>` command to authenticate with Seqera and automatically configure workflow monitoring.
