# Truebit Node Installation Guide

### System Requirements for a Truebit Node

Truebit Node is designed to run on cloud infrastructure (such as AWS or Google Cloud) or can alternatively be installed locally on your computer.

For **optimal uptime and reliability, cloud deployment is strongly recommended**. This approach ensures your verification node remains online 24/7 without the stability risks of running it on a personal machine. For cost-effective deployment, a cloud provider's free tier is an acceptable option.

#### **Creating a FREE Tier Cloud instance**

If you're new to cloud deployment, these official guides will help you create a compatible VM:

* AWS: [Launch an EC2 t3.small instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html)
* Google Cloud: [Create an e2-micro VM](https://cloud.google.com/compute/docs/create-linux-vm-instance)

**Note**: Select Ubuntu 22.04 LTS or later as your OS, then install Docker using the [official installation guide](https://docs.docker.com/engine/install/ubuntu/).

## Prerequisites

* **Wallet Address — Ethereum-Compatible (EVM)**

{% hint style="danger" %}
Create a **new** wallet address — **don’t use an existing one**. You’ll need to share its **private key** with the node, so it must be used **only** for this server.
{% endhint %}

***Why:** this keeps your personal funds safe and ensures you stay in control if the server is lost or replaced.*

**Steps:**

1. Create a new wallet with [MetaMask](https://metamask.io) or [MyCrypto](https://www.mycrypto.com).
2. Export and securely store the **private key**.
3. Use this wallet **only** for running the node.

* **AVAX balance:** The node operator pays for the Avalanche Gas used in registration and de-registration transactions.
* **$TRU stake:** Running a Truebit node requires **2,000 TRU tokens** to be staked. This stake is essential for the **slashing and reward mechanism** that ensures honest participation and secure verification.

{% hint style="success" %}
We run a limited-capacity **Stake Sponsorship Program** to support selected node operators.\
If you’d like to be considered for an invitation, please submit your request via <http://forms.truebit.io/>
{% endhint %}

## Setup The Truebit Node

### Create Docker-compose.yml File

Create a new file named **`docker-compose.yml`** and paste the configuration below.

{% hint style="success" %}
You can use any plain-text editor — for example: `nano docker-compose.yml` or `vim docker-compose.yml`
{% endhint %}

```yaml
name: truebit_runner_node
services:
  runner-node:
    image: truebitprotocol/runner-node:prod
    platform: linux/amd64
    container_name: runner-node
    pull_policy: always
    stop_signal: SIGINT
    stop_grace_period: 30s
    environment:
      - RABBITMQ_URL=amqps://runneruser:X4uj1hbWc79vZ6@tcp.truebit.network:30010/truebit-nextgen
      - FILESYSTEM_URL=https://prod-minio.truebit.network
      - FILESYSTEM_ACCESS_KEY=eHSCx431M1khHMc
      - FILESYSTEM_SECRET_KEY=6DnIQrM2wIyY09rT
      - PRIVATE_KEY= (to be added by the user)

```

Replace the `PRIVATE_KEY` field with your own private key that has already been staked with $TRU.

{% hint style="success" %}
If your private key starts with `0x`, **remove the `0x` prefix** before pasting it.
{% endhint %}

### Start Truebit Node

```bash
docker compose -f docker-compose.yml up -d 
```

### Node status

Use these checks right after you start the node.

#### Check the container is running

```bash
docker compose -f docker-compose.yml ps
```

You should see `runner-node` in a `running` state.

#### Watch the node logs

```bash
docker logs runner-node -f
```

Use this to confirm the node connects to the network and stays online.

#### Confirm the node is registered on-chain

On startup and shutdown, the node registers and de-registers via the [Node Registry smart contract](/architecture/audit-layer.md#node-registry-smart-contract).

For a quick UI check (registration + recent slashing history), use: [Node Status](/verifying-truebit-tasks/node-status.md).

{% hint style="info" %}
The node address is the EVM address derived from the `PRIVATE_KEY` you configured.
{% endhint %}

If you need to stop your Truebit Verification Node, run the following command:

```bash
docker compose -f docker-compose.yml down -v
```

If you want, you can check the logging command by executing this:

```bash
docker logs <CONTAINER_NAME> 
```

```bash
docker logs <CONTAINER_NAME> -f
```

{% hint style="info" %}
**IMPORTANT!** For reliable node operation, **you must use** `docker compose down` when performing a shutdown. Any other shutdown method may cause **registration inconsistencies**. If the Node fails to properly de-register, and the Hub subsequently assigns it a task, the Node will be **forcibly de-registered** after failing to respond.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://devs.truebit.io/verifying-truebit-tasks/truebit-node-installation-guide.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
