Spreed.me debug WebRTC API

Hello.
I install Spreed.me and Nextcloud on different origins.

Spreed.me: https://<domain>/spreed/
Nextcloud: https://<domain>/cloud/

https:///cloud/index.php/apps/spreedme/admin/debug

Spreed.ME Version 0.3.6

Ran test #1 (testOwncloudPhpConfigFile):
   Passed without an error

Ran test #2 (testOwncloudJavascriptConfigFile):
   Passed without an error

Ran test #3 (testSpreedWebRTCAPI):
   Error: WebRTC API config endpoint does not include a plugin

Some tests failed. :(

Help me, please.

ToDo:

sudo apt-add-repository ppa:strukturag/spreed-webrtc
sudo apt-get update
sudo apt-get install spreed-webrtc

systemctl status spreed-webrtc
sudo systemctl start spreed-webrtc
sudo systemctl enable spreed-webrtc

sudo apt-get install apache2

sudo sed -i "s|Listen 80|Listen 8081|" /etc/apache2/ports.conf
sudo sed -i "s|<VirtualHost \*:80>|<VirtualHost \*:8081>|" /etc/apache2/sites-enabled/000-default.conf

sudo netstat -tulpn | grep :8081

sudo nano /etc/apache2/sites-available/spreed-webrtc.conf
<Directory /var/www/>
  Order Deny,Allow
  Deny from all
  Options None
  AllowOverride None
</Directory>

<Location /spreed>
  ProxyPass http://127.0.0.1:8080/spreed
  ProxyPassReverse /spreed
</Location>

<Location /spreed/ws>
  ProxyPass ws://127.0.0.1:8080/spreed/ws
</Location>

ProxyVia On
ProxyPreserveHost On
RequestHeader set X-Forwarded-Proto 'https' env=HTTPS


sudo a2enmod proxy proxy_http proxy_wstunnel headers && sudo service apache2 restart
sudo a2ensite spreed-webrtc && sudo service apache2 reload

Nextcloud -> Additional settings -> Generate Spreed WebRTC config -> *copy* and Save Settings

// on Spreed WebRTC server
sudo mv /etc/spreed/webrtc.conf /etc/spreed/webrtc.conf.bak
sudo sh -c 'cat /dev/null > /etc/spreed/webrtc.conf'
sudo nano /etc/spreed/webrtc.conf   // *paste*

[http]
listen = 127.0.0.1:8080
basePath = /spreed/
root = /usr/share/spreed-webrtc-server/www
; stats = false

[app]
title = Spreed WebRTC
sessionSecret = ...
encryptionSecret = ...
; globalRoom = global
; defaultRoomEnabled = true
authorizeRoomJoin = true
; authorizeRoomCreation = false
serverToken = ...
serverRealm = local
extra = /usr/share/spreed-webrtc-server/extra
; extra.d = /usr/share/spreed-webrtc-server/extra.d
plugin = extra/static/owncloud.js

[modules]
; screensharing = true
; youtube = true
; presentation = true
; contacts = true

[log]
; logfile = /var/log/spreed/webrtc/server.log

[users]
enabled = true
mode = sharedsecret
sharedsecret_secret = ...
allowRegistration = false



// on Nextcloud server
sudo cp /var/www/nextcloud/apps/spreedme/config/config.php.in /var/www/nextcloud/apps/spreedme/config/config.php
sudo nano /var/www/nextcloud/apps/spreedme/config/config.php

sudo sed -i "s|const SPREED_WEBRTC_ORIGIN = '';|const SPREED_WEBRTC_ORIGIN = '';|" /var/www/nextcloud/apps/spreedme/config/config.php && \
sudo sed -i "s|const SPREED_WEBRTC_BASEPATH = .*|const SPREED_WEBRTC_BASEPATH = '/spreed/';|" /var/www/nextcloud/apps/spreedme/config/config.php

sudo sed -i "s|const SPREED_WEBRTC_SHAREDSECRET = .*|const SPREED_WEBRTC_SHAREDSECRET = '...';|" /var/www/nextcloud/apps/spreedme/config/config.php

sudo sed -i "s|const SPREED_WEBRTC_IS_SHARED_INSTANCE = false;|const SPREED_WEBRTC_IS_SHARED_INSTANCE = true;|" /var/www/nextcloud/apps/spreedme/config/config.php && \
sudo sed -i "s|const OWNCLOUD_TEMPORARY_PASSWORD_LOGIN_ENABLED = false;|const OWNCLOUD_TEMPORARY_PASSWORD_LOGIN_ENABLED = true;|" /var/www/nextcloud/apps/spreedme/config/config.php

openssl rand -hex 32   // keygen
sudo sed -i "s|const OWNCLOUD_TEMPORARY_PASSWORD_SIGNING_KEY = '';|const OWNCLOUD_TEMPORARY_PASSWORD_SIGNING_KEY = '...';|" /var/www/nextcloud/apps/spreedme/config/config.php


sudo cp /var/www/nextcloud/apps/spreedme/extra/static/config/OwnCloudConfig.js.in /var/www/nextcloud/apps/spreedme/extra/static/config/OwnCloudConfig.js
sudo nano /var/www/nextcloud/apps/spreedme/extra/static/config/OwnCloudConfig.js

sudo tar -C /var/www/nextcloud/apps/spreedme -zcvf ~/extra.tar.gz extra   // pack and copy to Spreed WebRTC server


// on Spreed WebRTC server
sudo tar -zxvf ~/extra.tar.gz -C /usr/share/spreed-webrtc-server   // unpack
sudo chmod -R 755 /usr/share/spreed-webrtc-server/extra && \
sudo chown -R root:root /usr/share/spreed-webrtc-server/extra

sudo systemctl restart spreed-webrtc


// Nginx

upstream http_spreed {
  server 192.168.1.*:8081;
  keepalive 32;
}

map $http_upgrade $connection_upgrade_spreed {
  default upgrade;
  '' close;
}

server {

  # Настройки Spreed WebRTC
  
  location ^~ /spreed {
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade_spreed;
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;

    proxy_http_version 1.1;
    proxy_buffering off;
    proxy_connect_timeout 90;
    proxy_read_timeout 90;
    proxy_send_timeout 90;
    proxy_ignore_client_abort off;
    proxy_next_upstream error timeout invalid_header http_502 http_503 http_504;	

    proxy_pass http://http_spreed;
    proxy_redirect off;
  }
}

// Testing
https://<domain>/cloud/index.php/apps/spreedme/admin/debug

Hi @DeAlexWin,

please either use Github or this BB. Not both :wink: https://github.com/strukturag/nextcloud-spreedme/issues/73

all work, thank you, leon.