Link Search Menu Expand Document

solid-nextcloud

A plugin to make Nextcloud compatible with Solid.

You can download it via the Nextcloud app store: https://apps.nextcloud.com/apps/solid

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 runTests.sh script.

Development install

Clone https://github.com/pdsinterop/test-suites, 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 /init.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 https://your-nextcloud-server.com/.well-known/openid-configuration redirects to https://your-nextcloud-server.com/apps/solid/openid.

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 https://solidcommunity.net and create a Solid pod. Go to https://generator.inrupt.com/text-editor and log in with https://solidcommunity.net. Tick all 4 boxes in the consent dialog. Click ‘Load’, type something, click ‘Save’. Grant access to co-editor https://your-nextcloud-server.com/apps/solid/@your-username/profile/card#me. 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 https://generator.inrupt.com/text-editor with https://your-nextcloud-server.com. 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 https://apps.nextcloud.com/developer/apps/releases/new
  • go into the developer tools browser console to remove the href attribute on the <a> element around the form elements
  • fill in for instance https://github.com/pdsinterop/solid-nextcloud/releases/download/v0.0.2/solid.tar.gz and the base64 signature from the openssl command
  • click ‘uploaden’
  • good luck!

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