> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.proto.xyz/fleet/fleet-node/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.proto.xyz/_mcp/server. # Fleet Node A Fleet Node connects a remote miner network to Proto Fleet. It runs beside the miners, discovers and controls them locally, and keeps an outbound connection to Fleet. Use a Fleet Node when the Fleet host cannot reach a miner network directly. Each miner is assigned to one Fleet Node after pairing. #### [Install and enroll a Fleet Node](/fleet/fleet-node/install-and-enroll) Install the service, confirm its identity, and connect it to Fleet. #### [Update a Fleet Node](/fleet/fleet-node/update) Install an exact release without changing the node's identity. #### [Uninstall a Fleet Node](/fleet/fleet-node/uninstall) Revoke access, remove the service, or prepare the host for reuse. #### [Troubleshoot a Fleet Node](/fleet/fleet-node/troubleshooting) Check enrollment, service health, connectivity, and discovery. ## How it works ```mermaid flowchart LR Fleet["Proto Fleet"] <-- "outbound connection" --> Node["Fleet Node"] Node --> Miners["Miners on the local network"] Browser["Operator browser"] --> Fleet ``` Fleet sends discovery, pairing, telemetry, and control work over the node's outbound connection. The node runs that work against its local miners and returns the results. You do not need to expose the Fleet Node or miner network to inbound internet traffic. If Fleet becomes unavailable, miners continue running with their last configuration. Commands and telemetry through that Fleet Node resume after the connection returns. ## Supported hosts Fleet Node supports Linux hosts with: * `systemd` * `amd64` or `arm64` architecture * Root access or `sudo` * Outbound HTTPS access to the Fleet server * Outbound HTTPS access to GitHub releases, unless you [install from staged files](/fleet/fleet-node/update#install-from-staged-files) * Network routes to the miners it will manage The host does not need Docker. The installer creates a dedicated `fleetnode` service account and installs the boot-managed service. ## Capacity planning | | Recommended maximum | Planning maximum | | ---------------------- | ------------------: | ---------------: | | Fleet Nodes per server | 1,000 | 2,000 | | Miners per Fleet Node | 2,000 | 4,000 | These are planning guidelines, not enforced limits. Actual capacity depends on hardware and workload. Do not multiply the two rows to estimate total miners per server. ## What to expect * The Fleet Node stores its enrollment identity on the host. * Fleet shows whether the node is online, stale, awaiting confirmation, revoked, or requires an update. * The service starts at boot and restarts after an unexpected process exit. * Fleet Node does not update itself or follow a release channel. An operator chooses and installs each exact release. * Multiple Fleet Nodes can connect to one Fleet deployment. Keep their miner assignments separate. Continue to [install and enroll a Fleet Node](/fleet/fleet-node/install-and-enroll). ## Docs - [Install and enroll](https://docs.proto.xyz/fleet/fleet-node/install-and-enroll.md) - [Update](https://docs.proto.xyz/fleet/fleet-node/update.md) - [Uninstall](https://docs.proto.xyz/fleet/fleet-node/uninstall.md) - [Troubleshooting](https://docs.proto.xyz/fleet/fleet-node/troubleshooting.md)