> For the complete documentation index, see [llms.txt](https://docs.unluckytech.com/unluckytech/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.unluckytech.com/unluckytech/knowledge-base/guides/virtual-private-servers-vps/cloudpanel-and-digital-ocean.md).

# CloudPanel & Digital Ocean

<figure><img src="/files/jxWeWM3y1wyvfMTsqfFW" alt=""><figcaption></figcaption></figure>

{% tabs %}
{% tab title="Video" %}

<figure><img src="/files/IiYmGm58oSeavNaCWmfm" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="References" %}

* <https://www.cloudpanel.io/docs/v2/introduction/>
  {% endtab %}

{% tab title="Related Videos" %}

{% endtab %}

{% tab title="Credits" %}
ME
{% endtab %}
{% endtabs %}

In this guide, we'll walk through the process of installing and configuring CloudPanel on DigitalOcean. With CloudPanel, you can efficiently manage multiple websites using a single interface equipped with essential day-to-day maintenance tools.

## Required Services

* [PorkBun](https://porkbun.com/) - Domain Registration
* [CloudFlare](https://www.cloudflare.com/) - DNS Provider
* [Digital Ocean](https://www.digitalocean.com/) - Virtual Private Server (VPS)

## The Plan

<figure><img src="/files/ChEHHOL5MLMtTgPmOfg5" alt=""><figcaption><p>Flowchart</p></figcaption></figure>

We'll start by purchasing a domain from [PorkBun ](https://porkbun.com/)and direct it to [Cloudflare ](https://www.cloudflare.com/)for DNS management. Then, we'll create a droplet on [DigitalOcean ](https://www.digitalocean.com/)and point our domain from [Cloudflare ](https://www.cloudflare.com/)to this droplet. [CloudPanel](https://www.cloudpanel.io/) will be installed on the droplet to manage everything, including websites, NGINX, Let's Encrypt certificates, and more. Essentially, all user traffic will be routed through [Cloudflare ](https://www.cloudflare.com/)to the droplet, where NGINX will handle redirection to the requested websites.

***

## Purchase Domain

Create a new account on [PorkBun ](https://porkbun.com/)and search for the domain you are interested in purchasing.

<figure><img src="/files/3j5b29I7LyJ7UaQIVMHW" alt=""><figcaption></figcaption></figure>

On [Cloudflare ](https://www.cloudflare.com/)select "Add a site" and follow the prompts to connect your new domain.

<figure><img src="/files/qzriZhcrE2QRybF2MQ97" alt=""><figcaption></figcaption></figure>

Once [Cloudflare ](https://www.cloudflare.com/)provides the NameServers return back to [PorkBun ](https://porkbun.com/)and replace whats shown with the ones from [Cloudflare](https://www.cloudflare.com/).

<figure><img src="/files/Rnq24EdRqZFqD26a11FW" alt=""><figcaption></figcaption></figure>

Usually this takes 1-2 hours to update and at the most takes 24 hours. Once completed you will then use [CloudFlare ](https://www.cloudflare.com/)for DNS.

***

## Create a Droplet

When deploying a [CloudPanel](https://www.cloudpanel.io/) Droplet, you have two options. You can either launch a droplet with [CloudPanel](https://www.cloudpanel.io/) preinstalled or manually install it yourself. I initially attempted to use the marketplace version, but encountered issues when needing to restart the server. Hence, in this tutorial, we'll opt for manual installation to avoid such interruptions.

{% hint style="info" %}
NOTE: You can either continue following the guide or refer to the official documentation [here](https://www.cloudpanel.io/docs/v2/getting-started/digital-ocean/installation/installer/) for the most up to date information.
{% endhint %}

### Launch a Droplet

1. Login to your [Digital Ocean](https://cloud.digitalocean.com/login) account.
2. In the left navigation, click on **Droplets** and then on **Create Droplet**.

### Choose Region

Select the region closest to you for the lowest latency.

<figure><img src="/files/113PbmN3anARzT3Ue0Dk" alt=""><figcaption></figcaption></figure>

### Choose an Image

Select **Ubuntu 22.04 (LTS) x64.**

<figure><img src="/files/VxbdWcC1t8cdFHr4lnoC" alt=""><figcaption></figcaption></figure>

### Choose Plan

Pick the plan you prefer. You can increase or decrease the CPU and RAM at anytime but Storage can ONLY be increased.

<figure><img src="/files/BOMMQiwKqa29HS7oCnKs" alt=""><figcaption></figcaption></figure>

### Authentication Method

Either create a new password or [create](https://docs.digitalocean.com/products/droplets/how-to/add-ssh-keys/) and add an SSH Key.

<figure><img src="/files/K9LEUkJQ9RA6i0A0sb28" alt=""><figcaption></figcaption></figure>

### Launch Droplet

Enter a hostname and select Create Droplet.

<figure><img src="/files/jG1iGPjiSRFruVg4jtLk" alt=""><figcaption></figcaption></figure>

***

## Assign a Reserved IP

A **Reserved IP** (static ip) is recommended to have the same IP after changing the size of your **Droplet**. From your droplet...

1. &#x20;Select "Enable now" next to **Reserved IP**.
2. &#x20;Click **Assign Reserved IP**.

<figure><img src="/files/yoJ6DVTgZmIgxiaVEscg" alt=""><figcaption></figcaption></figure>

***

## Install CloudPanel

Login via SSH to the Droplet

```
ssh root@IpAddress
```

Update & install prerequisites

```
apt update && apt -y upgrade && apt -y install curl wget sudo
```

Reboot your Droplet

```
reboot
```

Log back into the Droplet

```
ssh root@IpAddress
```

Run the Installer

```
curl -sS https://installer.cloudpanel.io/ce/v2/install.sh -o install.sh; \
echo "85762db0edc00ce19a2cd5496d1627903e6198ad850bbbdefb2ceaa46bd20cbd install.sh" | \
sha256sum -c && sudo CLOUD=do bash install.sh
```

{% hint style="info" %}
We are using MySQL for our websites. If you require an alternative then refer [here](https://www.cloudpanel.io/docs/v2/getting-started/digital-ocean/installation/installer/).
{% endhint %}

***

## Configure Cloudflare DNS

While [CloudPanel ](https://www.cloudpanel.io/)installs lets return back to [CloudFlare ](https://www.cloudflare.com/)and add a few DNS records that will point to our droplet.

1. From the left sidebar select **DNS** -> **Records**
2. Select **Add record** and input these three records.

<figure><img src="/files/0KtCHHCHZ3KPCWOSibbv" alt=""><figcaption></figcaption></figure>

* Type - **A** | Name - **cloud** | Target - **IpAddress**
* Type - **A** | Name - **@** | Target - **IpAddress**
* Type - **CNAME** | Name - **www** | Target - **DOMAIN**

{% hint style="danger" %}
Make sure you set **SSL/TLS encryption mode** to **FULL**. If you do not then you will not be able to access your website.
{% endhint %}

***

## Access CloudPanel

{% hint style="warning" %}
Access [**CloudPanel** ](https://www.cloudpanel.io/)as fast as possible to create the admin user. There is a small time window where bots can create the user.
{% endhint %}

You can now access [**CloudPanel** ](https://www.cloudpanel.io/)via Browser: **<https://yourIpAddress:8443>**

Ignore the self-signed certificate warning and click on **Advanced** and **Proceed** to continue to [**CloudPanel**](https://www.cloudpanel.io/).

***

## Create Admin

Follow prompts to create the admin for [CloudPanel](https://www.cloudpanel.io/). Note the admin is not a user created on the system it is only for [CloudPanel](https://www.cloudpanel.io/).

<figure><img src="/files/dn4s3IDUxbNpp37IBJsi" alt=""><figcaption></figcaption></figure>

***

## Add a WordPress Website

Once logged into [CloudPanel](https://www.cloudpanel.io/)...

1. select **+ADD SITE** -> **Create a WordPress Site**
2. Enter the necessary credentials.

<figure><img src="/files/IchKGtVEuYJChK6hFdaK" alt=""><figcaption></figcaption></figure>

Site User - The user where all of wordpress files will be delegated to. You can use this user to ssh into the droplet and access these files.

Admin User - The user you will use to access and configure wordpress.

Multisite - WordPress has the ability to manage multiple websites. Change this if you wish to do such.

Once created save the credentials for the wordpress site.

<figure><img src="/files/HJ8RrgM4AganugtTwwQZ" alt=""><figcaption></figcaption></figure>

***

## Let's Encrypt

[CloudPanel ](https://www.cloudpanel.io/)makes it simple to issue Let's Encrypt certificates. Select your website and head over to the **SSL/TLS** tab. From there select **Actions** -> **New Let's Encrypt Certificate**.

<figure><img src="/files/i84mJzd1Agaz0db9vxDm" alt=""><figcaption></figcaption></figure>

***

## Set CloudPanel Domain

Last thing we will do is make [CloudPanel ](https://www.cloudpanel.io/)accessible from our domain. Since we already defined cloud within our DNS records we are going to use that to access cloud panel. From the panel...

Admin Area -> Settings -> CloudPanel Custom Domain

<figure><img src="/files/0pGDB2qpuJ14dUXIIFvV" alt=""><figcaption></figcaption></figure>

&#x20;Now you can access [CloudPanel ](https://www.cloudpanel.io/)from your domain. **<https://cloud.domain.com>**

## Conclusion

Now you have CloudPanel installed and configured on a Droplet.
