Nextcloud as destination for scanned documents

The issue you are facing: So this isn’t actually something I need help with, I just thought I’d share my solution to the issue. Feel free to move it if it belongs elsewhere.

I have a Brother scanner and until recently I was using its “Scan to Dropbox” feature to make scanning really easy. Since switching to Nextcloud I needed a solution. There’s a couple ways to skin that particular cat, but here’s what worked really well for me:

  1. Create a new SMB share of a sub-folder within your Nextcloud data directory. Yes, this means Nextcloud won’t see new files, we’ll tackle that later.
  2. Set up your scanner to upload to this new SMB share
  3. Create a file monitor for that folder that prompts Nextcloud to scan for new files.

In detail, here’s the (very few) changes I needed to make. Starting with a few new lines in smb.conf:

    path = /path/to/nextcloud/data/<username>/files/From_BrotherDevice
   # Whatever user Nextcloud sets as the owner of all files
    valid users = http
    public = no
    comment = Location for scans from Brother scanner
    printable = no
    writable = yes
    create mask = 0770

Restart your SMB server and set up scanning. None of this has to do with Nextcloud, just make sure it works first. You can replace this with other methods, e.g. FTP depending on what you got available.

Now we check for new files using a systemd path file /etc/systemd/system/scan-monitor.path:

Description=Monitor Nextcloud document scan folder


This file will now monitor just that folder. If changes are detected, it’ll run /etc/systemd/system/scan-monitor.service which we’ll create next:

Description=Trigger Nextcloud re-scan of document scan folder

ExecStart=docker exec --user www-data nextcloud-aio-nextcloud /var/www/html/occ files:scan -p <username>/files/From_BrotherDevice

In my example I’m actually running Nextcloud in a docker container, but you can make it even easier if you run on the host, just make sure to remove the docker exec --user www-data nextcloud-aio-nextcloud part, adjust paths and you might want to run it as your http or www-data user, e.g. by using User=www-data for the unit (haven’t tested it though).

Anyway, hopefully this helps some people. It’s obviously not limited to scanning just incidentally the problem I wanted to solve.


just deactivate it