# Set up and Connect a node manually

{% hint style="warning" %}
Before proceeding, please make sure that your machine meets the hardware and software [node requirements](/intro/build/node-requirements.md).
{% endhint %}

{% hint style="info" %}
At the end of this guide, the JuneoGo process should remain running in the background on your server (e.g. as a service), which is not demonstrated in this guide. If you are less experienced with this and with the linux operating system in general, we suggest using our [Docker guide](/intro/build/set-up-and-connect-a-node-with-docker.md).
{% endhint %}

{% hint style="info" %}
For experienced linux users who wish to set up JuneoGo automatically, we suggest following the [Installation Script JuneoGo setup guide](/intro/build/set-up-and-connect-a-node.md).
{% endhint %}

### Setup and Connect a node to the Mainnet[​](https://docs.avax.network/nodes/build/run-avalanche-node-manually#run-an-avalanche-node) <a href="#run-an-avalanche-node" id="run-an-avalanche-node"></a>

First, you should transfer the project files found [here](https://github.com/Juneo-io/juneogo-binaries) to your server. If you have [git](https://git-scm.com/) installed on your server, you may execute the following commands:

```bash
cd ~

git clone https://github.com/Juneo-io/juneogo-binaries
```

The required files will now be found in the `juneogo-binaries` folder in your home directory.

#### Configuring the initial binary files

{% hint style="warning" %}
Do not execute the *preparation.sh* or *simple\_setup.sh* scripts found inside the juneogo-binaries directory. These are intended to only be used when following the [Install Script JuneoGo setup guide](/intro/build/set-up-and-connect-a-node.md)
{% endhint %}

{% hint style="warning" %}
If you previously ran a node on the Socotra Testnet, updating the binaries will bring you directly on Mainnet. &#x20;
{% endhint %}

The binary files required to run JuneoGo are:

1. juneogo
2. jevm
3. srEr2XGGtowDVNQ6YgXcdUb16FGknssLTGUFYg7iMqESJ4h8e

To grant execution permissions of the binary files, please execute the following commands:

```bash
chmod +x ~/juneogo-binaries/juneogo
chmod +x ~/juneogo-binaries/plugins/jevm
chmod +x ~/juneogo-binaries/plugins/srEr2XGGtowDVNQ6YgXcdUb16FGknssLTGUFYg7iMqESJ4h8e
```

After this, the *juneogo* binary should be moved to the home directory. The remaining two binaries should be moved to the `~/.juneogo/plugins` directory.

To do so, please execute the following commands:

```bash
mv ~/juneogo-binaries/juneogo ~

mkdir -p ~/.juneogo/plugins

mv ~/juneogo-binaries/plugins/jevm ~/.juneogo/plugins
mv ~/juneogo-binaries/plugins/srEr2XGGtowDVNQ6YgXcdUb16FGknssLTGUFYg7iMqESJ4h8e ~/.juneogo/plugins
```

The structure of your **home directory** should resemble the following:

```bash
├── juneogo
├── .juneogo/
│   ├── plugins/
│   │   └── jevm
│   │   └── srEr2XGGtowDVNQ6YgXcdUb16FGknssLTGUFYg7iMqESJ4h8e
```

{% hint style="warning" %}
If these files are structured differenty than above, you will not be able to connect your node.
{% endhint %}

You may now connect the node to the network by executing the juneogo binary with the following command:

For Mainnet use :

```sh
./juneogo
```

For Socotra Testnet use :

```sh
./juneogo --network-id="socotra"
```

This will start fetching blocks and bootstrapping your node.

{% hint style="warning" %}
Please make sure this process keeps running in the background. If the execution of the juneogo executable stops, your node will be inactive.
{% endhint %}

You may check if the node has boostrapped with the following call:

```sh
curl -X POST --data '{
    "jsonrpc":"2.0",
    "id"     :1,
    "method" :"info.isBootstrapped",
    "params": {
        "chain":"JUNE"
    }
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/info
```

Example response:

```
{
  "jsonrpc": "2.0",
  "result": {
    "isBootstrapped": true
  },
  "id": 1
}
```

After the bootstrapping process has completed, you may proceed to the next step - [add a node to the Validator Set](/intro/validate/add-a-validator.md).


---

# 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://docs.juneo.com/intro/build/set-up-and-connect-a-node-manually.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.
