Workflow to Update openhab docker on synology

Since in the past I always had troubles and hours of work fixing my installation after an update I would like to ask if this would be the correct workflow on a synology running the openhab docker image. I am on 2.5.0 and would like upgrade to latest stable (2.5.3?) to see if some of my websocket errors are solved.

My things are created by paperui only.
Used addons are defined in \conf\services\addons.cfg (package is set to minimal) same as other services like mail, pushover, etc.
Items are defined in \conf\items\demo.items

My workflow to update the docker image would be:

  1. Stop running the openhab container
  2. Delete openhab.log in userdata
  3. Delete tmp and cache folder under userdata
  4. Delete openhab container or should I just delete content of the openhab container?
  5. Delete the openhab/openhab:latest image
  6. Download/register openhab/openhab:latest image
  7. Configure the downloaded image by mapping userdata, addons and conf folder to my lokal folders and network settings to use my local network settings
  8. Start the image and pray

Does this look like a correct approach or is there more to consider e.g. deleting like org.ops4j.pax.logging.cfg to ensure I get the latest intended loglevels?

Do I have to consider some extra steps for addons which need configuration so I don’t have to configure them again after an update like pushover action, amazon echo control, harmony hub, homematic, hue, mail, netatmo, openhab cloud connector, rrd4j persistence.

Thanks for any hints where I could finetune the docker update process :slight_smile:


1 Like

i also use openhab in docker on a syno nas.
it looks good what you are doing.

1 Like

Step 3 is unnecessary. The script will do this for you if it sees that the version of OH in the image is different from the version that created the files in userdata (specifically it checks userdata/etc/

For step 4, delete the container.

The rest looks good. I don’t run on Synology but I do run in Docker.


one little information from my side, i had one problen with the latest 2.5.2 container, tha language of the container was de, the output of the values was 2,5 and when you use mqtt with zwave2mqtt for example it expects a value like 2.5 (with a dot), than you need to change the language to en. maybe also other 3rd party tools need this

You should be able to handle this using a JS transformation.

I’d like to point out that this instruction is either outdated or more complicated than it needs to be (maybe because “latest” is used instead of the version number).

I recently updated from 3.1.0 to 3.2.0 and did it like this:

  1. Create a backup of the mapped folders.
  2. Download/register 3.2.0 image (NOT “latest”)
  3. Create and configure a new container from it (autorun, map folders, network, ports, timezone)
  4. Stop old container, run the new container.
  5. If everything works, the old container can be deleted.

However, I’d wish there would be an even easier way without having to re-configure everything manually every time.