> For the complete documentation index, see [llms.txt](https://docs.starlightnode.com/services/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.starlightnode.com/services/testnets/nulink/horus-2-node.md).

# Horus 2 node

Server specifications

<table><thead><tr><th width="317">Specification</th><th>Requirement</th></tr></thead><tbody><tr><td>CPU</td><td>2+ VCPU</td></tr><tr><td>RAM</td><td>4+ GB</td></tr><tr><td>Storage</td><td>40+ GB SSD</td></tr><tr><td>UBUNTU</td><td>20</td></tr></tbody></table>

**Installing essentials components**&#x20;

Before diving into the installation of your node, it's essential to update your VPS. To do this, simply run the following command in your VPS terminal :

```
sudo apt-get update && sudo apt-get upgrade -y
```

### Installing Docker

Run the following command in your terminal :

```
sudo apt install docker.io 
```

Check that Docker has been correctly installed :

```
docker --version 
```

### Installing Geth

Geth is a command-line tool for running a node.

```
wget https://gethstore.blob.core.windows.net/builds/geth-linux-amd64-1.13.8-b20b4a71.tar.gz
```

Extract the file :

```
tar -xvzf geth-linux-amd64-1.13.8-b20b4a71.tar.gz
```

Enter the Geth folder, and create your EVM wallet:

cd geth-linux-amd64-1.13.8-b20b4a71 ./geth account new --keystore ./keystore

Enter a password and keep it to one side, as you'll need it later. A wallet address will also be generated. Keep it to one side too.

### Installing Nulink

Get the NuLink image docker :

```
cd docker pull nulink/nulink:latest
```

Create a Nulink folder

```
cd /root mkdir nulink
```

Copy your private keys folder into the NuLink folder:

```
cp /root/geth-linux-amd64-1.13.8-b20b4a71/keystore/* /root/nulink
```

Give all permissions to your NuLink folder:

```
chmod -R 777 /root/nulink
```

### Node configuration&#x20;

You'll start by defining a password for your operator.&#x20;

```
export NULINK_KEYSTORE_PASSWORD=<YOUR_PASSWORD>
```

In the next command, enter the password you created in the previous step :

```
export NULINK_OPERATOR_ETH_PASSWORD=<YOUR_PASSWORD>
```

In the next command, enter the EVM wallet you generate in the previous step :

```
export WALLET=<YOUR_WALLET>
```

In the next command, enter the Keystore name you generate in the previous step :

```
export KEYSTORE=<YOUR_KEYSTORE>
```

### Node initialisation

Run the command :

```
docker run -it --rm \
-p 9151:9151 \
-v /root/nulink:/code \
-v /root/nulink:/home/circleci/.local/share/nulink \
-e $NULINK_KEYSTORE_PASSWORD \
nulink/nulink nulink ursula init \
--signer keystore:///code/$KEYSTORE \
--eth-provider https://data-seed-prebsc-2-s2.binance.org:8545 \
--network horus \
--payment-provider https://data-seed-prebsc-2-s2.binance.org:8545 \
--payment-network bsc_testnet \
--operator-address $WALLET \
--max-gas-price 10000000000
```

This will generate a seed phrase. Keep it safe.

### Node laucnh

Run your node with the following command :

```
docker run --restart on-failure -d \
--name ursula \
-p 9151:9151 \
-v /root/nulink:/code \
-v /root/nulink:/home/circleci/.local/share/nulink \
-e $NULINK_KEYSTORE_PASSWORD \
-e $NULINK_OPERATOR_ETH_PASSWORD \
nulink/nulink nulink ursula run --no-block-until-ready
```

### Check the log

```
docker logs -f ursula
```
