---
description: >-
The following tutorial shows how to create a server ready for hosting Ocean
Protocol's components.
---
# Setup a Server
Each deployment of the Ocean components starts with setting up a server on which these will be installed, either on-premise or hosted in a cloud platform.
## Prerequisites
For simple configurations:
* Operating System: Linux distribution supported by the Docker Engine and Docker Compose products. Please refer to these links for choosing a compatible operating system: [Docker Compose supported platforms](https://docs.docker.com/desktop/install/linux-install/); [Docker Engine supported platforms](https://docs.docker.com/engine/install/).
For complex configurations:
* Operating System: Linux distribution supported by Kubernetes and Docker Engine. Please refer to this link for details: [Kubernetes with Docker Engine](https://kubernetes.io/docs/setup/production-environment/container-runtimes/#docker).
## Server Size
The required CPU and memory for the server depend on the number of requests the component is expected to serve, however, the minimum configuration of the server is:
* 1 core
* 1 GB RAM
## Steps
The steps for setting up a server on which to deploy the Ocean components are the following:
For simple configurations:
1. [Install the operating system](setup-server.md#install-the-operating-system)
2. [Install Docker Engine and Docker Compose](setup-server.md#install-docker-engine-and-docker-compose)
For complex configurations:
1. [Install the operating system](setup-server.md#install-the-operating-system)
2. [Install Kubernetes with Docker Engine](setup-server.md#install-kubernetes-with-docker-engine)
### Install the operating system
As mentioned earlier, you can use either an on-premise server or one hosted in the cloud (AWS, Azure, Digitalocean, etc.). To install the operating system on an on-premise server, please refer to the installation documentation of the operating system.
If you choose to use a server hosted in the cloud, you need to create the server using the user interface provided by the cloud platform. Following is an example of how to create a server in Digitalocean.
#### Example: Create an Ubuntu Linux server in the Digitalocean cloud
1. Create an account and set billing
Go to [https://www.digitalocean.com/](https://www.digitalocean.com/) and create an account. Provide the appropriate information for billing and accounting.
2. Create a server
Click on **`Create`** button and choose **`Droplets`** options from dropdown.
3. Select a server configuration
Select Ubuntu OS, and choose a plan and a configuration.
###
4. Select the region and set the root password
Select the region where you want the component to be hosted and a root password.
5. Finish the configuration and create the server
Specify a hostname for the server, specify the project to which you assign the server, and then click on `Create Droplet.`
6. Access the server's console
After the server is ready, select the `Access console` option from the dropdown list to open a terminal window.
### Install Docker Engine and Docker Compose
From the terminal window, run the following commands to install Docker and Docker Compose.
```bash
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg lsb-release
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
# Now install docker-compose
sudo apt-get update
sudo apt-get install docker-compose-plugin
```
### Install Kubernetes with Docker Engine
Kubernetes is an orchestration engine for containerized applications and the initial setup is dependent on the platform on which it is deployed - presenting how this product must be installed and configured is outside the scope of this document.
For cloud deployment, most of the cloud providers have dedicated turnkey solutions for Kubernetes. A comprehensive list of such cloud providers is presented [here](https://kubernetes.io/docs/setup/production-environment/turnkey-solutions/).
For an on-premise deployment of Kubernetes, please refer to this [link](https://kubernetes.io/docs/setup/).
Now that the execution environment is prepared and the prerequisites installed, we can proceed to deploy the Ocean's components.