Folder/File Sharing is cleared after couple minutes (on External Storage only)

Behaviour

I noticed that for Folders/Files on External Storage Sharing via link is reset/cleared after couple minutes from generating it… It does not happen for sharing a content from “local” folder like Documents…

External storage’s:

Then share some subfolder from the external storage:

After (like 5-10 mins or so) it will “expire”:

Steps to reproduce this issue

  1. Copy-Paste your example config
  2. Adjust for local use
  3. Run the docker-compose file

Expected behaviour

Keep sharing the content until manually cleared or file is deleted.

Actual behaviour

Sharing of the file/folder is cleared after couple minutes on its own.

Configuration

  • Nextcloud: 20.0.1
  • Docker version (type docker --version) : Docker version 19.03.13, build 4484c46d9d
  • Docker compose version if applicable (type docker-compose --version) : docker-compose version 1.27.4, build 40524192
  • Platform (Debian 9, Ubuntu 18.04, …) : Debian GNU/Linux 10 (buster)
  • System info (type uname -a) : Linux caradhras 4.19.0-12-amd64 #1 SMP Debian 4.19.152-1 (2020-10-18) x86_64 GNU/Linux

Docker-Compose

version: "3.7"

services:
  nextcloud:
    container_name: nextcloud.524
    image: crazymax/nextcloud:latest
    restart: always
    ports:
      - 52480:8000
    depends_on:
      - postgres
      - redis
      - msmtpd
    volumes:
      - "$PWD/nextcloud:/data"
      - "/lvm/raid/public/nextcloud/data/:/data/data"
      - "/lvm/raid/private/backups/:/mnt/private/backups"
      - "/lvm/raid/private/data/:/mnt/private/data"
      - "/lvm/raid/private/drive/:/mnt/private/drive"
      - "/lvm/raid/private/media/:/mnt/private/media"
      - "/lvm/raid/public/backups/:/mnt/public/backups"
      - "/lvm/raid/public/drive/:/mnt/public/drive"
      - "/lvm/raid/public/ftp/:/mnt/public/ftp"
    labels:
      - traefik.enable=true
      - traefik.http.routers.nextcloud.entrypoints=websecure
      - traefik.http.routers.nextcloud.rule=Host(`cloud.example.com`)
      - traefik.http.routers.nextcloud.service=nextcloud
      - traefik.http.services.nextcloud.loadbalancer.server.port=8000
    env_file:
      - "./nextcloud.env"
    environment:
      - "TZ"
      - "PUID"
      - "PGID"
      - "DB_TYPE=${DB_TYPE}"
      - "DB_HOST=${DB_HOST}"
      - "DB_NAME=${DB_NAME}"
      - "DB_USER=${DB_USER}"
      - "DB_PASSWORD=${DB_PASSWORD}"
  
  postgres:
    container_name: nextcloud.524.postgres
    image: postgres:12
    restart: always
    expose:
      - 5432
    volumes:
      - $PWD/postgres:/var/lib/postgresql/data
    environment:
      - PUID=1000
      - PGID=994
      - POSTGRES_DB=${DB_NAME}
      - POSTGRES_USER=${DB_USER}
      - POSTGRES_PASSWORD=${DB_PASSWORD}

  adminer:
    container_name: nextcloud.524.adminer.82
    image: adminer
    ports:
      - 52482:8080
    restart: always

  redis:
    container_name: nextcloud.524.redis
    image: redis:4.0-alpine
    environment:
      - "TZ"
    restart: always

  msmtpd:
    container_name: nextcloud.524.msmtpd
    image: crazymax/msmtpd:latest
    env_file:
      - "./msmtpd.env"
    environment:
      - "TZ"
    restart: always

  cron:
    container_name: nextcloud.524.cron
    image: crazymax/nextcloud:latest
    restart: always
    depends_on:
      - nextcloud
    volumes:
      - "$PWD/nextcloud:/data"
      - "/lvm/raid/public/nextcloud/data/:/data/data"
    env_file:
      - "./nextcloud.env"
    environment:
      - "TZ"
      - "PUID"
      - "PGID"
      - "DB_TYPE=${DB_TYPE}"
      - "DB_HOST=${DB_HOST}"
      - "DB_NAME=${DB_NAME}"
      - "DB_USER=${DB_USER}"
      - "DB_PASSWORD=${DB_PASSWORD}"
      - "SIDECAR_CRON=1"
      - "CRON_PERIOD=*/5 * * * *"
    restart: always

  previewgen:
    container_name: nextcloud.524.previewgen
    image: crazymax/nextcloud:latest
    depends_on:
      - nextcloud
    volumes:
      - "$PWD/nextcloud:/data"
      - "/lvm/raid/public/nextcloud/data/:/data/data"
    env_file:
      - "./nextcloud.env"
    environment:
      - "TZ"
      - "PUID"
      - "PGID"
      - "DB_TYPE=${DB_TYPE}"
      - "DB_HOST=${DB_HOST}"
      - "DB_NAME=${DB_NAME}"
      - "DB_USER=${DB_USER}"
      - "DB_PASSWORD=${DB_PASSWORD}"
      - "SIDECAR_PREVIEWGEN=1"
      - "PREVIEWGEN_PERIOD=0 * * * *"
    restart: always

  news_updater:
    container_name: nextcloud.524.news_updater
    image: crazymax/nextcloud:latest
    depends_on:
      - nextcloud
    volumes:
      - "$PWD/nextcloud:/data"
      - "/lvm/raid/public/nextcloud/data/:/data/data"
    env_file:
      - "./nextcloud.env"
    environment:
      - "TZ"
      - "PUID"
      - "PGID"
      - "DB_TYPE=${DB_TYPE}"
      - "DB_HOST=${DB_HOST}"
      - "DB_NAME=${DB_NAME}"
      - "DB_USER=${DB_USER}"
      - "DB_PASSWORD=${DB_PASSWORD}"
      - "SIDECAR_NEWSUPDATER=1"
      - "NC_NEWSUPDATER_THREADS=10"
      - "NC_NEWSUPDATER_TIMEOUT=300"
      - "NC_NEWSUPDATER_INTERVAL=900"
      - "NC_NEWSUPDATER_LOGLEVEL=error"
    restart: always

  collabora:
    container_name: nextcloud.524.collabora
    image: collabora/code
    cap_add:
      - MKNOD
    expose:
      - 9980
    labels:
      - traefik.enable=true
      - traefik.http.routers.nextcloud-collabora.entrypoints=websecure
      - traefik.http.routers.nextcloud-collabora.rule=Host(`collabora.cloud.example.com`)
      - traefik.http.routers.nextcloud-collabora.service=nextcloud-collabora
      - traefik.http.services.nextcloud-collabora.loadbalancer.server.port=9980
    environment:
      - "domain=collabora.cloud.example.com"
      - "DONT_GEN_SSL_CERT=true"
      - "extra_params=--disable-ssl"
    restart: always

