this post was submitted on 11 Sep 2023
15 points (85.7% liked)

Selfhosted

40134 readers
523 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 1 year ago
MODERATORS
 

I would like to back up my nextcloud data using duplicati, but I absolutely can‘t figure out how to give Duplicati access to the Nextcloud volume. Both are running fine in separate Docker containers. I can’t figure out how to properly mount the volume, below is my current compose for duplicati. Do I need to mount the volume as source? Does it need to be declared or mapped separately?

***
version: "2.1"
services:
  duplicati:
    image: lscr.io/linuxserver/duplicati:latest
    container_name: duplicati
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=XXX
      - CLI_ARGS= #optional
    volumes:
      - /path/to/appdata/config:/config
      - /path/to/backups:/backups
      - /path/to/source:/var/lib/docker/volumes/073ac2751cd65ffd84750e578c38482905c3c7e4851a8cbb0bbbc5c33a285e84
    ports:
      - 8200:8200
    restart: unless-stopped
top 16 comments
sorted by: hot top controversial new old
[–] [email protected] 5 points 1 year ago (2 children)

You might try adding :rw after each of your volume paths, like this:

volumes:
      - /path/to/appdata/config:/config:rw

My honest suggestion would be to ditch Duplicati for Duplicacy. Duplicacy is one time payment, but it's much more polished than Duplicati. I actually had major issues with recovering files from Duplicati; sometimes it would work and sometimes it wouldn't. Not ideal for something as critical as backup software.

[–] [email protected] 2 points 1 year ago

I'll take a look at Duplicacy, thanks

[–] [email protected] 2 points 1 year ago (2 children)

But it should not need write access to those files.

I bet it is due to different UID. Nextcloud runs with the www-data user, and UID 1000 is likely whatever user OP set up on the host machine. Make Duplicati run with the same UID as nextcloud and it will have the permission to read the files.

[–] [email protected] 2 points 1 year ago

You are probably correct! I always forget about the UID..

[–] [email protected] 1 points 1 year ago (1 children)

IIRC nextcloud docker image uses UID 33 instead of 1000.

[–] [email protected] 1 points 1 year ago (1 children)

I just went through dockerizing my nextcloud installation. The www-data user on my host had uid 33, but the one inside the container uses uid 82, which had me scratching my head for a minute. You can confirm the actual uid by running id www-data inside the nextcloud container.

[–] [email protected] 1 points 1 year ago* (last edited 1 year ago) (1 children)

I have two instances on two separate servers running and all of them use uid:gid 33:33 inside the container. I use the nextcloud:26-apache docker image.

Edit: I think your container image is based on Alpine linux, which use uid 82 for its www-data user. Try switching to a debian-based image (e.g. the apache version) if you want it to match with your host system.

[–] [email protected] 1 points 1 year ago

Ah yep I bet that’s it, I’m using the alpine fpm image.

[–] [email protected] 3 points 1 year ago* (last edited 1 year ago) (1 children)

You've got your path backwards, do:

/var/lib/docker/volumes:/source

And then access the data at /source in Duplicati.

[–] [email protected] 1 points 1 year ago (1 children)

Thanks! A drop down chevron has appeared next to the "Source Data" folder in duplicati, but it is still empty, showing neither the volume, nor its contents. Any idea what else I can try/modify?

[–] [email protected] 1 points 1 year ago (1 children)

Does it show the root / filesystem inside the container?

You may need to update the folder permissions on the Nextcloud volume to allow all users to read data.

[–] [email protected] 1 points 1 year ago (1 children)

I do see the entire filesystem, and now also the volume, but can't access it.

[–] [email protected] 1 points 1 year ago (1 children)

I would suspect permissions, make sure the volume is set to allow all users to read from it

[–] [email protected] 1 points 1 year ago

Yeah really seems most likely. I'll start poking around permissions, thanks

[–] [email protected] 1 points 1 year ago (1 children)

Why are you mounting the volume with the file system path, instead of the volume name? You should be able to mount the volume normally by specifying it in the volume section, i.e.

services:
  duplicati:
    volumes:
      - nextcloud_data:ro

volumes:
  - nextcloud_data
    - external: true

That should grant Duplicati read-only access to the entire volume without messing around with absolute file paths.

[–] [email protected] 1 points 1 year ago

Thanks, I didn't fully understand the syntax before. I now see the volume in the duplicati GUI, but not its contents. When I just back up the entire volume, the backup size is basically zero (should be more like 800MB).