nextcloud / integration_whiteboard

✏ A whiteboard for Nextcloud, using Spacedeck
https://apps.nextcloud.com/apps/integration_whiteboard
GNU Affero General Public License v3.0
54 stars 7 forks source link
nextcloud whiteboard

Whiteboard integration in Nextcloud

πŸ–΅ Nextcloud Whiteboard, powered by Spacedeck.

This app integrates Spacedeck whiteboard server. It lets Nextcloud users create .whiteboard files which can then be opened in the Files app and in Talk. Those files can be shared to other users or via public links. Everyone having access with write permissions to such a file can edit it collaboratively.

⚠ This app is still experimental and can fail in some custom Nextcloud setups.

πŸ›  Install

There are 2 ways to setup this app:

This is recommended to deploy and use a standalone Spacedeck server for:

Spacedeck has a few optional requirements to be able to convert media files:

To use the bundled Spacedeck server, just install the app and you're good to go.

Follow these instructions to deploy a standalone Spacedeck server.

π„˜ Features

⚠ Limitations

πŸ‘€ Screenshots

screenshot

Deploy Spacedeck

Spacedeck can be deployed on the same system hosting your Nextcloud instance or on a different system.

In order to deploy a standalone Spacedeck server, you will be guided into those steps:

Requirements on the system hosting Spacedeck:

Get Spacedeck sources

git clone https://github.com/eneiluj/spacedeck-open -b ext-access-control
cd spacedeck-open
npm install

Configure Spacedeck

Go to the "Connected accounts" section of your Nextcloud admin settings. Find the Spacedeck integration settings. Uncheck "Use integrated Spacedeck server". Copy the "ext_access_control" suggested by the hints. This should look like:

https://YOUR.NEXTCLOUD.ORG/index.php/apps/integration_whiteboard/session/check

Edit the spacedeck-open/config/default.json file and set the "ext_access_control" value with the one you copied before. This enables Nextcloud to manage permissions on the boards.

You can also adjust other config values to your convenience:

Change the other values only if you know what you are doing.

Launch Spacedeck

Then start the Spacedeck server:

npm run start

and browse the Spacedeck web interface.

Create a Spacedeck user for Nextcloud

A single Spacedeck user is required by Nextcloud to create and edit boards. We will create this user manually and set an "API token" for Nextcloud.

Optionally make Spacedeck accessible via a reverse proxy in a virtual host

Your Spacedeck server must be accessible by the browsers of your users and by your Nextcloud server so you might need a reverse proxy to make it possible to reach it through your webserver.

⚠ Warning: Spacedeck only works if it is reachable at the root path. Make sure you don't use a sub path in your virtual host.

Here is an example of Apache virtual host proxying to Spacedeck (with Websocket support). This makes Spacedeck (which is listening to the 9666 port) accessible at https://spacedeck.myserver.org

<VirtualHost *:443>
        ServerName spacedeck.myserver.org
        ProxyPreserveHost On
        ProxyPass  / http://localhost:9666/
        ProxyPassReverse / http://localhost:9666/
        ProxyPreserveHost On

        # only if you want to provide an HTTPS access to Spacedeck (highly recommended)
        SSLProxyEngine On
        SSLProxyVerify none
        SSLProxyCheckPeerCN off
        SSLProxyCheckPeerName off
        SSLProxyCheckPeerExpire off
        SSLCertificateFile /etc/letsencrypt/live/myserver.org/fullchain.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/myserver.org/privkey.pem

        ProxyPassMatch "/socket" ws://localhost:9666/socket nocanon
        ProxyPassMatch "/socket/" ws://localhost:9666/socket/

        RewriteEngine On
        RewriteCond %{HTTP:Upgrade} =websocket
        RewriteRule /(.*)           ws://localhost:9666/socket [P,L]
        RewriteCond %{HTTP:Upgrade} !=websocket
        RewriteRule /(.*)           http://localhost:9666/$1 [P,L]
</VirtualHost>

Configure the Nextcloud whiteboard integration app

Get back to the "Connected accounts" section of your Nextcloud admin settings. Enter the Spacedeck server URL and the API token you have set for your Spacedeck user.

Reminder: Your Spacedeck server must be accessible by the browsers of your users and by your Nextcloud server.

Check your setup

Press "Check Spacedeck config" to make sure you can reach Spacedeck with your browser and that your Nextcloud server can access Spacedeck's API. If the check is successful, you are ready to use the Spacedeck integration. Go to the Files app and create a new whiteboard file.