> 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.

# Install and enroll a Fleet Node

Install Fleet Node on a Linux host that can reach both Proto Fleet and the miners it will manage. Enrollment confirms the host's identity before Fleet gives it access.

## Before you begin

Confirm that you have:

* A [supported Linux host](/fleet/fleet-node#supported-hosts)
* `curl`, `tar`, and `sha256sum` on the host
* Network access from the host to Fleet and the miners
* A Proto Fleet account with permission to manage Fleet Nodes
* The exact release tag used by your Fleet deployment

Open [Proto Fleet releases](https://github.com/block/proto-fleet/releases) and confirm that the release includes `install-fleet-node.sh` plus a Fleet Node archive for your host architecture.

#### Install the release

Set `VERSION` to your Fleet release tag. This example uses `v0.3.1-rc.6`:

```bash
VERSION=v0.3.1-rc.6
bash <(curl -fsSL "https://github.com/block/proto-fleet/releases/download/${VERSION}/install-fleet-node.sh") "${VERSION}"
```

The installer detects `amd64` or `arm64`, downloads the matching archive, and verifies its SHA-256 checksum. A new installation remains stopped until enrollment finishes.

#### Start enrollment in Fleet

In Fleet, open **Settings → Nodes** and select **Enroll node**.

Fleet displays a command for this deployment and a one-time enrollment code. Keep the enrollment window open.

#### Run the enrollment command

On the Fleet Node host, run the command shown in Fleet. It will look like:

```bash
sudo fleetnode-enroll --server-url=https://fleet.example.com/api-proxy
```

Paste the one-time enrollment code when prompted. The command registers the host and prints its node name and identity fingerprint.

For HTTPS, the Fleet Node host must trust the certificate presented by Fleet. If you use Proto Fleet high availability with its local service certificate, install the verified [public service CA](/fleet/high-availability/install#verify-and-trust-the-public-service-ca) on the Fleet Node host first.

#### Confirm the node identity

Fleet advances to **Confirm the node** after registration.

Compare the identity fingerprint in Fleet with the fingerprint printed on the Fleet Node host. Select **Confirm node** only when they match.

A different fingerprint means another host used the enrollment code. Reject the node and start again with a new code.

#### Finish enrollment

Fleet displays the API key once. Copy it into the waiting prompt on the Fleet Node host.

The enrollment helper saves the credentials, turns on start at boot, and starts `fleet-node.service`.

#### Verify the connection

On the Fleet Node host, run:

```bash
cat /opt/fleetnode/version.txt
sudo systemctl status fleet-node.service --no-pager
```

In **Settings → Nodes**, confirm that the node shows **Online**. You can now discover and pair miners through this node.

The copied command may include `--allow-insecure-transport` when you opened Fleet over HTTP on a local network. Use HTTP enrollment only on a trusted network. Use HTTPS for a Fleet server reached through an untrusted network.

If enrollment stops before completion, keep the Fleet window open and see [resume an interrupted enrollment](/fleet/fleet-node/troubleshooting#resume-an-interrupted-enrollment).