Docker info

Client:
 Debug Mode: false

Server:
 Containers: 69
  Running: 65
  Paused: 0
  Stopped: 4
 Images: 130
 Server Version: 19.03.13
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Native Overlay Diff: true
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: nvidia runc
 Default Runtime: nvidia
 Init Binary: docker-init
 containerd version: 8fba4e9a7d01810a393d5d25a3621dc101981175
 runc version: dc9208a3303feef5b3839f4323d9beb36df0a9dd
 init version: fec3683
 Security Options:
  apparmor
  seccomp
   Profile: default
 Kernel Version: 4.19.0-12-amd64
 Operating System: Debian GNU/Linux 10 (buster)
 OSType: linux
 Architecture: x86_64
 CPUs: 32
 Total Memory: 62.93GiB
 Name: caradhras
 ID: 5OK4:ZOLQ:2ZF4:ST73:R4WC:DJMN:MJCQ:SJVZ:VTP4:KGXU:UKLW:OR6Y
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false

WARNING: No swap limit support

This problem is tracked here: Folder/File Sharing is cleared after couple minutes (on External Storage only) · Issue #25852 · nextcloud/server · GitHub

1 Like

Anybody please?

Thanks for writing this up, I was seeing a similar issue. Looks like you found a solution in the github issue you linked to. I’ll add a note in case anyone else gets stuck.

Folder/File Sharing is cleared after couple minutes (on External Storage only) · Issue #25852 · nextcloud/server · GitHub has a suggestion that worked for me: make sure the cron sidecar container has access to everything the main “nextcloud” container does (e.g. all volumes / external storages).