--- 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.

Select Droplet

3. Select a server configuration Select Ubuntu OS, and choose a plan and a configuration.

Configure the server

### 4. Select the region and set the root password Select the region where you want the component to be hosted and a root password.

Select the region and set the 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.`

Finalize and create the server

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.

Access the server's console

### 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.