> For the complete documentation index, see [llms.txt](https://helpcenter.gitprotect.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://helpcenter.gitprotect.io/updates/gitprotect-worker/update-within-a-docker-container.md).

# Update within a Docker container

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

## Replacing the worker

{% hint style="danger" %}
The only way to update a worker installed in a container is to **remove the existing version and create a new one**.
{% endhint %}

1. Download the new image and remove the old container with the agent using the following command:

```dockerfile
docker pull xopero/xone-agent:latest
docker stop xone-agent && docker rm xone-agent
```

2. Create a new container with the **GitProtect** worker:

```dockerfile
docker run -d \
  --name xone-agent \
  -e ManagementServiceUrl="<your_xopero_service_URL>" \
  -e XoperoOverriddenHostName="<device_name>" \
  -v /opt/xone-agent/data:/app/Xopero \
  --restart unless-stopped \
  xopero/xone-agent:latest
```

* `<your_xopero_service_URL>` — **GitProtect Management Service** address with the port (i.e., `123.456.7.890:28555`)
* `<device_name>` — custom **Docker** container name

3. Once done, the **GitProtect** worker should now be up to date.
   {% endtab %}

{% tab title="QNAP NAS (CS > 3.0)" %}
{% hint style="warning" %}
This method requires **Container Station version 3.0 or later**.
{% endhint %}

## Update process

1. First, open **Container Station** on your **QNAP** device.
2. Locate and select the container running the worker you want to update, then click the **settings** ⚙️ icon to open the container settings.
3. In the settings menu, select the **Recreate** option to proceed with the update. This action replaces the current container with a new one based on the latest image.

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2FnXwyV28XHRJPGJnOkv3V%2Fagentdocker1.png?alt=media&amp;token=58c1163c-d0b4-4858-bb92-1e2b1d5aee12" alt="" width="170"><figcaption></figcaption></figure>

4. Switch to **Advanced mode** (see illustration below). You will be prompted for the **Docker Hub** image address — enter the address shown below:

```docker
xopero/xone-agent:latest
```

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2FUSTBCYmiRZBiKq7jQEJR%2Fobraz_2026-09-03_121809621.png?alt=media&amp;token=7ac92319-c1b5-4b5d-a902-c90df86737e0" alt="" width="563"><figcaption></figcaption></figure>

5. Make sure you select the option **Try pulling the image from the registry before creating the container** (this ensures that the latest version of the image is used) and click **Next** to continue.
6. You can now edit the container settings as you would when creating a new container. Adjust them if needed, then click **Next** again to move to the summary page.

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2F8QDOe4qRCFjZFdo7LdFR%2Fobraz_2026-09-03_122114113.png?alt=media&amp;token=7d357ac7-fd6a-4bd0-ba52-71de546c7982" alt="" width="563"><figcaption></figcaption></figure>

7. Review the summary of the settings and changes. When everything looks correct, click **Finish**. **Container Station** will download the latest image and create a new container using the settings and data from the previous one. This updates the **worker** to the latest version while preserving all existing settings and data.

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2F9Ew4XOX5Gohr74WoPcqa%2Fobraz_2026-09-03_122440144.png?alt=media&amp;token=5726b3ba-d725-4a82-9022-d7d84b54f40a" alt="" width="563"><figcaption></figcaption></figure>
{% endtab %}

{% tab title="QNAP NAS (CS < 3.0)" %}
{% hint style="danger" %}
The only way to update a worker installed in a container is to remove the existing version and install a new one. Creating a new container requires reactivating the device, so you will need to reassign it to all backup plans.
{% endhint %}

## Update process

1. Log in to **GitProtect Management Service**.
2. Go to the **Devices** tab and find the **Docker** worker.
3. Click the device details ℹ️ button. Review the **Docker** worker plans and note them, as you will need to add them again. All plans can be viewed in the **Backup plans** section; expand the list by clicking **Load more**.
4. Remove the old **GitProtect** worker container — in **Container Station**, click the **Remove** icon in the **Actions** tab to delete the container.
5. Once the old container has been removed, install the **GitProtect** agent **Docker** image again. Then, add the worker to all the plans it was previously assigned to.
   {% endtab %}

{% tab title="Synology NAS" %}

## Update process

1. When using the `:latest` tag, the **Container Manager** monitors the image for updates. When a new version is detected, the **Image** tab will show the status **Update available**. Click the status to start the update process.

{% hint style="warning" %}
If the **Update available** button does not appear even when the worker update is available for other devices, you may wait up to 12 hours before it becomes visible.
{% endhint %}

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2FOdTu3j4UhvoISQmDfNF1%2Fimage.png?alt=media&amp;token=a8d8426f-76e9-40e0-9560-a19410c45e74" alt=""><figcaption></figcaption></figure>

2. When activated, a system prompt will indicate that the services and container will be temporarily suspended during the update. Confirm by clicking the **Update** button.

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2FsG26gL5iOZZEBEHVAYWG%2Fimage.png?alt=media&amp;token=1e4254f4-1f56-48ed-b085-94abcd02b48b" alt=""><figcaption></figcaption></figure>

3. You will be prompted to confirm the update again by clicking the **Update** button.

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2FL2EXdlYHjPCvD9n9geGm%2Fu3.PNG?alt=media&amp;token=66bcdb0f-d933-4c3b-a886-00df0e44f1b3" alt="" width="563"><figcaption></figcaption></figure>

4. The update progress will appear in the list of operations. Once the image is successfully downloaded, containers set to auto-start will restart automatically.

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2F7COcK3m3zo96Pabc9Wfw%2Fimage.png?alt=media&amp;token=3881a2ed-46c2-4621-9bdf-ad1e9caf8168" alt=""><figcaption></figcaption></figure>

5. To verify the update, go to the **Containers** tab to check that the container is functioning correctly. Also, check if the system shows the latest version in **GitProtect Management Service**.
   {% endtab %}
   {% endtabs %}
