Installing Speed.Me webrtc on armhf-device (odroid xu4) under Ubuntu 16.04

App configuration
sudo apt-add-repository ppa:strukturag/spreed-webrtc-unstable
sudo apt-get update && sudo apt-get install spreed-webrtc

we’ll now install the Spreed.ME app.
This can be done either from the app store (if it is available there for your version of Nextcloud)
or, as shown here, directly from github.

Go to the nextcloud app folder on your server.
cd /var/www/nextcloud/apps
Download the zip file with the app
wget https://github.com/strukturag/nextcloud-spreedme/archive/master.zip
Extract the app
unzip master.zip
Rename the folder to spreedme
mv nextcloud-spreedme-master spreedme
The app is now installed.

Now configurate Apache2
Make sure you have the module mod_proxy_wstunnel enabled. In addition proxy,proxy_http and headers modules have to be enabled.
a2enmod proxy proxy_http proxy_wstunnel headers
cd /etc/apache2/sites-available/
nano 001-default-ssl.conf
Locate the closing tags for your virtual host:
And insert this above it:

Spreed.ME config (must be in same vhost)

ProxyPass http://192.168.1.234:8088/webrtc 
ProxyPassReverse /webrtc 

ProxyPass ws://192.168.1.234:8088/webrtc/ws 
 
ProxyVia On 
ProxyPreserveHost On 
RequestHeader set X-Forwarded-Proto 'https' env=HTTPS

sudo a2dissite 001-default-ssl.conf
sudo service apache2 restart
sudo a2ensite 001-default-ssl.conf
sudo a2ensite 001-default-ssl.conf
sudo service apache2 restart

Go to the folder where you installed the Spreed.ME server software
cd /etc/spreed
make a backup
cp webrtc.conf webrtc.conf.in
nano webrtc.conf

In the [http] section:Enable basePath by removing the ; character in front of the line and set it to the basePath we
install Spreed.ME in: /webrtc/. It now should look like:
basePath = /webrtc/
In the [app] section:add serverToken = randomEnable authorizeRoomJoin and set it to true:
authorizeRoomJoin = true
Enable extra and set it to the full absolute path of the
spreedme/extra directory in your apps folder of your Nextcloud installation:
extra = /var/www/owncloud/apps/spreedme/extraEnable plugin and set it to extra/static/owncloud.js:
plugin = extra/static/owncloud.js

The latest version of Spreed.ME does this automatically so you don’t need to set this in the [users] section:
Enable enabled and set it to true:
enabled = true
Enable mode and set it to sharedsecret:
mode = sharedsecret
Enable sharedsecret_secret and set it 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:
sharedsecret_secret = bb04fb058e2d7fd19c5bdaa129e7883195f73a9c49414a7eXXXXXXXXXXXXXXXX

Now save and close the file. You will need to copy the shared secret in another file, so keep it in your clipboard, another terminal or a temporary text file.

Now, start the server
service spreed-webrtc restart

less /var/log/spreed/webrtc/server.log
control log
test 192.168.1.234:8088/webrtc

App configuration
Now, we have to configure the Spreed.ME app so it can talk to the Spreed.ME server.

Go to the nextcloud spreedme app configuration folder
cd /var/www/owncloud/apps/spreedme/config
Create the config file from the default file
cp config.php.in config.php
nano config.php
Edit the config file and make these modifications:
Set SPREED_WEBRTC_BASEPATH to /webrtc/:
const SPREED_WEBRTC_BASEPATH = '/webrtc/';
Set SPREED_WEBRTC_SHAREDSECRET to the shared secret you generated for the
Spreed.ME server configuration above:
const SPREED_WEBRTC_SHAREDSECRET =
‘bb04fb058e2d7fd19c5bdaa129e7883195f73a9c49414a7eXXXXXXXXXXXXXXXX’;
You can choose to modify OWNCLOUD_TEMPORARY_PASSWORD_LOGIN_ENABLED to true to allow your users to invite other, unregistered users for a call. With this on false users need to have a Nextcloud account to join a call. If you enable it, generate a new random string and put it below, see the included instructions.

Now save and close the file.
Go to the nextcloud spreedme app extra/static/config folder
cd /var/www/nextcloud/apps/spreedme/extra/static/config

Create the javascript config file
cp OwnCloudConfig.js.in OwnCloudConfig.js

If you put Spreed.ME in /webrtc/ (as this manual assumes), you don’t need to make any other changes. If you put it in its own domain you have to edit the file and make sure you set OWNCLOUD_ORIGIN to your Nextcloud server.Now the app is configured, go to the Nextcloud App store, locate the app in the ‘not enabled’ section and click on Enable!

1 Like

Actually, running the spreed.ME server is as easy as sudo snap install spreedme. Instructions are here:

1 Like