> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.proto.xyz/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.proto.xyz/_mcp/server.

# Uninstall high availability

The uninstaller removes Proto Fleet HA from one host at a time. Choose whether to keep the cluster state or permanently delete it.

| Goal                                      | Command                           | Result                                                                     |
| ----------------------------------------- | --------------------------------- | -------------------------------------------------------------------------- |
| Remove the runtime and keep cluster state | `fleet-ha uninstall`              | Preserves configuration, credentials, database data, and coordination data |
| Prepare the host for a fresh installation | `fleet-ha uninstall --purge-data` | Permanently deletes all local HA state after the runtime is removed        |

If you plan to reinstall, use `--purge-data` during the original uninstall. State retained by an uninstall without this option blocks a fresh installation and cannot be removed by running uninstall again later.

## Before you begin

* Download a current Proto Fleet release archive and matching `.sha256` file for each host architecture.
* Use the `fleet-ha` binary from the extracted release, not the copy inside the installation you are removing.
* Keep SSH access available.
* Leave Docker running; the uninstaller needs the Docker daemon.
* For a three-host reset, use [`fleet-ha status`](/fleet/high-availability/troubleshooting#read-ha-status) on both full Fleet hosts to identify the passive and active hosts.

The uninstaller supports intact HA installations. If installation-owned files are already missing or damaged, see [incomplete installations](/fleet/high-availability/troubleshooting#uninstall-reports-an-incomplete-installation).

## Remove the full cluster

Run the uninstaller in this order:

1. Witness (`ha-c`)
2. Passive Fleet host
3. Active Fleet host

Each invocation changes only the local host.

#### Verify and extract the release

The commands below use the ARM64 archive for `v0.2.10`. If you downloaded a different release or architecture, use those filenames instead.

On the host you are removing, verify and extract the archive:

```bash
cd /var/tmp
sha256sum --check proto-fleet-v0.2.10-arm64.tar.gz.sha256
mkdir -m 0700 proto-fleet-v0.2.10-uninstall
tar -xzf proto-fleet-v0.2.10-arm64.tar.gz \
  -C proto-fleet-v0.2.10-uninstall
cd proto-fleet-v0.2.10-uninstall
```

The extracted directory must contain `deployment/ha/fleet-ha`.

#### Run uninstall

To remove the runtime and keep cluster state:

```bash
sudo ./deployment/ha/fleet-ha uninstall
```

To prepare the host for a fresh guided installation:

```bash
sudo ./deployment/ha/fleet-ha uninstall --purge-data
```

#### Confirm the local removal

Review the detected node type (`witness` or `database`) and the list of data that will be kept or deleted. Type `UNINSTALL` to continue.

Wait for the command to finish before moving to the next host.

With `--purge-data`, the command deletes `/etc/proto-fleet/ha` and `/var/lib/proto-fleet/ha` only after local services and the HA firewall have stopped.

The uninstaller preserves:

* Docker and installed system packages
* Docker images and volumes
* Unrelated containers and firewall configuration
* Host networking and SSH access

After all three hosts are purged, you can run the [guided HA installation](/fleet/high-availability/install) again.