Skip to content

Commit 5987f03

Browse files
Update snap install instructions (see also #92)
1 parent ace8f0a commit 5987f03

1 file changed

Lines changed: 20 additions & 107 deletions

File tree

INSTALL.md

Lines changed: 20 additions & 107 deletions
Original file line numberDiff line numberDiff line change
@@ -1,113 +1,25 @@
11
# Installing this app to your Nextcloud
22

3-
## Set up /.well-known/openid-configuration
4-
After installing and enabling the appin your Nextcloud instance, take the JSON from e.g.
3+
If you have installed Nextcloud [using snap](https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-nextcloud-on-ubuntu-22-04)
4+
you should be able to run the latest version of this app.
55

6-
`https://cloud.pondersource.org/index.php/apps/solid/openid` (depending on your hostname and whether you have the `index.php/` part in there)
7-
8-
and put that into e.g. `/var/www/html/.well-known/openid-configuration` (depending on your webroot being e.g. `/var/www/html`).
9-
10-
In earlier versions of this app (e.g. the one in the Dockerfile we use for running the Solid test suite) we
11-
used a redirect from /.well-known/openid-configuration to /index.php/apps/solid/openid but it's difficult
12-
to add CORS headers to a redirect, so that's why just copying the file into a folder like that is preferable.
13-
14-
If you do want to try doing it with the redirect, you should
15-
[edit your .htaccess file](https://github.com/solid-contrib/test-suite/blob/665824af763ddd5dd7242cbc8b18faad4ac304e3/servers/nextcloud-server/init.sh#L5)
16-
and then test whether https://your-nextcloud-server.com/.well-known/openid-configuration redirects to https://your-nextcloud-server.com/apps/solid/openid.
17-
18-
Check that it works: `https://cloud.pondersource.org/.well-known/openid-configuration`
19-
20-
## If your Nextcloud was installed using Snap
21-
22-
Steps you probably already took:
23-
* Point a DNS A record to the server that will run Nextcloud, for instance "A test-nextcloud-snap 188.166.99.179"
24-
* Install Nextcloud using Snap:
25-
> root@ubuntu-s-4vcpu-8gb-amd-ams3-01:~# snap install nextcloud
26-
> nextcloud 22.2.0snap2 from Nextcloud✓ installed
27-
28-
* Browse to it over http and complete the setup:
29-
30-
<img width="960" alt="Screenshot 1" src="https://user-images.githubusercontent.com/408412/140734318-2872d19c-8a2d-40a5-8e89-e0474c705840.png">
31-
32-
It's important that you have a public DNS A record pointing to the server, since you'll need it to enable https, which is a requirement for Solid:
33-
34-
* Run this on your server to add a LetsEncrypt cert to your Nextcloud:
35-
36-
```sh
37-
root@ubuntu-s-4vcpu-8gb-amd-ams3-01:~# nextcloud.enable-https lets-encryptIn order for Let's Encrypt to verify that you actually own the
38-
domain(s) for which you're requesting a certificate, there are a
39-
number of requirements of which you need to be aware:
40-
41-
1. In order to register with the Let's Encrypt ACME server, you must
42-
   agree to the currently-in-effect Subscriber Agreement located
43-
   here:
44-
45-
       https://letsencrypt.org/repository/
46-
47-
   By continuing to use this tool you agree to these terms. Please
48-
   cancel now if otherwise.
49-
50-
2. You must have the domain name(s) for which you want certificates
51-
   pointing at the external IP address of this machine.
52-
53-
3. Both ports 80 and 443 on the external IP address of this machine
54-
   must point to this machine (e.g. port forwarding might need to be
55-
   setup on your router).
56-
57-
Have you met these requirements? (y/n)
58-
Please answer yes or no.
59-
Have you met these requirements? (y/n) yes
60-
Please enter an email address (for urgent notices or key recovery): michiel-testing@pondersource.com
61-
62-
Please enter your domain name(s) (space-separated): test-nextcloud-snap.michielbdejong.com
63-
Attempting to obtain certificates... done
64-
65-
Restarting apache... done
66-
root@ubuntu-s-4vcpu-8gb-amd-ams3-01:~# 
67-
```
68-
69-
* Now you can visit your Nextcloud over https:
70-
71-
<img width="960" alt="Screenshot 2" src="https://user-images.githubusercontent.com/408412/140734389-b3d30abd-8568-415f-a3b9-38d8d4249018.png">
72-
73-
* Go to the 'Apps' menu:
74-
75-
<img width="960" alt="Screenshot 3" src="https://user-images.githubusercontent.com/408412/140734411-49661501-43ab-4821-b8a2-60dbc442f964.png">
76-
77-
* Search for 'solid':
78-
79-
<img width="1270" alt="Screenshot 4" src="https://user-images.githubusercontent.com/408412/140734420-6bb1ac6f-b4ee-4df5-b88d-544cdb82f174.png">
80-
81-
* Download and install:
82-
83-
<img width="1152" alt="Screenshot 5" src="https://user-images.githubusercontent.com/408412/140734504-5cdc4837-9e35-4b47-b091-69b9ff913081.png">
84-
85-
* If you can't find v0.4.3 in through the search function, you can also download it explicitly:
86-
> `root@ubuntu-s-4vcpu-8gb-amd-ams3-01:/var/snap/nextcloud/current/nextcloud/extra-apps# wget https://github.com/pdsinterop/solid-nextcloud/releases/download/v0.4.3/solid.tar.gz`
87-
* In all cases, make sure you click 'Enable' for the Solid app on https://test-nextcloud-snap.michielbdejong.com/index.php/settings/apps
88-
* Now test with your browser: `https://test-nextcloud-snap.michielbdejong.com/index.php/apps/solid/openid`
89-
* It should be a JSON document, something like `{"id_token_signing_alg_values_supported":["RS256"],"subject_types_supported":["public"],"response_types_supported":[...`
90-
* The following [is a bit tricky](https://github.com/nextcloud-snap/nextcloud-snap/issues/412#issuecomment-930878692) but it seems to work:
91-
```sh
92-
sudo cp -r /snap/nextcloud/current/htdocs /var/snap/nextcloud/current/nextcloud/config/
93-
cd /var/snap/nextcloud/current/nextcloud/config/htdocs
94-
sudo mount /var/snap/nextcloud/current/nextcloud/config/htdocs /snap/nextcloud/current/htdocs/ -o bind
95-
```
96-
Now make the change described in the "Set up /.well-known/openid-configuration" section above, but using
97-
`/var/snap/nextcloud/current/nextcloud/config/htdocs/.well-known/openid-configuration` as the directory.
98-
99-
FIXME: How can you edit the Apache site.conf if installed via Snap? Maybe see if the Header directive
100-
can live in `/var/snap/nextcloud/current/nextcloud/config/htdocs/.well-known/.htaccess` instead?
101-
102-
Restart Apache using:
103-
```sh
104-
sudo snap restart nextcloud.apache
105-
```
106-
107-
* Now test that `https://test-nextcloud-snap.michielbdejong.com/.well-known/openid-configuration` redirects to `https://test-nextcloud-snap.michielbdejong.com/index.php/apps/solid/openid`
108-
* Add this to your /etc/fstabs and restart the server:
6+
## Building from source
7+
In the future you will be able to install the app just from the app store, or by running `sudo nextcloud.occ app:install solid`.
8+
But currently (September 2022) that still installs version 0.0.3, which means you need to install from source. Specifically, you will need code from [this PR](https://github.com/pdsinterop/solid-nextcloud/pull/93) which is still unmerge at the time of writing. To switch the version of your Solid app from the "store-bought" version to the latest unreleased version, you will need to build from source:
1099
```
110-
/var/snap/nextcloud/current/nextcloud/config/htdocs /snap/nextcloud/current/htdocs none auto,bind,x-systemd.before=snap.nextcloud.apache.service,x-systemd.requires-mounts-for=/snap/nextcloud/current/,x-systemd.required-by=snap.nextcloud.apache.service 0 0
10+
sudo /bin/bash
11+
cd /var/snap/nextcloud/current/nextcloud/extra-apps/
12+
rm -r solid
13+
git clone https://github.com/pdsinterop/solid-nextcloud
14+
ln -s solid-nextcloud/solid
15+
cd solid
16+
git checkout well-known-cors
17+
apt update
18+
apt install -y php git php-curl php-gd php-opcache php-xml php-gd \
19+
php-curl php-zip php-json libxml2 libxml2-dev php-xml php-mbstring \
20+
build-essential curl php-sqlite3 php-xdebug php-mbstring php-zip \
21+
php-imagick imagemagick php-intl
22+
make
11123
```
11224

11325
## Troubleshooting
@@ -135,4 +47,5 @@ sudo snap restart nextcloud.apache
13547
</Directory>
13648
```
13749
(notice, importantly, the `AllowOverride All` that makes apache read your .htaccess in the first place) and then run `systemctl restart apache2`.
138-
* find a way to enable CORS headers (not sure exactly how to do this, see https://github.com/pdsinterop/solid-nextcloud/issues/57)
50+
* if installed through snap, the logs you want to check server-side are in `/var/snap/nextcloud/current/logs/`
51+
* if installed the old way with Apache, check `/var/log/apache2/error.log` and `/var/www/html/data/nextcloud.log`

0 commit comments

Comments
 (0)