# Installation within a Docker container

{% tabs %}
{% tab title="Docker Desktop (manual)" %}

## Deployment <a href="#installation_process" id="installation_process"></a>

1. Download **Xopero ONE Management Service** (**XMS**) [**Docker** image](https://xopero.com/download/xopero_one/latest/management-image.tar) to your device. Next, open **cmd** console and pull **XMS** **Docker** image using the following command:

```docker
docker load -i docker_name.tar
```

{% hint style="danger" %}
Replace `docker_name.tar` with the name of your **XMS Docker** image file.
{% endhint %}

2. Once the **Docker** image is imported, use the following command to create a container:

```docker
docker run -d \
  --name <container_name> \
  -p <xms_port>:80 \
  -v <database_location_outside_container>:/app/Xopero \
  xopero/xopero-one-service
```

{% hint style="warning" %}
In the above command, replace **drive\_location\_database** with the location to mount the database on (from the container to the local directory) — <mark style="color:red;">**this is important for upgrading the container later**</mark>. In place of **container\_name**, enter the name of your container and in place of **service\_port**, enter the service port which will be used by **Xopero ONE** (by default, **XMS** port is set to 28555).
{% endhint %}

{% code title="Example:" overflow="wrap" %}

```docker
docker run -d \
  --name xone \
  -p 28555:80 \
  -v C:\database_docker\xone:/app/Xopero \
  xopero/xopero-one-service
```

{% endcode %}

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

4. Next, use the following command to view the list of containers (or view the list in **Docker Desktop**):

```docker
docker ps -a
```

<figure><img src="/files/v73okeYT4BKXxj1BVwks" alt="viewing the container list"><figcaption></figcaption></figure>

<figure><img src="/files/CuylefLzNZ1S3W5HNPFU" alt="Docker GUI"><figcaption></figcaption></figure>

5. If you see no errors, that means the **XMS** implementation was done correctly. You can open the **Xopero ONE Management Service** web panel using the following address:

```http
http://DockerHostAddress:28555
```

6. Before you start using **XMS** you must create an administrator account and assign a license to your unit.

<figure><img src="/files/n9jrMqS6qnu6Irvb07h7" alt="" width="563"><figcaption></figcaption></figure>
{% endtab %}

{% tab title="QNAP NAS (CS > 3.0)" %}

<p align="center"><a href="#pre-qnap" class="button primary" data-icon="circle-1">Prerequisites</a>    <a href="#env-qnap" class="button primary" data-icon="circle-2">Environment setup</a>    <a href="#dep-qnap" class="button primary" data-icon="circle-3">Deployment</a></p>

## Prerequisites <a href="#pre-qnap" id="pre-qnap"></a>

**QNAP** with:

* x86 or x64 CPU (ARM is <mark style="color:red;">**not supported**</mark>)
* minimum 2GB of RAM
* **Container Station** app from the **App Center**

***

## Environment setup <a href="#env-qnap" id="env-qnap"></a>

1. Login to your **QNAP** web panel and open the **App Center** application. Go to **QNAP Store** > **All Apps** and search for **Container Station** (**CS**).

<figure><img src="/files/jJwuvdmfXt7Z2urwyCcp" alt="Selecting Container Station"><figcaption></figcaption></figure>

2. Download the **Container Station** application. Once downloaded, open the app and select the path you'll be using as your **Docker** container data directory.
3. Click **Start Now** to proceed.

***

## Deployment <a href="#dep-qnap" id="dep-qnap"></a>

1. In the **Container Station** application, open the **Containers** menu option, and click the **Create** button.

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

2. In **Image Configuration**, choose **Advanced mode**. For **Image type** select **Docker image**, and in the **Image** field, paste the following:

```docker
xopero/xopero-one-service:latest
```

3. Ensure **Try pulling the image from the registry before creating the container.** checkbox is checked, then hit **Next**.

<figure><img src="/files/OLK8Iv7thJSh5asBIEAD" alt="" width="563"><figcaption></figcaption></figure>

4. In the **Configure Container** tab, configure the **Xopero ONE Docker** container and hit **Next** to continue.

> **Name:** set a custom name for the container
>
> **Auto start:** defines if the container should startup automatically (i.e., in case of **QNAP** restart)
>
> **Publish network ports:** enter a port number in the **Host** field— this will be the port used to connect to **Xopero ONE** service on the container on port 80 (the recommended host port number is 28555)

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

5. Double-check your configuration settings and hit **Finish**.

<figure><img src="/files/1FMo19qCQ8eOeC8rpu33" alt=""><figcaption></figcaption></figure>

6. **Container Station** will download the latest **Xopero ONE** image and create the container based on it.

<figure><img src="/files/DFAC5nOrUbEmUFGp1ykG" alt="" width="375"><figcaption></figcaption></figure>

7. Once the container creation process is completed, your new container will be available in the **Container Station** application (under **Containers** menu option).

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

8. Connect to **Xopero ONE** using your web URL address in the following format (you can find it under **Container Details** > **General** > **Web URL**):

> <kbd>[http://QNAPaddress:port](https://helpcenter.xopero.com/xopero-one-en/deployment-and-configuration/xopero-one-management-service-xms/http:/QNAPaddress:port)</kbd>

9. To finish the **XMS** setup, create a new administrative account, provide the license code, and select data to protect.
   {% endtab %}

{% tab title="QNAP NAS (CS < 3.0)" %}

<p align="center"><a href="#pre-qnap2" class="button primary" data-icon="circle-1">Prerequisites</a>    <a href="#env-qnap2" class="button primary" data-icon="circle-2">Environment setup</a>    <a href="#dep-qnap2" class="button primary" data-icon="circle-3">Deployment</a></p>

## Prerequisites <a href="#pre-qnap2" id="pre-qnap2"></a>

**QNAP** with:

* [x] x86 or x64 CPU (ARM is <mark style="color:red;">**not supported**</mark>)
* [x] minimum 2GB of RAM
* [x] **Container Station** app from the **App Center**

***

## Environment setup <a href="#env-qnap2" id="env-qnap2"></a>

1. Login to your **QNAP** web panel and open the **App Center** application. Go to **QNAP Store** > **All Apps** and search for **Container Station** (**CS**).

<figure><img src="/files/jJwuvdmfXt7Z2urwyCcp" alt="Selecting Container Station"><figcaption></figcaption></figure>

2. Download the **Container Station** application. Once downloaded, open the app and select the path you'll be using as your **Docker** container data directory.
3. Click **Start Now** to proceed.

***

## Deployment <a href="#dep-qnap2" id="dep-qnap2"></a>

1. Open the **Container Station** application and click ➕ **Create** in the left-hand side menu.
2. Copy and paste <kbd>xopero/xopero-one-service</kbd> in the search field and hit **Enter** to search for **XMS Docker** image (it should be the first search result in **Docker Hub** tab).&#x20;
3. Click the **Install** button next to the **Docker** image to start the container creation process.

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

4. Select the latest image version and click **Next** to continue.

<figure><img src="/files/jkQhG0nQkJnfhBdeelBI" alt="Selecting Xopero ONE version"><figcaption></figcaption></figure>

5. In the **Create Container** window, configure the **Xopero ONE Docker** container.

> **Name:** set a custom name for the container
>
> **Auto start:** defines if the container should startup automatically (i.e., in case of **QNAP** restart)
>
> **CPU Limit:** allows you to set the CPU percentage usage available for the container
>
> **Memory Limit:** RAM memory allocated to the container

<figure><img src="/files/vlwv6XygRLUp6OYSfCIH" alt="Creating container"><figcaption></figcaption></figure>

6. Scroll down a little and click the ⚙️ **Advanced Settings>>**&#x20;
7. In the ⚙️ **Advanced Settings>>** go to **Network** and click the **Add** button on the right. Enter a port number in the **Host** field under the **Port Forwarding** section— this will be the port used to connect to **Xopero ONE** service (the recommended, default port number is **28555**).

<figure><img src="/files/zi4hsVOLfVP7mxVerJNP" alt="Creating contener - network tab"><figcaption></figcaption></figure>

8. Click the **Create** button— this will display the setup summary. Double-check your configuration and click **OK** to create the container.

<figure><img src="/files/CHJhsAh5UrSCLxeMprl1" alt="Summary window"><figcaption></figcaption></figure>

9. Once the container creation process is completed, your new container will be available in the **Container Station** application (under **Container** menu option).

<figure><img src="/files/btL7Sb34eUvKr65044hI" alt="View on running container with Xopero ONE"><figcaption></figcaption></figure>

10. Connect to **Xopero ONE Management Service** by launching it via **Container Station**, or using your web URL address in the following format:

> <kbd>[http://QNAPaddress:port](https://helpcenter.xopero.com/xopero-one-en/deployment-and-configuration/xopero-one-management-service-xms/http:/QNAPaddress:port)</kbd>

11. To finish the **XMS** setup, create a new administrative account, provide the license code, and select data to protect.
    {% endtab %}

{% tab title="Synology NAS" %}

<p align="center"><a href="#pre-syno" class="button primary" data-icon="circle-1">Prerequisites</a>    <a href="#dep-syno" class="button primary" data-icon="circle-2">Deployment</a></p>

## Prerequisites <a href="#pre-syno" id="pre-syno"></a>

**Synology** must meet the following requirements:

* [x] x86 or x64 CPU (ARM is <mark style="color:red;">**not supported**</mark>)
* [x] minimum 2 GB of RAM
* [x] **Docker** app from the **Package Center**

***

## Deployment  <a href="#dep-syno" id="dep-syno"></a>

1. Open the **Docker Hub**, navigate to the **Container** menu, and click **Create** button.&#x20;
2. Expand the **Image** section and select **Add image**. Then, search for <kbd>xopero/xopero-one-service</kbd>. Once located, select the image, click **Download**, and choose the version tagged as <mark style="color:red;">**latest**</mark>. Confirm the selection to proceed.

<figure><img src="/files/iH1s7CKa3bGiA2dgztXX" alt="" width="546"><figcaption></figcaption></figure>

3. Once you download the image, select it from the **Image** drop-down menu in **General Settings**. Next, define a name for the container and enter it in the **Container Name** field. Configure container resource limits if necessary.&#x20;
4. Check the **Enable auto-restart** checkbox to ensure the container automatically restarts when the device reboots, and proceed to the next step.

<figure><img src="/files/ww3JSBRs6nMDUsOGeN2i" alt="" width="550"><figcaption></figcaption></figure>

5. In **Volume Settings**, click ➕ **Add Folder** button. To ensure data persistence during container updates or maintenance operations, mount the management databases to an external directory. The databases are stored in **/app/Xopero** and should be mapped to a designated location outside the container to prevent data loss or inconsistencies.

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

6. In the **Environment** section, define the required variables:

> **ASPNETCORE\_URLS:** management service ports for http and https protocol (i.e., **http\://+:**<mark style="color:red;">**PORT\_NUMBER**</mark>**;https\://+:**<mark style="color:red;">**PORT\_NUMBER**</mark>)

{% hint style="warning" %}
The management console is available on port **28555** for the encrypted protocol (**https**), and on port **28556** for the unencrypted (**http**) protocol.
{% endhint %}

<figure><img src="/files/6bCdlSMir0ZwJj8DG6A0" alt=""><figcaption></figcaption></figure>

7. Go to **Advanced Settings**. Select **bridge** from the **Network Name** drop-down menu in the **Network** tab to enable the container to share the same network namespace as the container's host, then select **Use the same network as Docker Host** checkbox at the bottom.

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

8. Confirm the configuration and click **Next**. In **Summary**, double-check the settings and hit **Done** to finish the container creation process.

<figure><img src="/files/MefF5V4UlNHkBO9ukKbb" alt="" width="551"><figcaption></figcaption></figure>

9. Once you've created the container, you can connect to your **XMS** using one of the following addresses:

> https\://<mark style="color:red;">**yourSynologyAddress**</mark>:28555 (i.e., https\://<mark style="color:red;">**192.168.0.100**</mark>:28555)
>
> http\://<mark style="color:red;">**yourSynologyAddress**</mark>:28556 (i.e., http\://<mark style="color:red;">**192.168.0.100**</mark>:28556)
> {% endtab %}
> {% endtabs %}


---

# 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://helpcenter.xopero.com/xopero-one-en/deployment-and-configuration/xopero-one-management-service-xms/installation-within-a-docker-container.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.
