How to install / configure a Duplicati Docker container (unRAID)

I may come back and make this an actual guide / wiki at some point, but until that happens check out Spaceinvader One’s wonderful YouTube video for installing / using Duplicati as a Docker container on unRAID.

Note that:

  • it uses an older version of Duplicati so some of the screens / parameters shown have changed
  • it uses the linuxserver/duplicati Docker container instead of the official duplicati/duplicati container as the official one didn’t exist yet
  • it shows how to back up between two servers (which not everybody will want)


Here’s what worked for me:

  1. In the unRAID GUI go to Apps. (If you don’t have Apps, then you need to install the “Community Applications” plugin - see video above.)
  2. Use the search box to look for Duplicati.
  3. Install the one from DockerHub Repository (private). (You can, of course, choose a different one such as from linuxserver’s Repository - but I built these steps off the official DockerHub one.)
  4. For the Repository field, you can leave it as duplicati/duplicati and you’ll get the latest most stable version (currently a beta).

    If you’d prefer a specific release or release path you can use a duplicati/duplicati Docker TAG - something like duplicati/duplicati:canary or duplicati/duplicati:2.0.4.2_experimental_2018-11-12.
  5. To avoid possibly filling my container with temp files I mapped “/tmp” to something like /mnt/user/appdata/tmp
  6. To use a local path for your backup destination map “/backup” to something like /mnt/user/Backups/
  7. To have access to ALL our shareable NAS content map “/source” to something like /mnt/user/.

    NOTE: This is now the ‘root’ of /source so consider that when configuring Duplicati source paths. So if you have an unRAID path of /mnt/user/Data you’d back it up in Duplicati as /source/Data
  8. To keep your Duplicati settings safe during Docker container updates map “/data” to something like /mnt/user/appdata/
  9. Set your container port to one you want to use (I suggest 8200). Note that if you don’t set a port, you won’t see the “WebUI” menu option when clicking on your Docker container icons
  10. Set PUID = 99 and PGID = 100 because, um - well, I forget and it works for me.

That should do it for the basics.

The Repository tag basically defines your “base” install version and will update (well, delete and replace) the container as that release path is updated. HOWVER - if you want to stick with a particular base install and use the built in Duplicati updater, you can do that too!

For example, if you use Repository: duplicati/duplicati:experimental you can still tell Duplicati to use the Canary branch and you’ll get those updates “on top” of the base install.

This works just fine EXCEPT… by default the Duplicati updates folder is stored INSIDE the container, so if the container (base install) is ever updated then you lose all your Duplicati updates.

This CAN cause a problem if you’ve done something silly (like I did) and used a beta container but inside Duplicati updated to canary versions so far beyond the beta that a container update to the next beta caused issues (like not starting due to database version differences).

While you can monkey around with moving your appdata folder, running Duplicati, updating to canaries again, bringing back your appdata folder, etc…

It’s probably easier just to use the “Add another Path, Port, Variable, Label or Device” feature in your Docker container to map “/usr/share/Duplicati/updates” to something like /mnt/user/appdata/Duplicati/updates.

Recent support request #4363 referenced a hub.docker.com site which led to some directions (but no video) :disappointed:

Thanks for pointing that out.

The directions they provide seem to be CLI based so should work for any Docker environment while the video above is specific to the unRAID GUI (no CLI required).