Add WebDAV service backed by RustFS S3 for Zotero file sync #98

Closed
kert wants to merge 0 commits from feat/zotero-webdav into main
Owner

Summary

  • Add rclone/rclone container serving WebDAV on port 8080, backed by RustFS S3 zotero bucket
  • Add rustfs/policies/zotero.json IAM policy for dedicated bucket access
  • Add Traefik route at webdav.homelab.fhirworx.io
  • Add WEBDAV_* env vars to .env.example
  • Configure Zotero preferences for WebDAV storage sync

Closes #94, closes #95, closes #96, closes #97

Architecture

Zotero → WebDAV (rclone:8080) → S3 (rustfs:9000/zotero)
                ↑
         Traefik route: webdav.homelab.fhirworx.io

Setup after merge

  1. Create zotero bucket: mc mb local/zotero
  2. Create IAM user and attach zotero policy
  3. Set WEBDAV_S3_ACCESS_KEY, WEBDAV_S3_SECRET_KEY, WEBDAV_PASS in .env
  4. docker compose up -d webdav
  5. In Zotero: Edit → Settings → Sync → File Syncing → WebDAV, verify server

Test plan

  • docker compose config --quiet passes
  • WebDAV container starts and connects to RustFS
  • Zotero "Verify Server" succeeds in sync settings
  • Create item with PDF attachment, confirm file appears in S3 bucket
  • Existing tests pass (11863/11863)
## Summary - Add `rclone/rclone` container serving WebDAV on port 8080, backed by RustFS S3 `zotero` bucket - Add `rustfs/policies/zotero.json` IAM policy for dedicated bucket access - Add Traefik route at `webdav.homelab.fhirworx.io` - Add `WEBDAV_*` env vars to `.env.example` - Configure Zotero preferences for WebDAV storage sync Closes #94, closes #95, closes #96, closes #97 ## Architecture ``` Zotero → WebDAV (rclone:8080) → S3 (rustfs:9000/zotero) ↑ Traefik route: webdav.homelab.fhirworx.io ``` ## Setup after merge 1. Create `zotero` bucket: `mc mb local/zotero` 2. Create IAM user and attach `zotero` policy 3. Set `WEBDAV_S3_ACCESS_KEY`, `WEBDAV_S3_SECRET_KEY`, `WEBDAV_PASS` in `.env` 4. `docker compose up -d webdav` 5. In Zotero: Edit → Settings → Sync → File Syncing → WebDAV, verify server ## Test plan - [ ] `docker compose config --quiet` passes - [ ] WebDAV container starts and connects to RustFS - [ ] Zotero "Verify Server" succeeds in sync settings - [ ] Create item with PDF attachment, confirm file appears in S3 bucket - [ ] Existing tests pass (11863/11863)
kert added 1 commit 2026-03-22 04:18:07 +00:00
refs #94 #95 #96 #97

- Add rclone/rclone container serving WebDAV on port 8080, backed
  by the existing RustFS S3 with a dedicated zotero bucket
- Add rustfs/policies/zotero.json IAM policy for bucket access
- Add Traefik route at webdav.homelab.fhirworx.io
- Add WEBDAV_* env vars to .env.example
- Configure Zotero prefs for WebDAV storage sync
kert closed this pull request 2026-03-23 17:56:58 +00:00

Pull request closed

Sign in to join this conversation.