I’ve written a Nextcloud app that makes Nextcloud a remoteStorage server: jonocodes/nextcloud-remotestorage. Existing remoteStorage apps work with it unchanged. Users connect with their user@host address, approve access on a Nextcloud consent page, and their data ends up as ordinary files in a remoteStorage/ folder, so versions, trash, quotas and the desktop client all still apply.
It’s small (about 1,700 lines of PHP), uses only public Nextcloud APIs and needs no core patches. It’s in the Nextcloud app store (0.3.2; Apps → search “remoteStorage”). For admins:
- Apache: install and enable the app.
- nginx: also add two small blocks to the documented config (details).
Tested on Nextcloud 34 and 35, with real apps rather than just test pages:
- Unmodified remoteStorage.js 2.0.0-beta.9 connects, syncs, and syncs a second device without conflicts.
- Real apps work unchanged. My Favorite Drinks and Notes Together connect through their own widget and OAuth (a note written in one browser is read back from the server in a second); RS Inspektor (whole-account scope) browses, reads and deletes;
rs-backupbacks up and restores an account with Content-Types intact. - By hand on a real install: a self-hosted Nextcloud (MariaDB) connected to savr from two browsers on the same account, and the files synced.
- api-test-suite passes 52/53 and 0dataapp/spec-check reports 66 passing with 4 known failures; each is a documented test-side or client-side quirk, not the app.
- My test suite is fairly comprehensive, but I myself am not really a Nextcloud user.
Client-compatibility report: TESTING.md. Protocol report: REPORT-app.md. Earlier discussion is in remotestorage.js#1320.
What I’m looking for:
- People willing to try it on a real Nextcloud. It has run on a real self-hosted install (MariaDB) and in Docker with SQLite; PostgreSQL, object storage, server-side encryption and production-scale deployments are untested.
- Reports of remoteStorage apps that misbehave against it.
- Review of the OAuth and token handling. It uses the implicit grant with scoped tokens that can be revoked in Settings → Security.
It’s installable from the app store, or from the repo.