S3-WebDAV Proxy
A Docker service that lets S3 clients use ownCloud and Nextcloud storage, with per-user sign-in.
- Role
- Software Developer
- Company
- JankariTech
- Period
- Feb 2026 – now
Apps that already speak the S3 API often need to reach files stored on WebDAV servers such as ownCloud and Nextcloud. Rather than maintain two protocols in every app, this proxy serves WebDAV storage as S3. JankariTech builds it with funding from PointCab GmbH. I wrote the first implementation and every change since, apart from automated dependency updates.
One proxy, many users
The proxy runs rclone's S3 server in Docker. In per-user mode, each S3 request carries the user's WebDAV access token as its access key, and a fixed secret validates the request signature (SigV4). A small Python auth-proxy turns that token into a per-request WebDAV connection with Bearer authentication, so one running proxy serves every user with their own files.
Without the auth-proxy flag, it serves a single static remote, which gives anonymous access to public links. I tested it against ownCloud Infinite Scale with the MinIO client.
Builds that do not drift
I pinned rclone and Alpine to exact versions and multi-arch digests instead of latest, so every build is reproducible. Dependabot now proposes weekly updates for the images and GitHub Actions, and CI builds those pull requests as a smoke test without logging in or pushing, so registry secrets never reach them.
I also wrote the release plan and changelog, and changed CI to tag Docker images by semantic version (1.2.3, 1.2 and 1) from git tags.