feat: add WebDAV storage provider (Nextcloud, ownCloud)#25
Open
tikibozo wants to merge 1 commit intotawanorg:mainfrom
Open
feat: add WebDAV storage provider (Nextcloud, ownCloud)#25tikibozo wants to merge 1 commit intotawanorg:mainfrom
tikibozo wants to merge 1 commit intotawanorg:mainfrom
Conversation
885a13c to
6af0ac9
Compare
…nCloud) Add a new WebDAV-based storage provider that enables syncing Claude Code sessions through self-hosted WebDAV servers like Nextcloud or ownCloud, removing the dependency on external cloud storage (R2/S3/GCS). The implementation uses only Go stdlib (net/http, encoding/xml) with no external dependencies. Includes setup wizard, CLI flags, config validation, and PROPFIND XML parser tests. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
6af0ac9 to
9caa740
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
webdavstorage provider enabling sync through self-hosted WebDAV servers (Nextcloud, ownCloud, etc.)net/httpandencoding/xmlfor all WebDAV operations (PUT, GET, DELETE, PROPFIND, MKCOL)--webdav-url,--webdav-username,--webdav-password,--webdav-path-prefix), and config validationMotivation
The existing providers (R2, S3, GCS) all require external cloud accounts. Many users already run Nextcloud or similar WebDAV servers and would prefer to keep their Claude Code session data self-hosted. WebDAV is a widely supported protocol that maps cleanly to the existing
Storageinterface.Implementation
internal/storage/webdav/webdav.goStorageinterface implementation via HTTP/WebDAVinternal/storage/webdav/propfind.gointernal/storage/webdav/propfind_test.gointernal/storage/storage.goProviderWebDAVconstant,NewWebDAVfactory varinternal/storage/config.gointernal/storage/config_test.gocmd/claude-sync/main.goStorage interface mapping
UploadPUTwith autoMKCOLfor parent dirsDownloadGETDelete/DeleteBatchDELETE(sequential for batch)ListPROPFINDdepth-infinity, filters out collectionsHeadPROPFINDdepth-0BucketExistsPROPFINDdepth-0 on root path prefixTest plan
go test ./...)--helpshows WebDAV providerclaude-sync init --provider webdav→ push → pull on second device🤖 Generated with Claude Code