---
title: Servers
description: Joining your own hardware to Futrou Cloud as a private region.
---

## Introduction

A **server** is a single machine — physical or virtual — that you join to your workspace to run Futrou services on your own hardware, alongside or instead of Futrou's public regions. Joining a server creates a **private region**: a region only your workspace can see and use, backed by the machine(s) you've joined to it.

Under the hood, a server runs [Futrou Nasua](/docs/nasua/), the same orchestrator that powers Futrou's public regions — starting containers, routing proxy traffic, answering DNS, issuing certificates. Joining a server to Futrou Cloud doesn't change what it runs, only who's managing it: instead of operating Nasua standalone through its own dashboard, it shows up in your workspace next to everything else.

:::note
Servers is a workspace feature gated behind a feature flag and may not be enabled for every workspace yet. If the **Servers** page isn't available in your dashboard, contact support to have it enabled.
:::

Don't confuse a **server** with a **serverlet** — a server is the machine; a serverlet is the container workload that runs on it (or on Futrou's own machines in a public region). See [Serverlet](/docs/serverlet/) for the compute unit, and [Regions](/docs/regions/) for how regions tie servers to the rest of your services.

## Adding a server

From your workspace's **Servers** page, click **Add Server** and give it a name. Creating a server also creates a matching private region behind the scenes — you don't create the region separately.

Once created, Futrou shows a join command:

```bash
wget -O - https://downloads.futrou.com/nasua/install.sh | bash -s
nasua cloud join --api-url https://api.futrou.com <join-token>
```

Run it on the machine you want to join. It installs Futrou Nasua and uses the **join token** to register the machine with your workspace and connect it to the region that was created for it. The join token is shown once, at creation — if you lose it, reset it from the server's page to generate a new one.

A server needs a publicly reachable API host and port to join successfully; Futrou falls back to the request's public IP if the machine reports a local address like `0.0.0.0` or `127.0.0.1`.

## Server status

| Status | Meaning |
| --- | --- |
| Pending | Created, but hasn't joined yet — waiting for `nasua cloud join` to run. |
| Online | Joined and reachable. |
| Degraded | Joined, but not fully healthy. |
| Offline | Joined previously, but currently unreachable. |

## Visibility

A server (and its region) is **private** by default, visible only to your workspace. Only Futrou staff can mark a region **public**, making it available to every workspace as one of Futrou's own regions — this isn't something a workspace can do for its own servers.

## Managing a server

From a server's page you can:

- View its **name**, **region**, and connection details.
- View **CPU, RAM, disk, IO, and network metrics** across multiple time windows.
- Stream and search **logs** — for the server itself, or scoped to a specific DNS zone, proxy, or serverlet running on it.
- Open a browser-based **console** for a shell on the machine, no SSH client required.
- **Reset the join token**, which also disconnects the machine until it joins again with the new token.
- **Delete** the server entirely, removing it (and its region, if no other servers remain in it) from the workspace.

A joined server can also remove itself from the workspace using its own API credentials (the `leave` action), which clears its connection details without deleting the server record.

## Clustering

A region can hold more than one server. When it does, Nasua treats them as **peers** and can fail over API requests between them — if one server in a region is unreachable, requests can be served by another.

## Permissions

Adding or managing a server requires the **Administrator** role or higher in the workspace; viewing servers requires at least **Viewer**. See [Roles](/docs/members/) for what each role can do.