Zotero Webdav Sync

Jan. 2025 Jan. 2025

Zotero is a great open source application for managing research litterature. It's powerful and available on all devices. With the recent version, it even looks good.

However, in order sync between devices, you need cloud storage, but the free tier is only usable for syncing metadata, and the paid tiers have a very steep cost.

zotero sync pricing

However, being open source, Zotero has an option that few commercial software packages have. You can change the syncing server, and use any Webdav compliant server for syncing. Luckily, I do have just such a thing.

How to set up Zotero sync with Webdav

Using bytemark/docker-webdav's Docker image, we can get a Webdav server using Docker.

You can deploy this docker compose raw, or you can take advantage of Coolify's management. We need to edit the configuration slightly to fit with Coolify's expectations.

version: '3'
services:
  webdav:
    image: bytemark/webdav
    restart: always
    ports:
      - 8001:80
    environment:
      AUTH_TYPE: Basic
      USERNAME: '${SERVICE_USER_WEBDAV:-lux}'
      PASSWORD: '${SERVICE_PASSWORD_WEBDAV}'
volumes:
  -   
    type: bind
    source: ./srv/dav
    target: /var/lib/dav
    is_directory: true

The is_directory is for Coolify so it will add the persistent storage correctly. port is to expose a dedicated port as I don't want to open it to the internet, or edit my hostnames (which is not possible on mobile). I only want it to be accessible behind the tailscale vpn. The environment variables are automatically populated and accessible through the UI. You can read more on Coolify's documentaiton. We use Basic authentication to be consistent with what Zotero expects.

To add the application to Coolify, I add an resource, select the empty docker compose application template, and paste the above into it. Then I can access the service at http://hostname:8001.

Then in Zotero, we set the syncing to WebDav and enter the details. (use http, the actual traffic is protected by Tailscale).

zotero webdav config

If you have Tailscale and Zotero on your mobile devices, you can set up syncing using the same technique. Just make sure you're connected to the Tailscale network otherwise the server will be unreachable.

And that's it. Now you don't need to pay the truly steep price for sync storage.

Building a home-lab

Continue reading

Loading...