Zotero can sync the records in a personal library through its own service while sending the attached files to a WebDAV server. I wanted to see whether a small server on a Windows 11 computer could serve that second role for my own devices. The arrangement is useful, but it has limits that deserve more attention than the Docker command itself.
The distinction between Zotero data and attachment files is essential. Zotero’s sync documentation explains that WebDAV is an option for files in a personal library; group-library files use Zotero Storage. Your library records still sync through Zotero’s servers. A WebDAV server you run on a laptop is available to an iPad only when the laptop is running and reachable on the network.
What a local WebDAV server changes#
A WebDAV server holds the copies Zotero uploads for file syncing. It is not a replacement for Zotero’s local data directory. That directory includes the database and the storage folder used by the desktop application. The WebDAV server needs its own persistent directory, separate from the Zotero data directory. Do not copy Zotero’s local storage folder into a new WebDAV root and expect Zotero to adopt it; let Zotero upload attachments through its normal sync process.
I used Docker Desktop on Windows so that the service and its storage location were easy to identify. The container’s storage must be mounted to a persistent host directory; otherwise removing the container may remove the uploaded copies. A WebDAV image’s mount point and authentication settings depend on that image’s current documentation. Check those details before using a Compose example found online.
For a server intended only for one computer, bind its port to 127.0.0.1. To use it from a phone or tablet on the same trusted network, the server must instead be reachable on the computer’s LAN address, with a firewall rule limited to that network. Avoid forwarding the port from your router to the public internet. Ordinary HTTP with Basic authentication exposes credentials and file contents to other parties able to observe the network. Use HTTPS for access beyond a deliberately isolated, trusted setup.
Connect Zotero, then test a small attachment#
In Zotero Desktop, open Settings → Sync → File Syncing and choose WebDAV for your personal library. Enter the server URL, credentials and the correct HTTP or HTTPS setting. Use Verify Server before syncing. Zotero expects a WebDAV location it can write to and handles its own /zotero/ area; the exact URL field depends on the server’s base path. Follow the verification result rather than manually creating or copying Zotero’s attachment layout.
A practical check uses a small PDF added to the personal library. Sync on the desktop, wait for file upload to finish, then open the same item on the second device. If metadata appears but the PDF does not, inspect the file-sync status and the server’s availability. A browser showing a WebDAV login prompt proves only that the service is reachable; it does not prove Zotero can create, read and update the files it needs.
On an iPad or iPhone, localhost means the mobile device itself. Use the laptop’s LAN address or a properly secured hostname, and configure the same WebDAV account in Zotero’s file-sync settings where supported. Both devices need a network path to the server at sync time. A local server will not deliver a missing attachment while the laptop is asleep or away from the network.
Back up the library independently#
File sync is not a backup. An accidental deletion or a damaged local database can sync to other devices. A second copy made by a cloud client is not automatically a versioned backup, and Windows directory junctions are particularly easy to misunderstand. I no longer recommend the OneDrive junction described in an earlier version of this guide as a backup strategy.
Zotero recommends backing up the entire data directory, including the database and attachments, with Zotero closed when making a manual copy. A versioned backup on another device gives you a point to restore. If you rely on WebDAV for attachments, back up the WebDAV server’s storage separately as well. Check that the files you want to protect actually exist locally before assuming the local copy is complete.
When I would use this setup#
A local WebDAV server can be useful when I control the desktop, understand the network boundary and am willing to keep the service available during sync. It is less convenient for travel or for group libraries. Zotero Storage remains Zotero’s supported default for the simplest multi-device setup; an institutional WebDAV service is another possibility.
The value of running my own server is control over where personal-library attachments are stored. That control comes with maintenance, connectivity and backup work. I would make that trade only after verifying one attachment end to end and a restore from backup.

