> ## Documentation Index
> Fetch the complete documentation index at: https://dsp.xdr.ooo/llms.txt
> Use this file to discover all available pages before exploring further.

# Installation

> Install or update DSP on a Linux operator host with Python 3.11 or newer.

# Installation

Use this page when the [Quick Start](/quickstart) prerequisite check fails or when you need more control over installation and launch behavior.

## Requirements

The current package requires **Python 3.11+**. The bootstrap path also requires `git`, `curl`, and Python `venv` support. `whiptail` is optional but recommended for the menu UI.

Check the environment:

```bash theme={null}
python3 --version
python3 -c 'import venv; print("venv: OK")'
git --version
curl --version
```

<Warning>
  If the available Python runtime is older than 3.11, install a supported Python 3.11+ runtime for your Linux distribution before running DSP. The bootstrap installer intentionally stops instead of creating a virtual environment with an older Python version.
</Warning>

On Debian/Ubuntu systems where the default `python3` is already 3.11 or newer, the usual packages are:

```bash theme={null}
sudo apt update
sudo apt install -y git curl python3 python3-venv whiptail
```

## Recommended install

```bash theme={null}
curl -fsSL https://raw.githubusercontent.com/xdr-labs/xdr-poc-script/release/v1.4.0-rc/install-dsp.sh | bash
```

The installer uses `$HOME/xdr-poc-script` by default and:

1. verifies `git` and a Python 3.11+ runtime with `venv`
2. preserves `~/.dsp/config.env` and existing runs
3. clones or updates the current operator branch
4. creates or reuses `.venv`
5. installs DSP with `pip install -e .`
6. launches `dsp-menu.sh`

<Note>
  The online bootstrap normally needs access to GitHub and to the Python package source used by `pip`. The current bootstrap is not an offline installer. In restricted environments, pre-stage the repository and required Python dependencies using the customer's approved software-transfer process.
</Note>

## Custom install directory

```bash theme={null}
export DSP_REPO_DIR=/opt/xdr-poc-script
curl -fsSL https://raw.githubusercontent.com/xdr-labs/xdr-poc-script/release/v1.4.0-rc/install-dsp.sh | bash
```

## Install without opening the menu

```bash theme={null}
export DSP_NO_LAUNCH=1
curl -fsSL https://raw.githubusercontent.com/xdr-labs/xdr-poc-script/release/v1.4.0-rc/install-dsp.sh | bash
```

Launch the default-path installation later with:

```bash theme={null}
$HOME/xdr-poc-script/dsp-menu.sh
```

## Manual install

If you prefer not to pipe a script into `bash`:

```bash theme={null}
git clone --branch release/v1.4.0-rc https://github.com/xdr-labs/xdr-poc-script.git "$HOME/xdr-poc-script"
cd "$HOME/xdr-poc-script"
python3 -m venv .venv
.venv/bin/pip install --upgrade pip
.venv/bin/pip install -e .
./dsp-menu.sh
```

## Update an existing installation

The simplest update method is **1 — Update latest patch** in the operator menu. You can also rerun the bootstrap installer; it updates the existing repository and preserves `~/.dsp/` state.

<Warning>
  The current product scripts use `release/v1.4.0-rc`. The older `release/v1.4.0` branch is explicitly rejected by the installer/menu because it contains retired traffic-volume behavior.
</Warning>

## Verify the installation

```bash theme={null}
cd "$HOME/xdr-poc-script"
source .venv/bin/activate

dsp --version
dsp plugins list
```

Expected product version is `dsp 1.4.0` on the current operator branch.

<Card title="Run the first test" icon="rocket" href="/quickstart">
  Continue with local mode and the normal profile before configuring webshell execution.
</Card>
