Both Nextcloud (NC) and OwnCloud (OC) implement the OCM APIs, manage users, storage and files synchronization via WebDAV, so you may want to delegate some of the things we configured at Basic services to be handled by these EFSS solutions. The preferred configuration though is to use Reva as the IOP for the OCM-based federation layer, and this documentation is left for reference.
You will need to run a recent installation of NC/OC, having installed & enabled the sciencemesh
integration app. Please refer to the Deployment docs for a guide.
We will need to change the following configuration sections in the Reva config.
To tell the IOP to store/access user data on NC/OC,
switch the storageprovider configuration to use the nextcloud
driver and point endpoint
to an URL of your OC/NC service.
[http.services.dataprovider]
driver = "nextcloud"
[grpc.services.storageprovider]
driver = "nextcloud"
data_server_url = "https://$yourdomain.iop$/data"
[grpc.services.storageprovider.drivers.nextcloud]
endpoint = "https://$yourdomain.cloud$/index.php/apps/sciencemesh/"
shared_secret = "$some-random-secret-to-be-shared-with-your-oc-nc$"
NOTE: The
nextcloud
driver is compatible both with Nextcloud and ownCloud installations.
To tell the IOP to authenticate users using NC/OC built-in authentication,
switch the authprovider configuration to use the nextcloud
driver and point endpoint
to an URL of your OC/NC service.
[grpc.services.authprovider]
auth_manager = "nextcloud"
[grpc.services.authprovider.auth_managers.nextcloud]
endpoint = "https://$yourdomain.cloud$/index.php/apps/sciencemesh/"
shared_secret = "$some-random-secret-to-be-shared-with-your-oc-nc$"
To tell the IOP to use NC/OC as its user backend, switch the userprovider configuration to use the nextcloud
driver and point endpoint
to an URL of your OC/NC service.
[grpc.services.userprovider]
driver = "nextcloud"
[grpc.services.userprovider.drivers.nextcloud]
endpoint = "https://$yourdomain.cloud$/index.php/apps/sciencemesh/"
shared_secret = "$some-random-secret-to-be-shared-with-your-oc-nc$"
In the same way, we want to override the following OCM services to point to your NC/OC service.
[grpc.services.ocmcore]
driver = "nextcloud"
[grpc.services.ocmcore.drivers.nextcloud]
webdav_host = "https://$yourdomain.cloud$/"
endpoint = "https://$yourdomain.cloud$/index.php/apps/sciencemesh/"
shared_secret = "$some-random-secret-to-be-shared-with-your-oc-nc$"
[grpc.services.ocmshareprovider]
driver = "nextcloud"
[grpc.services.ocmshareprovider.drivers.nextcloud]
webdav_host = "https://$yourdomain.cloud$/"
endpoint = "https://$yourdomain.cloud$/index.php/apps/sciencemesh/"
shared_secret = "$some-random-secret-to-be-shared-with-your-oc-nc$"