# Getting Started

{% hint style="info" %}
Want to run RAIRprotocol in less than 20 minutes? Make sure you have&#x20;

**-Ubuntu 24.04, 8gb ram, 20gb storage** on your target machine&#x20;

-**Root access** with your username and password to run sudo&#x20;
{% endhint %}

## Full Video Tutorial

{% embed url="<https://www.youtube.com/watch?v=s8qEkEWAUqg>" %}

## Getting your environment ready for RAIRprotocol

RAIRprotocol is easy to deploy with Docker and Docker Compose. See our WSL guide [here](/rairprotocol/installation-and-testing/getting-started/rairlite-single-vm/windows-wsl-installation.md) to run Ubuntu on your Windows machine.&#x20;

1. **On any Ubuntu 24.04 machine first install Docker Dependencies**

-First **update** your machine

```
sudo apt update
```

-Then **add dependencies**

```
sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release
```

-Then **add keys**

```
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
```

```
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
```

-**Update** one more time

```
sudo apt-get update
```

2. **Install Docker Itself**

Just one line to **Install Docker**!

```
sudo apt-get install docker-ce docker-ce-cli containerd.io
```

2. **Install Docker Compose (latest version)**

-Now we need to **install Compose** to run our app with a single command

```
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
```

-then make Docker Compose **executable**

<pre><code><strong>sudo chmod +x /usr/local/bin/docker-compose
</strong></code></pre>

***

3. **Git Clone our Repo!**&#x20;

-If you need **Git** run this first

```
sudo apt install git-all
```

-Then **clone** our whole repo with one command! Note this is \~500mb.

```
git clone https://github.com/rairprotocol/rair-dapp.git
```

## Deploying RAIRprotocol

You made it! Now that Docker and Compose are installed on our Ubuntu machine.. running RAIRprotocol is a snap!

1. **Copy env** and run default compose file

-Navigate to rair-dapp directory. Should be in the main folder&#x20;

```
cd rair-dapp
```

-Then copy the sample environment file *.env.sample* to *.env*

```
cp .env.sample .env
```

-And one more time for the frontend environment variables

```
cp rair-front/.env.sample rair-front/.env
```

**Starting the system**

{% hint style="info" %}
Make sure you have **copied your env** to both rair-dapp and rair-front **first before running**! If you try to run the system before copying the env your database will be corrupted. Just in case this happens you can run "sudo rm -rf dev" to delete the database, then try again.
{% endhint %}

```
sudo docker-compose -f docker-compose-web.yml up -d
```

**Making sure system is up**

```
sudo docker ps -a
```

Output of above command should list all the services in running status. For example:

```
CONTAINER ID   IMAGE                   COMMAND                  CREATED          STATUS         PORTS                                                                                  NAMES
8e94675ec590   rair-dapp_rair-sync     "docker-entrypoint.s…"   8 seconds ago    Up 7 seconds   0.0.0.0:5001->5001/tcp, :::5001->5001/tcp                                              rair-sync
3cc32d0e0917   rair-dapp_rair-front    "/docker-entrypoint.…"   8 seconds ago    Up 7 seconds   0.0.0.0:8088->80/tcp, :::8088->80/tcp                                                  rair-front
cf24312bb570   rair-dapp_rair-node     "docker-entrypoint.s…"   9 seconds ago    Up 8 seconds   0.0.0.0:3000->3000/tcp, :::3000->3000/tcp, 0.0.0.0:5000->5000/tcp, :::5000->5000/tcp   rair-node
dbb19e620b4f   mongo                   "docker-entrypoint.s…"   10 seconds ago   Up 9 seconds   0.0.0.0:27017->27017/tcp, :::27017->27017/tcp                                          mongo
8c9114b97dba   rair-dapp_rair-stream   "docker-entrypoint.s…"   10 seconds ago   Up 9 seconds   0.0.0.0:5002->5002/tcp, :::5002->5002/tcp                                              rair-stream
3f2106ec0103   redis                   "docker-entrypoint.s…"   10 seconds ago   Up 9 seconds   0.0.0.0:6379->6379/tcp, :::6379->6379/tcp 
```

**Stopping the system**

This command stops all running Docker images. Do this before closing your terminal to make sure everything is properly shut down.&#x20;

```
sudo docker-compose -f docker-compose-web.yml down
```

**Check logs**

Run below command to check **logs** of any service.

```
sudo docker logs -n 100 <CONTAINER ID>
```

Container ID can be obtained from output of *sudo docker ps -a*  command

**Remove installation**&#x20;

Try below command if you want to remove existing installation (docker images, docker containers, database etc.)

```
sudo ./rair-infra/commands/local-env-purge.sh
```

## Updating RAIRprotocol

{% hint style="info" %}
To pull the latest images to get the latest code use these commands
{% endhint %}

**Git pull** to pull the latest code

```
git pull
```

**Check existing images**

```
sudo docker images -a
```

<figure><img src="/files/aAnUV9WO5TesKbb4KV9q" alt=""><figcaption><p>Will look like this (note the image ID hash)</p></figcaption></figure>

**Delete images** (paste in your image ids)

*Looks like this "sudo docker rmi e776960ffc67 18eb7403282e 60e0ddd7a2ae d8f1b061718c"*

```
sudo docker rmi <IMAGE ID>
```

**Delete containers**

```
sudo docker system prune
```

**Run the up command!** You're all up to date!

```
sudo docker-compose -f docker-compose.local-new.yml up -d
```

## Next Steps

**Please follow our Github at** [**https://github.com/rairprotocol** ](https://github.com/rairprotocol)**star our repo and fork!** See full deployment guides below.&#x20;

{% hint style="info" %}
Now that you have Docker installed, it's basically one command to run the docker compose YAML file after replacing a few API key variables in the sample.env&#x20;
{% endhint %}

<table data-card-size="large" data-view="cards" data-full-width="false"><thead><tr><th></th><th></th><th></th><th data-hidden></th><th data-hidden data-card-cover data-type="files"></th><th data-hidden data-card-target data-type="content-ref"></th><th data-hidden></th></tr></thead><tbody><tr><td><strong>RAIRlite</strong></td><td>Simplest way to run RAIRprotocol. A basic deployment that runs on localhost or a single cloud VM.</td><td><ul><li>Fully functional NFT marketplace</li><li>Configurable frontend UI/UX </li><li>Metamask based</li></ul></td><td></td><td></td><td><a href="/pages/mP8AjzLXkvrEJWg0nWTg">/pages/mP8AjzLXkvrEJWg0nWTg</a></td><td></td></tr><tr><td><strong>RAIRcloud</strong></td><td><p>A fully-featured, secure, and scalable version for deployment to a Kubernetes-enabled cloud environment. </p><ul><li>Filebase IPFS storage</li><li>Web3Auth powered Smart Accounts</li><li>GCP support</li><li>MongoDB Atlas Support </li><li>Hashicorp Vault support</li><li>Gasless resales</li><li>Alchemy-Powered Syncing Engine</li><li>and more!</li></ul></td><td></td><td></td><td></td><td><a href="/pages/GRHqIUpLdwJMZ9keeziL">/pages/GRHqIUpLdwJMZ9keeziL</a></td><td></td></tr></tbody></table>


---

# 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.rairprotocol.org/rairprotocol/installation-and-testing/getting-started.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.
