t('Rediscover private video chat and messaging! Secure audio, video and text chat integration in Nextcloud, provided by Spreed.ME, brings you safe and easy to use web conferencing, one to one calls and chat, putting control over your communication back into your own hands.');?>
t('Spreed.ME uses a technology called "WebRTC" which allows browsers to make direct, peer to peer connections between each other. These are fully end to end encrypted, both for audio/video and text chat. This means it is entirely impossible for anyone to eaves-drop on the conversation, including even the server administrator!');?>
t('User handling is integrated in Nextcloud so you will show up with avatar and user names all set up. You can also invite people without a user account to a call by creating a temporary password for a user (with the key icon). You will get a link you can give to them to join you in a call. You do not have to enbable this ability, though and you can also restrict the usage of Spreed.ME to a specific user group if you need to!');?>
t('In this video, we walk you through the tutorial below from beginning to end.');?>
t('We will describe how to get Spreed.ME integrated in your server using the Spreed WebRTC source, binaries or a Docker image and the Nextcloud Spreed.ME app.');?>
t('To install, the following dependencies are required:');?>
t('You can either install the Spreed WebRTC Docker container, install packages for your distribution or built the binary yourself.');?>
t('There is a Docker image. It requires that you first create the server.conf, taking the template as can be found on the Docker hub page and modify it following the directions in the third section below. You then have to put it in a place where the Docker image can reach it, in the example below we picked /srv/extra/server.conf
for that.');?>
t('
docker run --rm --name my-spreed-webrtc -p 127.0.0.1:8080:8080 -p 127.0.0.1:8443:8443 -v /srv/extra:/srv/extra -v path-to-your-nextcloud/apps/spreedme/extra:path-to-your-nextcloud/apps/spreedme/extra -i -t spreed/webrtc -c /srv/extra/server.conf
');?>
t('Once it is running, the server will listen on "localhost:8080". You have to change the following in the server.conf of the spreed.me server: section: [http]
entry: listen = 0.0.0.0:8080.
');?>
t('If you are running it in a virtual machine, you may not have enough entropy in /dev/random and the server stick at the keygeneration. To get around this, execute rngd -f -r /dev/urandom
in another terminal session.');?>
t('To run the container in the background, start the container with: run -t -d --name my-spreed-webrtc -p 127.0.0.1:8080:8080 -p 127.0.0.1:8443:8443 -v /srv/extra:/srv/extra -v path-to-your-nextcloud/apps/spreedme/extra:path-to-your-nextcloud/apps/spreedme/extra -i -t spreed/webrtc -c /srv/extra/server.conf
');?>
t('Now we just need to configure Apache to serve Spreed WebRTC from there.');?>
t('There are packages for Ubuntu, see instructions here');?>
t('Building Spreed WebRTC is relatively simple as it is written in Go. Follow these steps, adjusting for your system:');?>
zypper install go
cd /srv/www/htdocs
wget https://github.com/strukturag/spreed-webrtc/archive/master.zip
unzip master.zip
cd spreed-webrtc-master
./autogen.sh
./configure
make
t('You should now have Spreed WebRTC installed.');?>
t('We will now install the Spreed.ME app. This can be done either from the Nextcloud App Store (if it is available there for your version of Nextcloud) or, as we will show here, directly from GitHub.');?>
cd /srv/www/htdocs/nextcloud/apps
wget https://github.com/strukturag/nextcloud-spreedme/archive/master.zip
unzip master.zip
mv nextcloud-spreedme-master spreedme
t('The app is now installed.');?>
t('In this last step we have to do, we configure Apache to make Spreed WebRTC accessible and configure both Spreed WebRTC and the Spreed.ME Nextcloud app to talk to each other. Let us start with Apache.');?>
t('While you could run Spreed WebRTC on a dedicated domain (see the Spreed.ME README), it complicates things so we will put it in its own subpath named webrtc
.');?>
t('Note: The instructions below are for openSUSE, you have to modify them for other Linux variants. Debian, for example, puts web server files in /var/www
.');?>
cd /etc/apache/vhosts.d
vi nextcloud.conf
i
and to save and quit the editor, hit the ESC button and type :wq
followed by enter.');?>
# Spreed WebRTC config (must be in same vhost)
<Location /webrtc>
ProxyPass http://127.0.0.1:8080/webrtc
ProxyPassReverse /webrtc
</Location>
<Location /webrtc/ws>
ProxyPass ws://127.0.0.1:8080/webrtc/ws
</Location>
ProxyVia On
ProxyPreserveHost On
RequestHeader set X-Forwarded-Proto \'https\' env=HTTPS
');?>rcapache2 restart
t('Nginx users should check out the Nginx config file here.');?>
t('We now have to configure the Spreed.ME app.
At first, go to the Nextcloud App Store, locate the app in the \'not enabled\' section and click on Enable
.
Open the Nextcloud admin settings page (/index.php/settings/admin#goto-spreed.me) in your browser and configure this app:');?>
Generate new shared secret
. It will output a random string which you will need in one of the next steps. Copy it to your clipboard or a temporary text file.');?>Save settings
.');?>t('Now we will adjust the Spreed WebRTC config, this is server.conf or webrtc.conf if you have installed packages. This is a large number of steps, each relatively simple but it is important not to miss anything!');?>
cd /srv/www/htdocs/spreed-webrtc-master
cp server.conf.in server.conf
vi server.conf
[http]
section:');?>
basePath
by removing the ;
character in front of the line and set it to the basePath we install Spreed WebRTC in: /webrtc/
. It now should look like:basePath = /webrtc/
');?>[app]
section:');?>
authorizeRoomJoin
and set it to true:authorizeRoomJoin = true
');?>extra
and set it to the full absolute path of the spreedme/extra
directory in your apps folder of your Nextcloud installation:extra = /srv/www/htdocs/nextcloud/apps/spreedme/extra
');?>plugin
and set it to extra/static/owncloud.js
:plugin = extra/static/owncloud.js
');?>sessionSecret
to a random 64-character HEX string. Do NOT use the string given below. You can generate your own 64-character HEX string by running xxd -ps -l 32 -c 32 /dev/random
or openssl rand -hex 32
in a console. It should look like:sessionSecret = bb04fb058e2d7fd19c5bdaa129e7883195f73a9c49414a7eXXXXXXXXXXXXXXXX
');?>encryptionSecret
to a random 64-character HEX string. Do NOT use the string given below. See above on how to generate such a random secret. It should look like:encryptionSecret = bb04fb058e2d7fd19c5bdaa129e7883195f73a9c49414a7eXXXXXXXXXXXXXXXX
');?>[users]
section:');?>
enabled
and set it to true:enabled = true
');?>mode
and set it to sharedsecret
:mode = sharedsecret
');?>sharedsecret_secret
and set it to the random string you have in your clipboard / temporary text file. It should look like:sharedsecret_secret = bb04fb058e2d7fd19c5bdaa129e7883195f73a9c49414a7eXXXXXXXXXXXXXXXX
');?>t('Now, start the server by running ./spreed-webrtc-server in the folder where Spreed WebRTC is located. You can configure a script to run the server automatically when you boot up your system.');?>
t('At this point, you should be able to go to the Spreed.ME app in your Nextcloud and have a working video- and audio conferencing system. Congratulations!');?>
t('Community members are already discussing the Spreed.ME integration. You can find a how-to for installing Spreed.ME under Ubuntu 16.04 an armhf-device (odroid xu4) here!');?>