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