- info.xml: changing version numbers works from NC14 till NC21.
- generateTP.css: layout fix to fit the contents
- webrtc.css: modification to show the main area in the Spreed.ME app, from NC15 it was just nicer, from NC16 it is required: webrtc now fit - no scrollbar
- security.php: from NC16 certain NC functions removed, one of them affects the TemporaryPassword generation. Oneline dirty fix using random_bytes() PHP function available from PHP 7.0. NC16 requires PHP7.1, everybody wins.
With the above modifications, Spreed.ME app is fully functional until NC21, with the shipped GO server application runs in proxy (NGINX vs. Apache) plus a second standalone (or on another public IPv4 on a big server HW) STUN/TURN server. NO 4 participants limit compared to original Nextcloud Talk (which never really worked for me from the 3rd person on the very same NC instance, where Spreed.ME works well).
- This app can only be used together with a Spreed WebRTC server which is available as open source software (AGPL license) – just like Nextcloud.
- This app requires HTTPS.
- The latest version of this app can be found in the Nextcloud app store or at github.com/strukturag/nextcloud-spreedme.
- Securely communicate with your friends and family using rich audio-, video- and text chat right from your Nextcloud installation – in your browser
- Share presentations and other documents and save them to your Nextcloud
- Share your Nextcloud presentations and other documents
- Share your computer screen
- Share YouTube videos
- ...
This set of installation steps assume that you already have set up Nextcloud using a web server like Nginx or Apache.
Your server has to be available via HTTPS. If your Nextcloud server is not using SSL/TLS yet, you need to enable SSL now.
- Place this app in the apps/ folder of your Nextcloud installation. Make sure the directory of this app is named
spreedme
. - Enable this Nextcloud app by browsing to /index.php/settings/apps
- Open the Nextcloud admin settings page (/index.php/settings/admin#goto-spreed.me) in your browser and configure this app:
- Click on Generate Spreed WebRTC config. It will output the Spreed WebRTC configuration you will need in one of the next steps. Copy it to your clipboard.
- Click on Save settings.
- Set up a Spreed WebRTC server and continue with the next step. An easy-to-follow installation guideline can be found further below, see Installation / Setup of a Spreed WebRTC server.
- You now should have a running Spreed WebRTC server.
- This app requires you to change some settings in the
server.conf
of the Spreed WebRTC server (webrtc.conf
if you use the packaged version):- Empty the contents of the file.
- Paste in the Spreed WebRTC config from step 1 (you should have it in your clipboard).
- Save the file.
- Restart the Spreed WebRTC server to reload its configuration.
- That's it. You can now start communicating securely with your friends and family by opening the Spreed.ME app of your Nextcloud host in your browser.
- By default, all users who can log in to your Nextcloud installation can also use this app (and Spreed WebRTC).
- If you want to limit access to this app (and Spreed WebRTC) only to a selected user-group, open Nextcloud's user configuration site in your browser: /index.php/settings/users.
- Create a new group there (e.g.
Spreed.ME
). For sure you can also use an existing group (likeadmin
). - Now go to Nextcloud's app configuration page /index.php/settings/apps, find this app and check Enable only for specific groups. Then add all groups which should be able to use this app.
- All users not in a group specified in the step above, will neither be able to use this app nor Spreed WebRTC.
- If you want to use Spreed WebRTC with users who do not have an Nextcloud account, you can enable the "Temporary Password" feature on the Nextcloud admin settings page.
- This allows them to use Spreed WebRTC with a "Temporary Password", which admins can generate by clicking on the key icon in the room bar of Spreed WebRTC or at /index.php/apps/spreedme/admin/tp. Admins are either Nextcloud admins or Spreed.ME group admins. Create a group named
Spreed.ME
and add users as a group admin for that group to allow them to generate "Temporary Passwords".
Minimum Spreed WebRTC version: 0.27.0.
If your Nextcloud runs on Ubuntu this is the way to go. See Ubuntu Repository installation instructions on the Spreed WebRTC wiki.
tl;dr:
sudo apt-add-repository ppa:strukturag/spreed-webrtc-unstable
sudo apt-get update
sudo apt-get install spreed-webrtc
If you have Docker it is also a one-liner to install Spreed WebRTC (amd64 architecture required). See Spreed WebRTC Docker on Dockerhub.
Additional Spreed WebRTC custom configuration example (spreed-webrtc-nextcloud.conf):
[http]
basePath = /webrtc/
[app]
authorizeRoomJoin = true
extra.d = /srv/extra/extra.d
[users]
enabled = true
mode = sharedsecret
tl;dr:
docker run --name my-spreed-webrtc -p 8080:8080 -p 8443:8443 \
-v `pwd`:/srv/extra -i -t spreed/webrtc -c /srv/extra/spreed-webrtc-nextcloud.conf
This assumes you have stored the additional configuration spreed-webrtc-nextcloud.conf
in the current directory and also have created the extra.d
folder there. For real world use, it would be wise to replace pwd
with the absolute folder where you have put this stuff.
The Docker container also automatically creates all the required secrets for you on first start. They are printed in the console / log for you. The SHARED_SECRET
line shows the value which needs to be configured in the Spreed.ME Nextcloud app as SPREED_WEBRTC_SHAREDSECRET
value.
Of course you can always install Spreed WebRTC from source. Head over to github.com/strukturag/spreed-webrtc and follow the instructions to install the Spreed WebRTC server.
You need to adjust your existing web server configuration to make Spreed WebRTC available in a subpath. Also don't forget to set your own secrets in the [app] section of Spreed WebRTC's config file. At the very least you should change sessionSecret and encryptionSecret.
Follow our Guide for Apache on how to run Spreed WebRTC on the same host as Nextcloud in an Apache subpath.
Follow our Guide for Nginx on how to run Spreed WebRTC on the same host as Nextcloud in a Nginx subpath.
Running Spreed WebRTC and Nextcloud on different origins is not recommended, as you will not be able to use the Screensharing feature due to browser restrictions. If you still prefer to run them on different origins, please read this document.
If you plan to use a single Spreed WebRTC server with multiple Nextcloud instances,
you should enable / check the SPREED_WEBRTC_IS_SHARED_INSTANCE
flag in this app's configuration.
If you're having trouble getting this app and Spreed WebRTC server to run, simply open /index.php/apps/spreedme/admin/debug of your Nextcloud host in your browser. It might contain information which can help to debug the issue.
To get help and issues please use the issue tracker at github.com/n-connect/nextcloud-spreedme/issues.