# Instalacja w kontenerze Docker

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

## Wdrożenie <a href="#installation_process" id="installation_process"></a>

1. Pobierz [obraz Docker](https://xopero.com/download/xopero_one/latest/management-image.tar) **Xopero ONE Management Service** (**XMS**) na swoje urządzenie. Następnie otwórz konsolę **cmd** i wybierz obraz **XMS Docker** za pomocą następującego polecenia:

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

{% hint style="danger" %}
Zastąp `docker_name.tar` azwą swojego pliku obrazu **XMS Docker**.
{% endhint %}

2. Po zaimportowaniu obrazu użyj następującego polecenia, aby utworzyć kontener:

```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" %}
W powyższym poleceniu zastąp **`drive_location_database`** ścieżką, w której ma zostać zamontowana baza danych (z kontenera do katalogu lokalnego) — <mark style="color:red;">**jest to istotne dla późniejszej aktualizacji kontenera**</mark>. W miejsce **`container_name`**, wpisz nazwę swojego kontenera, a w miejsce **`service_port`**, wpisz port usługi, który będzie używany przez **Xopero ONE** (domyślnie port **XMS** jest ustawiony na **28555**).
{% endhint %}

{% code title="Przykład:" 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="https://content.gitbook.com/content/wg6DDqlTFok8F9zv6rqa/blobs/EsG0ypxdAFI0txMf0sYm/image.png" alt=""><figcaption></figcaption></figure>

4. Następnie użyj poniższego polecenia, aby wyświetlić listę kontenerów (lub przejrzyj listę w aplikacji **Docker Desktop**):

```docker
docker ps -a
```

<figure><img src="https://content.gitbook.com/content/wg6DDqlTFok8F9zv6rqa/blobs/qHHsZOxDOnlTr83PSRlT/image.png" alt="viewing the container list"><figcaption></figcaption></figure>

<figure><img src="https://content.gitbook.com/content/wg6DDqlTFok8F9zv6rqa/blobs/jcfXBMPISX8q5ArsSiqm/image.png" alt="Docker GUI"><figcaption></figcaption></figure>

5. Jeśli nie widzisz żadnych błędów, oznacza to, że wdrożenie **XMS** zostało wykonane poprawnie. Możesz otworzyć panel **Xopero ONE Management Service**, używając następującego adresu:

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

6. Przed rozpoczęciem korzystania z **XMS** musisz utworzyć **konto administratora** i **przypisać licencję** do swojej jednostki.

<figure><img src="https://1873867500-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fwg6DDqlTFok8F9zv6rqa%2Fuploads%2FmITVhji7duAQ6IS523vb%2Fimage.png?alt=media&#x26;token=fc2d58df-25ee-421f-9944-84b6509eaa8e" 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">Wymagania wstępne</a>    <a href="#env-qnap" class="button primary" data-icon="circle-2">Konfiguracja środowiska</a>    <a href="#dep-qnap" class="button primary" data-icon="circle-3">Wdrożenie</a></p>

## Wymagania wstępne <a href="#pre-qnap" id="pre-qnap"></a>

**QNAP**:

* [x] Procesor x86 lub x64 (architektura ARM <mark style="color:red;">**nie jest obsługiwana**</mark>).
* [x] Minimum 2GB pamięci RAM.
* [x] Aplikacja **Container Station** z **App Center.**

***

## Konfiguracja środowiska <a href="#env-qnap" id="env-qnap"></a>

1. Zaloguj się do **panelu webowego** **QNAP** i otwórz aplikację **App Center**. Przejdź do **QNAP Store** > **All Apps** i wyszukaj **Container Station** (**CS**).

<figure><img src="https://content.gitbook.com/content/wg6DDqlTFok8F9zv6rqa/blobs/PJUnUDdkAxlRnNC9ZywH/image.png" alt="Selecting Container Station"><figcaption></figcaption></figure>

2. Pobierz aplikację **Container Station**. Po pobraniu otwórz ją i wybierz ścieżkę, która będzie używana jako **katalog danych kontenera Docker**.
3. Kliknij **Start Now**, aby kontynuować.

***

## Wdrożenie <a href="#dep-qnap" id="dep-qnap"></a>

1. W aplikacji **Container Station** otwórz menu **Containers** i kliknij przycisk **Create**.

<figure><img src="https://content.gitbook.com/content/wg6DDqlTFok8F9zv6rqa/blobs/HhRySNZoRxCyNJgkpfR3/image.png" alt=""><figcaption></figcaption></figure>

2. W sekcji **Image Configuration** wybierz **Advanced mode**. Jako typ obrazu wybierz **Docker image**, a w polu **Image** wklej:

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

3. Upewnij się, że opcja **Try pulling the image from the registry before creating the container** jest zaznaczona, a następnie kliknij **Next**.

<figure><img src="https://content.gitbook.com/content/wg6DDqlTFok8F9zv6rqa/blobs/Ue5qEJ1IdAhg6erMu2sy/image.png" alt="" width="563"><figcaption></figcaption></figure>

4. W karcie **Configure Container**, skonfiguruj kontener **Docker Xopero ONE** i kliknij **Next**, aby kontynuować:

> **Name:** ustaw własną nazwę kontenera.
>
> **Auto start:** określa, czy kontener powinien uruchamiać się automatycznie (np. po restarcie **QNAP**).
>
> **Publish network ports:** wprowadź numer portu w polu **Host** — będzie to port używany do łączenia się z usługą **Xopero ONE** w kontenerze na porcie 80 (zalecany port hosta to 28555).

<figure><img src="https://content.gitbook.com/content/wg6DDqlTFok8F9zv6rqa/blobs/QIDSsQr6pgXhHH3cITuY/image.png" alt=""><figcaption></figcaption></figure>

5. Sprawdź ponownie ustawienia konfiguracji i kliknij **Finish**.

<figure><img src="https://content.gitbook.com/content/wg6DDqlTFok8F9zv6rqa/blobs/dRRTJanh8w041QKSrU6R/image.png" alt=""><figcaption></figcaption></figure>

6. **Container Station** pobierze najnowszy obraz **Xopero ONE** i utworzy na jego podstawie kontener.

<figure><img src="https://content.gitbook.com/content/wg6DDqlTFok8F9zv6rqa/blobs/g9D2JN6MUvaopQN6KBNQ/image.png" alt="" width="375"><figcaption></figcaption></figure>

7. Po zakończeniu procesu nowy kontener będzie dostępny w aplikacji **Container Station** (w sekcji **Containers**).

<figure><img src="https://content.gitbook.com/content/wg6DDqlTFok8F9zv6rqa/blobs/4dBFBp2H1fFmpZhNUl3m/image.png" alt=""><figcaption></figcaption></figure>

8. Połącz się z **Xopero ONE**, używając **adresu URL** w następującym formacie (znajdziesz go w **Container Details** > **General** > **Web URL**):

> `http://QNAPaddress:port`

9. Aby dokończyć konfigurację **XMS**, utwórz nowe **konto administracyjne**, podaj **kod licencyjny** i wybierz **dane do ochrony**.
   {% endtab %}

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

<p align="center"><a href="#pre-qnap2" class="button primary" data-icon="circle-1">Wymagania wstępne</a>    <a href="#env-qnap2" class="button primary" data-icon="circle-2">Konfiguracja środowiska</a>    <a href="#dep-qnap2" class="button primary" data-icon="circle-3">Wdrożenie</a></p>

## Wymagania wstępne <a href="#pre-qnap2" id="pre-qnap2"></a>

**QNAP**:

* [x] Procesor x86 lub x64 (architektura ARM <mark style="color:red;">**nie jest obsługiwana**</mark>).
* [x] Minimum 2GB pamięci RAM.
* [x] Aplikacja **Container Station** z **App Center.**

***

## Konfiguracja środowiska <a href="#env-qnap2" id="env-qnap2"></a>

1. Zaloguj się do **panelu webowego** **QNAP** i otwórz aplikację **App Center**. Przejdź do **QNAP Store** > **All Apps** i wyszukaj **Container Station** (**CS**).

<figure><img src="https://content.gitbook.com/content/wg6DDqlTFok8F9zv6rqa/blobs/PJUnUDdkAxlRnNC9ZywH/image.png" alt="Selecting Container Station"><figcaption></figcaption></figure>

2. Pobierz aplikację **Container Station**. Po pobraniu otwórz ją i wybierz ścieżkę, która będzie używana jako **katalog danych kontenera Docker**.
3. Kliknij **Start Now**, aby kontynuować.

***

## Wdrożenie <a href="#dep-qnap2" id="dep-qnap2"></a>

1. Otwóz aplikację **Container Station** i kliknij ➕ **Create** w menu po lewej stronie.
2. Skopiuj i wklej <kbd>xopero/xopero-one-service</kbd> w polu wyszukiwania i naciśnij **Enter** aby wyszukać **obraz Docker XMS** (powinien to być pierwszy wynik w karcie **Docker Hub**)
3. Kliknij przycisk **Install** obok **obrazu Docker**, aby rozpocząć proces tworzenia kontenera.

<figure><img src="https://content.gitbook.com/content/wg6DDqlTFok8F9zv6rqa/blobs/1mmNvNJ8thXIvv4XZyvz/image.png" alt=""><figcaption></figcaption></figure>

4. Wybierz **najnowszą** [wersję obrazu](#user-content-fn-1)[^1] i kliknij **Next**.

<figure><img src="https://content.gitbook.com/content/wg6DDqlTFok8F9zv6rqa/blobs/XmvZCULAH1qlHs3iPlB5/image.png" alt="Selecting Xopero ONE version"><figcaption></figcaption></figure>

5. W oknie **Create Container**, skonfiguruj parametry **kontenera Docker** **Xopero ONE**.

> **Name:** ustaw własną nazwę kontenera.
>
> **Auto start:** określa, czy kontener powinien uruchamiać się automatycznie (np. po restarcie **QNAP**).
>
> **CPU Limit:** pozwala przypisać procentowe użycie procesora dostępne dla tego kontenera.
>
> **Memory Limit:** ustaw pamięć RAM przydzieloną do tego kontenera.

<figure><img src="https://content.gitbook.com/content/wg6DDqlTFok8F9zv6rqa/blobs/9SwKqxBZ0DYAbUxAU1I8/image.png" alt="Creating container"><figcaption></figcaption></figure>

6. Przewiń w dół i kliknij ⚙️ **Advanced Settings>>**&#x20;
7. W ⚙️ **Advanced Settings>>** przejdź do **Network** i kliknij przycisk **Add** po prawej stronie. Wprowadź numer portu w polu host **Host** pod sekcją **Port Forwarding**— to będzie port używany do połączenia z usługą **Xopero ONE** (zalecany, domyślny numer portu to **28555**).

<figure><img src="https://content.gitbook.com/content/wg6DDqlTFok8F9zv6rqa/blobs/FA8L9DhFsj0CvTBcGf13/image.png" alt="Creating contener - network tab"><figcaption></figcaption></figure>

8. Kliknij **Create** — wyświetli się podsumowanie procesu konfiguracji. Zweryfikuj ponownie konfigurację i kliknij **OK** aby utworzyć kontener.

<figure><img src="https://content.gitbook.com/content/wg6DDqlTFok8F9zv6rqa/blobs/sNxFKPswukb16vJbcTaX/image.png" alt="Summary window"><figcaption></figcaption></figure>

9. Po zakończeniu procesu nowy kontener będzie dostępny w aplikacji **Container Station** (w sekcji **Containers**).

<figure><img src="https://content.gitbook.com/content/wg6DDqlTFok8F9zv6rqa/blobs/UkRfAqmWKTRSKONfKxcn/image.png" alt="View on running container with Xopero ONE"><figcaption></figcaption></figure>

10. Połącz się z **Xopero ONE Management Service** przez uruchomienie jej w **Container Station**, lub używając adresu URL w następującym formacie:

> <kbd>[http://QNAPaddress:port](https://helpcenter.xopero.com/xopero-one-en/pl/wdrozenie-i-konfiguracja/xopero-one-management-service/http:/QNAPaddress:port)</kbd>

11. Aby dokończyć konfigurację **XMS**, utwórz nowe **konto administracyjne**, podaj **kod licencyjny** i wybierz **dane do ochrony**.
    {% endtab %}

{% tab title="Synology NAS" %}

<p align="center"><a href="#pre-syno" class="button primary" data-icon="circle-1">Wymagania wstępne</a>    <a href="#dep-syno" class="button primary" data-icon="circle-2">Wdrożenie</a></p>

## Wymagania wstępne <a href="#pre-syno" id="pre-syno"></a>

**Synology** musi spełniać następujące wymagania:

* [x] Procesor x86 lub x64 (architektura ARM <mark style="color:red;">**nie jest obsługiwana**</mark>).
* [x] Minimum 2GB pamięci RAM.
* [x] Aplikacja **Docker** z **Package Center.**

***

## Wdrożenie  <a href="#dep-syno" id="dep-syno"></a>

1. Otwórz aplikację **Docker Hub**, przejdź do sekcji **Container**, i kliknij przycisk **Create**.&#x20;
2. Rozwiń sekcję **Image** i kliknij **Add image**. Następnie wyszukaj `xopero/xopero-one-service`. Wybierz obraz, kliknij **Download** i wybierz wersję oznaczoną jako [<mark style="color:red;">**latest**</mark>](#user-content-fn-2)[^2]. Potwierdź wybór aby przejść dalej.

<figure><img src="https://content.gitbook.com/content/wg6DDqlTFok8F9zv6rqa/blobs/vO118V7YyBhwzZVRJEgK/image.png" alt="" width="546"><figcaption></figcaption></figure>

3. Po pobraniu obrazu wybierz go z menu rozwijanego **Image** w **General Settings**. Nadaj kontenerowi nazwę w polu **Container name**. W razie potrzeby skonfiguruj limity zasobów.
4. Zaznacz pole **Enable auto-restart** aby upewnić się, że kontener automatycznie się uruchomi ponownie przy restarcie urządzenia i przejdź do następnego kroku.

<figure><img src="https://content.gitbook.com/content/wg6DDqlTFok8F9zv6rqa/blobs/BgHnlPO62ufXO7ivyoxy/image.png" alt="" width="550"><figcaption></figcaption></figure>

5. W **Volume Settings**, klinij przycisk➕ **Add Folder**. Aby zapewnić trwałość danych podczas aktualizacji i operacji konserwacyjnych, zamontuj bazy danych zarządzania w katalogu zewnętrznym. Bazy są przechowywane w `/app/Xopero` i powinny być zmapowane do wyznaczonej lokalizacji poza kontenerem, aby zapobiegać utracie i niezgodności danych.

<figure><img src="https://content.gitbook.com/content/wg6DDqlTFok8F9zv6rqa/blobs/GMy4I4B154bj2ayTNZmn/image.png" alt=""><figcaption></figcaption></figure>

6. W sekcji **Environment**, zdefiniuj wymagane zmienne:

> **ASPNETCORE\_URLS:** porty usługi zarządzania dla protokołów http i https (np. **http\://+:**<mark style="color:red;">**PORT\_NUMBER**</mark>**;https\://+:**<mark style="color:red;">**PORT\_NUMBER**</mark>)

{% hint style="warning" %}
Konsola zarządzania jest dostępna na porcie **28555** dla **protokołu szyfrowanego** (**https**) oraz na porcie **28556** dla **protokołu nieszyfrowanego** (**http**).
{% endhint %}

<figure><img src="https://content.gitbook.com/content/wg6DDqlTFok8F9zv6rqa/blobs/yVs0Onq4NWO7aClREWK8/image.png" alt=""><figcaption></figcaption></figure>

7. Przejdź do **Advanced Settings**. W karcie **Network**, wybierz **bridge** z menu rozwijanego **Network name**, aby umożliwić kontenerowi używanie tego samego nazewnictwa co host konetenera, następnie zaznacz pole wyboru **Use the same network as Docker Host** na dole.

<figure><img src="https://content.gitbook.com/content/wg6DDqlTFok8F9zv6rqa/blobs/kdLpOgek0XPkb6xzOflO/image.png" alt=""><figcaption></figcaption></figure>

8. Potwierdź konfigurację i kliknij **Next**. W **Summary**, sprawdź ponownie ustawienia i kliknij **Done** aby zakończyć proces tworzenia kontenera.

<figure><img src="https://content.gitbook.com/content/wg6DDqlTFok8F9zv6rqa/blobs/uYq6lmw7ACxq1BjocABZ/image.png" alt="" width="551"><figcaption></figcaption></figure>

9. Po utworzeniu kontenera możesz połączyć się z XMS pod jednym z adresów:

> 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 %}

[^1]: image version

[^2]: najnowsza
