Skip to main content
Version: 7.2

Standard Upgrade Guide

This guide provides the standard steps to upgrade OpenCloud for both docker and docker compose

Stop OpenCloud​

Stop the currently running OpenCloud instance:

docker stop opencloud

Back Up Configuration and Data​

If your configuration and data are stored in directories on the host, create a copy of these directories.

Example:

cp -a /mnt/opencloud/config /mnt/opencloud/config-backup
cp -a /mnt/opencloud/data /mnt/opencloud/data-backup

Replace the paths with the directories used by your deployment.

Update the opencloud-compose Checkout​

If you use the opencloud-compose repository, update your local copy of the repository.

cd /opencloud-compose
git pull

Skip this step if you run OpenCloud with plain Docker.

Stop OpenCloud​

Stop the currently running OpenCloud instance.

docker compose stop

Pull the new OpenCloud image​

Pull the image that matches the release channel you use:

  • opencloudeu/opencloud-rolling:{tag} for rolling releases
  • opencloudeu/opencloud:{tag} for stable releases

Replace {tag} with the image tag for the version you want to install. Available tags are listed on Docker Hub.

docker pull opencloudeu/opencloud-rolling:{tag}

Verify Configuration Changes​

If upgrading from an older release, check for required configuration changes:

Open a Temporary OpenCloud Container​

Open a shell in a temporary OpenCloud container and mount your OpenCloud configuration directory or configuration volume to /etc/opencloud.

docker run --rm -it --entrypoint /bin/sh -v "<opencloud-config-volume>:/etc/opencloud" opencloudeu/opencloud (or opencloud-rolling):"version-tag"

Replace <opencloud-config-volume> with the Docker volume or bind mount that contains your OpenCloud configuration.

Generate the Configuration Diff​

Inside the temporary container, run:

opencloud init --diff

If you see no changes, your config is up to date, no further action is needed.

init -diff

In that case, exit the temporary container and start OpenCloud.

Otherwise, update your opencloud.yaml file accordingly and apply the patch.

Example output:

diff -u /etc/opencloud/opencloud.yaml /etc/opencloud/opencloud.yaml.tmp
--- /etc/opencloud/opencloud.yaml
+++ /etc/opencloud/opencloud.yaml.tmp
@@ -90,6 +90,9 @@
sharing:
events:
tls_insecure: false
+service_account:
+ service_account_id: 00000000-0000-0000-0000-000000000000
+ service_account_secret: example-service-account-secret
storage_users:
events:
tls_insecure: false

diff written to /etc/opencloud/opencloud.config.patch

The command creates the following patch file:

/etc/opencloud/opencloud.config.patch

Apply the Configuration Patch​

Change to the configuration directory:

cd /etc/opencloud

Verify that the patch file was created:

ls

Example output:

banned-password-list.txt
csp.yaml
opencloud.config.patch
opencloud.yaml
opencloud.yaml.2026-05-19-15-45-44.backup

Test the patch before applying it:

patch --dry-run opencloud.yaml < opencloud.config.patch

Expected output:

checking file opencloud.yaml

Apply the patch:

patch opencloud.yaml < opencloud.config.patch

Expected output:

patching file opencloud.yaml

Verify that the following configuration entries exist in opencloud.yaml:

service_account:
service_account_id: 00000000-0000-0000-0000-000000000000
service_account_secret: example-service-account-secret

Exit the Temporary Container​

Exit the temporary container after applying the configuration patch.

exit

Start OpenCloud with updated image​

docker run \
--name opencloud \
--rm \
-it \
-p 9200:9200 \
-v $HOME/opencloud/opencloud-config:/etc/opencloud \
-v $HOME/opencloud/opencloud-data:/var/lib/opencloud \
-e OC_INSECURE=true \
-e PROXY_HTTP_ADDR=0.0.0.0:9200 \
-e OC_URL=https://localhost:9200 \
opencloudeu/opencloud-rolling:{tag}

Conclusion​

Make sure that all previously created data, users, shared files, public links exist.