pdsinterop / solid-nextcloud

A plugin to make Nextcloud compatible with Solid
https://pdsinterop.org/solid-nextcloud/
MIT License
72 stars 11 forks source link

Custom domain #123

Open NoelDeMartin opened 1 year ago

NoelDeMartin commented 1 year ago

I recently realized that the url of documents are a bit cumbersome to use. For example, in my local instance the webId is the following:

http://nextcloud.local/index.php/apps/solid/@admin/profile/card#me. Where:

I wonder if it would be possible to configure it so that the Solid POD is served on a custom domain? Ideally I could set it up to be whatever I want, like https://mypod.com/profile/card#me. I guess I could do some rewrites in the server itself to make it transparent to the app, but the RDF data in the POD would still contain the entire url, right? Is there a way to work around this?

Potherca commented 1 year ago

Good question! I don't know the answer straight away, I'll have to dive into the code and come back to you on this.

poef commented 1 year ago

A related issue that could be fixed with custom domains is a security issue. If you host HTML content for different people under the same domain, you can get all kinds of security issues. If each person got their own subdomain, e.g. auke.solid-nextcloud.org/, these problems would go away. So I think we should try to make this the default, or at least very easy to setup. I know how to do this for Apache and Nginx should be easy as well, but this side is almost impossible to automate. On the nextcloud (or solid plugin) side we'll need some extra code as well, not sure how much work this will be. Anyway, I would like to prioritize this issue.

Potherca commented 10 months ago

Looking at the docs it would be easy to go:

using "Pretty URLs"

In theory it could be possible to go

by customizing the app directories

Although that is likely to have unexpected side effects.

Alternatively, as the Pretty URLs solution requires editing Apache config or .htaccess for redirects, something could be done there, but that would require some further thinking.

I think part of the issue is that Nextcloud is created with the idea of multiple users in mind... Not entirely sure how that would impact trying to get rid of the @admin in the URL. We'd have to experiment to find out, I guess.