# 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](https://docs.rairprotocol.org/rairprotocol/installation-and-testing/getting-started/rairlite-single-vm/windows-wsl-installation) 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="https://3641609714-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5tYv0KixTaiEIz5F9uBB%2Fuploads%2FuihSNOVBOEeEX0omIdEI%2Fiamges.png?alt=media&#x26;token=e3500c77-ff4d-4dd9-8531-40bcc2b92545" 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="getting-started/rairlite-single-vm">rairlite-single-vm</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="getting-started/raircloud-cloud-enabled">raircloud-cloud-enabled</a></td><td></td></tr></tbody></table>
