Sync Zotero Library to Nextcloud
For my research, I’m using Zotero for bibliography management. It’s free, it’s great, and it fits perfectly for my needs. In this blog post, I show how to configure Zotero to synchronize your Zotero Library to Nextcloud.
For some of the research papers I’ve read during my research activities, there are several (mostly, but not always, similar) versions, for some other papers it is very difficult to find the document. Therefore, I decided to always keep a digital copy of the document I’ve just read, just to ensure to be able to access the exact same version I have accessed before. Zotero allows for attaching files to an entry, and furthermore allows for synchronizing the library as all as the attachments. While synchronizing the bibliography entries meta data (authors, title, …) seems to be free and unlimited, only 300MB of document storage are for free per account. Zotero offers paid plans to increase the storage limit, or to use own, WebDAV based, storage.
Since I have a running Nextcloud instance with WebDAV support, I decided to use my Nextcloud for the synchronization. Actually, it is quite easy to configure it accordingly, however, I spent some time on finding that out and there are also some open posts in the Zotero forums, therefore I’m going to document my solution here.
Configuring the Synchronization of your Zotero Library to Nextcloud
First, we need to create a folder in Nextcloud. Please note that Zotero requires the path to end with zotero
. Also consider if you want to use your global Nextcloud credentials (which I don’t recommend to do) or to create a dedicated shared folder for this, which will provide you with extra credentials just for this purpose. Since the name of the folder configured to be shared does not show up in the URL, within the shared folder there has to be the zotero
folder containing the actual synchronized attachments.
In my Nextcloud instance, I created a folder PhD/Zotero/zotero
and configured and configured the directory PhD/Zotero
to be accessible and editable using a link. The link then should look like this:
https://nextcloud.example.com/s/1337R4nd0mSh4r3S3cret
Now, in Zotero client, configure Sync (Edit -> Preferences -> Sync) as follows: Set File Syncing mode to WebDAV, as URL put nextcloud.example.com/public.php/webdav
, and as username as well as password use the sharing secret (the last part of the URL). That should be it.
Update
The URL nextcloud.example.com/public.php/webdav
is correct when using a sharing secret for the credentials. When using the actual account username and password, the URL is nextcloud.example.com/remote.php/webdav
.
11 COMMENTS
Thanks, that worked a treat!
Thanks, it worked. The drawback is that the files cannot be viewed online, they are saved as zip-files with arbitrary numbers. Moreover, the papers cannot be accessed from the Zotero Web Library., they are greyed out in the attachment pane. I wish there was a solution for that. So, for me, there is no real benefit for using the Nextcloud sync in comparison to using the (paid) Zotero storage. (I hope I miss something here, though…)
It worked! Thanks for sharing!
Thanks for the article!
Very useful, thank you. Even worked with my university
I have Zotero installed in my Mac and pointing to the Nextcloud folder. Then Nextcloud sync makes with my Zotero files always updated in the server.
Sorry, I did not understood which is the advantage of using the webdav connection, can you please explain?
Thank you.
It’s up to you to judge if it an advantage. You can leave it without syncing or sync to Zotero storage – whatever you want. See https://www.zotero.org/support/sync#file_syncing
About “Zotero Storage” I don’t even consider it for two reasons: 1 – 300 Mb is nothing for my library and I would need to pay for what I can have full control myself; 2 – I don’t want my data elsewhere depending on them;
My purpose with my question is just to understand why someone would use such an option. Why would I go through WebDAV connection, when using the most basic approach – Zotero pointing to a local folder (inside of my NextCloud folder in my Mac) that syncs with my Nextcloud instance – makes sure that I don’t need to rely on network connection and delivers most performance possible.
Can you please clarify? Thank you.
No, I can’t, for a very simple reason: It’s a personal decision which option you prefer. I, personally, would trust Zotero for storing my documents as it does not contain anything secret, but 300MB is not enough for me. I have Nextcloud running anways, any I like the synchronization feature. But everybody is free to like another option more, such as local file sync, or not syncing at all. This blog post is just about how to connect your Zotero with your NextCloud, not about the why.
Ok, thank you for the clarification. So the purpose of the post is to give other choices.
It’s like telling people: “You have the freedom to eat a pizza with a spoon. It doesn’t make any sense, neither helps, but you have that option. The why doesn’t matter, but you can. Empower yourself to be yourself.”
Woke FTW. đ
No actually is not a nonsensical option at all, for me it was the only one available: In my case i want to set up a sync and i have years of imported papers in my original device, imported with different methods (drag and drop, link to different folders with literature, zotero browser plug in import, etc. i tried them all from time to time). now i am setting a secondary device, and i want a ‘clean’ install with all my literature in one folder. i cannot bother looking up all the different folders i have papers on and imported (as links for example, this is without copying to the zotero folder – not to have duplicates) and uploading them by hand in a custom nextcloud folder, and to do that i would have to either delete the original linked files or keep duplicates which i am trying to avoid as you can imagine. so syncing with the sync option (via webdav in nexcloud or zotero storage) to set up my new device clean and avoid duplicates in my older device is the only option for me afaik.
hope this example helped.