Link Search Menu Expand Document


A plugin to make Nextcloud compatible with Solid.

You can download it via the Nextcloud app store:

Unattended install

To programmatically build a Nextcloud server that has this plugin working, you can look at the nextcloud-server image in the Solid test-suite, combined with how it’s initialized in the script.

Development install

Clone, cd into it, and run:

docker build -t nextcloud-server ./servers/nextcloud-server
docker run -p 443:443 -d --rm --name=server nextcloud-server
echo sleeping
sleep 10
echo slept
docker logs server
docker exec -u www-data -it server sh /
docker exec -u root -it server service apache2 reload

Now visit https://localhost and log in as alice / alice123.

Manual install

If you enable this app in your Nextcloud instance, you should edit your .htaccess file and then test whether redirects to

Also, take the CORS instructions from site.conf and add them to your own webserver configuration.

Unattended testing

To test whether your server is install correctly, you can run Solid’s webid-provider-tests against it.

Manual testing

Go to and create a Solid pod. Go to and log in with Tick all 4 boxes in the consent dialog. Click ‘Load’, type something, click ‘Save’. Grant access to co-editor For instance if you’re using the development install, that would be https://localhost/apps/solid/@alice/profile/card#me Now in a separate browser window, log in to with You should be able to edit the file as a co-author now, using your Nextcloud account as a webid identity provider.

Publishing to the Nextcloud app store

  • create a release on github, for instance v0.0.2
  • tar -cf solid.tar solid/
  • gzip solid.tar
  • edit the release and upload solid.tar.gz as a binary attachment
  • make sure transfer/solid.key and transfer/solid.crt exist
  • openssl dgst -sha512 -sign ./transfer/solid.key ./solid.tar.gz | openssl base64
  • visit
  • go into the developer tools browser console to remove the href attribute on the <a> element around the form elements
  • fill in for instance and the base64 signature from the openssl command
  • click ‘uploaden’
  • good luck!

Copyright © 2020 PDS Interop. Distributed under a MIT license.