Real-time synchronization from Paperless-ngx to Nextcloud via WebDAV.
10K+
This Docker image mounts a remote WebDAV source and synchronizes the data from /mnt/source to the mounted WebDAV drive in real-time. It is designed for Nextcloud but also proven to work with other cloud systems:
✔ Nextcloud (tested version 30.0)
✔ ownCloud (tested version 10.15)
✔ OpenCloud (tested version 2.3)
✔ web.de smartdrive (tested in 2025-05)
This project provides a seamless way to connect Paperless and Nextcloud, overcoming limitations found in other solutions. It fulfills the following key requirements:
Note
Synchronization is unidirectional (Paperless ➔ Nextcloud) to ensure Paperless’ data integrity.
| Nextcloud Paperless App | Local Mount | SFTP or SMB/CIFS ¹ | This Container | |
|---|---|---|---|---|
| Easy SetUp | ✅ | ✅ | ✅ | ✅ ² |
| Paperless Files available in Nextcloud | ❌ | ✅ | ✅ | ✅ |
| Send files to Paperless consume (File input) | ✅ ³ | ☑️ ⁴ | ☑️ ⁴ | ❌ ³ |
| Services on another Host (same Network) | ✅ | ❌ | ✅ | ✅ |
| remote Services | ✅ | ❌ | ☑️ ⁵ | ✅ |
| Files available in the Nextcloud Search | ❌ ³ | ❌ | ❌ | ✅ |
| Recent Paperless-changes available in Nextcloud Activity App | ❌ ³ | ❌ | ❌ | ✅ |
| Paperless Files backed up in Nextcloud ⁶ | ❌ ³ | ❌ | ❌ | ✅ ⁶ |
| Works with both: Docker and Bare-Metal | ✅ | ✅ ⁷ | ✅ ⁷ | ✖️ ⁸ |
¹ Additional FTP or SMB/CIFS service required
² see prerequisites
³ Nextcloud Paperless App: Nextcloud → Paperless / this container: Paperless → Nextcloud
⁴ a second external mount with writing permission required
⁵ only SFTP (SMB/CIFS not recommended over the Internet!)
⁶ this does NOT replace a regular backup including the Paperless Database
⁷ for Docker: ensure correct mounting
⁸ untested. Probably won't work OOTB and requires a more complex set-up
You may configure the Paperless File name handling first.
Tip
Are you struggling with this short description? Read the full documentation.
Add the container to your Paperless stack using Docker Compose:
nc-sync:
image: flor1der/paperless-nextcloud-sync:latest
volumes:
- "/var/lib/docker/volumes/paperless_media/_data/documents/archive:/mnt/source:ro"
- "./nc-sync_logs/:/var/log/"
environment:
WEBDRIVE_URL: $NEXTCLOUD_URL
WEBDRIVE_USER: $NEXTCLOUD_USER
WEBDRIVE_PASSWORD: $NEXTCLOUD_PASSWORD
TZ: Europe/Berlin
privileged: true
devices:
- "/dev/fuse"
Replace my placeholders and define environment variables:
Under volumes: specify the mount-point of your document library
Fill in the WEBDRIVE_URL, WEBDRIVE_USER, and WEBDRIVE_PASSWORD values.
WEBDRIVE_URL must be the WebDAV-URL of the folder.https://www.DOMAIN.TLD/remote.php/dav/files/YOUR_USERNAME/FOLDERNAMEWEBDRIVE_PASSWORD_FILE instead of WEBDRIVE_PASSWORD.DIR_USER, DIR_GROUP, ACCESS_DIR, and ACCESS_FILE.LC_ALL LANG and LANGUAGE to any value from this table if you experience filename issues with special characters.KEEP_LOGFILE_DAYS if the log files should be preserved for more/less than 90 days.Restart your Paperless instance to activate the container.
Verify the container is running:
docker logs --follow <container-name>
Tip
Are you struggling with this short description? Read the full documentation.

This comes with some extra configuration you must set up, otherwise cronjobs will not work at all:
cronjob-file from this repository to the stack/compose-directory on your docker host (e.g. as nc-sync_cronjobs)chown root and chmod 0644 on the file
- "./nc-sync_cronjobs:/etc/cron.d/cronjobs"Do the same on scripts, if you like (but with chmod 0744)
rsync caused file deletions during synchronization, which my script avoids but still produces error messages (see log example, lines 20-24). Please open issues only if you have a suitable solution!Content type
Image
Digest
sha256:a373a0d27…
Size
53.9 MB
Last updated
19 days ago
docker pull flor1der/paperless-nextcloud-sync