# Deploy with Docker for VPS Cloud or VM with External Bucket

For this scenario, similar to the previous section, extra variables related to the configuration of an External Storage Bucket (Object Storage) are considered.

> <mark style="color:red;">Note: If working on a VPS with a Public IP, it is mandatory that the instance has a network interface associated with a Private IP.</mark>

To do this, within the Linux Host we will use the **first\_boot\_installer.sh** script from our repository and give it execution permissions with the following command:

```
curl -o first_boot_installer.sh -L "https://gitlab.com/omnileads/omldeploytool/-/raw/main/docker-compose/first_boot_installer.sh" && chmod +x first_boot_installer.sh
```

Finally, we will consider the definition of the Object Storage to be used based on the variables **BUCKET\_URL** (URL of the external bucket), **BUCKET\_ACCESS\_KEY** and **BUCKET\_SECRET\_KEY** (for access credentials), **BUCKET\_REGION** (for the region), and **BUCKET\_NAME** (for the bucket name defined in the cloud provider). Additionally, we need to specify whether we will use Wombat Dialer for configuring the Predictive Dialer service or install OMniLeads without this component. We also need to set the **NIC** variable to parametrize the private network interface that the platform will use for internal component communication, for example: "eth0".

Before running the installation, it is important to specify the working scenario. If using a VPS, the environment to configure will be "cloud," and it will be "lan" if using a Virtual Machine. We will define the environment variable **ENV** accordingly: "cloud" or "lan."

Digital Ocean's Object Storage service

Depending on whether we use the Dialer service, we will now proceed to install our Contact Center Suite, using the following example as a reference.:

* With Dialer:

```
export NIC=eth1 ENV=cloud BUCKET_URL=https://sfo1.digitaloceanspaces.com BUCKET_ACCESS_KEY=mbXUfdsjlh3424R9XY BUCKET_SECRET_KEY=iicHG76O+CIbRZ432iugdsa BUCKET_REGION=NULL BUCKET_NAME=curso-oml && ./first_boot_installer.sh
```

* No Dialer:

```
export NIC=eth1 ENV=cloud BUCKET_URL=https://sfo1.digitaloceanspaces.com BUCKET_ACCESS_KEY=mbXUfdsjlh3424R9XY BUCKET_SECRET_KEY=iicHG76O+CIbRZ432iugdsa BUCKET_REGION=NULL BUCKET_NAME=curso-oml DIALER_HOST=X.X.X.X DIALER_USER=demo DIALER_PASS=demoadmin && ./first_boot_installer.sh
```

Where **DIALER\_HOST** refers to the LAN IP address of the dialer, **DIALER\_USER** and **DIALER\_PASS** represent the default username and password of the Third Party App.

[Wombat Dialer Installation Guide](https://www.wombatdialer.com/installation.jsp)

Note: Remember that if you want to implement Wombat Dialer in this scenario, you will need a VM/VPS to install the dialer and then configure it to work with OMniLeads. More information in the following link.

In any case, we can proceed to stop the services or start them again using Docker-Compose instructions. \
Once the installation process is completed, the installation script will start the application and provide us with initial login access.

```
$ docker-compose -f docker-compose_prod_external_bucket.yml down #Para bajar los containers.
$ docker-compose -f docker-compose_prod_external_bucket.yml up -d #Para levantar los containers.
```

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

For more information, we suggest visiting the project's official repository documentation, where you can review the necessary steps to gain initial access to the UI as an Administrator. See the First Login section for more details.


---

# 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.omnileads.net/english/omnileads-installation-methods/deploy-using-docker/deploy-with-docker-for-vps-cloud-or-vm-with-external-bucket.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.
