如何将Spreed Me WebRTC与NextCloud集成

Spreed ME WebRTC旨在带来 私人的 通过文字,音频/视频与他人聊天。 就像一个 Google环聊的免费开源和自托管替代方案。 在以前的教程中,我们讨论了如何使用官方PPA在Ubuntu 16.04上安装Spreed WebRTC服务器以及如何使用Docker映像安装Spreed WebRTC。 本教程将向您展示如何将Spreed WebRTC与NextCloud集成。

为了遵循本教程,假定您已经设置了启用HTTPS的NextCloud服务器,并且已按照我们之前的教程安装Spreed WebRTC。

完成本教程后,您将能够:

  • 通过NextCloud安装与NextCloud用户或非NextCloud用户开始私人文本,音频/视频聊天。
  • 从NextCloud共享文件或将共享文件保存到NextCloud。
  • 分享您的计算机屏幕或YouTube视频。

因此,事不宜迟,让我们开始吧。

注意:如果您使用PPA方法安装Spreed WebRTC服务器,则 server.conf 下面提到的文件名为 webrtc.conf 在您的服务器上。 替换为 webrtc.conf 在适当情况下。

同源

要使用屏幕共享功能,我们需要让Spreed和NextCloud在相同的源上运行。 相同的来源意味着可以使用相同的协议方案,相同的域名和相同的端口号访问Spreed和Nextcloud。

因此,如果通过以下方式访问nextcloud安装

https://nextcloud.your-domain.com

然后,您可以将Spreed WebRTC放在NextCloud安装的子目录中。

https://nextcloud.your-domain.com/webrtc

这样它们就在同一原点上。

更改basePath

让Spreed WebRTC知道将通过进行访问 /webrtc 子目录,我们需要编辑 server.conf 文件。

sudo nano /etc/spreed/server.conf

找到以下行。

;basePath = /some/sub/path/

更改为

basePath = /webrtc

保存并关闭文件。 然后重新启动Spreed WebRTC服务器,以使更改生效。

如果您通过官方PPA在Ubuntu 16.04上安装了Spreed,请使用以下命令重新启动它:

sudo systemctl restart spreed-webrtc

如果您使用docker image安装了Spreed,请使用以下命令重新启动docker容器:

sudo docker restart my-spreed-webrtc

设置反向代理

要将Spreed WebRTC放在NextCloud安装的子目录中,我们需要设置一个反向代理。 我们可以使用Apache或Nginx。 首先,让我们看看如何使用Apache。

Apache反向代理配置

打开NextCloud虚拟主机文件的https版本。

sudo nano /etc/apache2/sites-available/nextcloud-ssl.conf

然后将以下几行放在上面 </VirtualHost>

<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

保存并关闭文件。 然后运行以下命令以启用某些Apache模块以使代理工作。

sudo a2enmod proxy proxy_http proxy_wstunnel headers

重新加载Apache以使更改生效。

sudo systemctl reload apache2

现在您应该可以从以下位置访问Spreed WebRTC /webrtc NextCloud安装的子目录。 当浏览器要求访问您的相机时,请单击 Allow

Nginx反向代理配置

打开您的NextCloud服务器阻止文件。

sudo nano /etc/nginx/conf.d/nextcloud.conf

将以下行放在https下 server 上下文。

location ^~ /webrtc {               
         proxy_pass http://127.0.0.1:8080;
         proxy_http_version 1.1;
         proxy_set_header Upgrade $http_upgrade;
         proxy_set_header Connection "upgrade";
         proxy_set_header X-Forwarded-Proto $scheme;
         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_buffering             on;
         proxy_ignore_client_abort   off;
         proxy_redirect              off;
         proxy_connect_timeout       90;
         proxy_send_timeout          90;
         proxy_read_timeout          90;
         proxy_buffer_size           4k;
         proxy_buffers               4 32k;
         proxy_busy_buffers_size     64k;
         proxy_temp_file_write_size  64k;
         proxy_next_upstream         error timeout invalid_header http_502 http_503 http_504;
}

保存并关闭文件。 然后测试Nginx配置并重新加载。

sudo nginx -t

sudo systemctl reload nginx

现在您应该可以从以下位置访问Spreed WebRTC /webrtc NextCloud安装的子目录。 当浏览器要求访问您的相机时,请单击 Allow

禁止webrtc nextcloud

安装Spreed ME NextCloud应用程序

转到NextCloud应用商店。

nextcloud应用商店

然后点击 Tools 标签在左侧。 找 Spreed.ME 应用程式。 请点击 Enable 按钮。

spreed.me nextcloud应用程序

接下来,转到Nextcloud管理页面,单击 Additional settings 并向下滚动到页面底部。 看到Spreed.ME部分后,请单击 Generate Spreed WebRTC config 按钮。

spreed.me nextcloud

现在复制由Spreed.ME应用程序生成的Spreed WebRTC配置,不要忘记单击 Save Settings

禁止的webrtc配置

然后重命名 /etc/spreed/server.conf/etc/spreed/server.conf.bak

sudo mv /etc/spreed/server.conf /etc/spreed/server.conf.bak

创建一个新的 server.conf 文件。

sudo nano /etc/spreed/server.conf

并将Spreed WebRTC配置粘贴到文件中。 保存并关闭文件。 重新启动Spreed WebRTC服务器。

sudo systemctl restart spreed-webrtc

如果您正在使用Docker映像运行Spreed WebRTC,则首先需要注释掉 listen = 127.0.0.1:8080 排入 server.conf 通过添加分号。

; listen = 127.0.0.1:8080

然后,您应该停止并删除现有的Spreed WebRTC容器。

sudo docker stop my-spreed-webrtc

sudo docker rm my-spreed-webrtc

接下来,您需要启动一个新的Spreed WebRTC容器并安装 /var/www/nextcloud/apps/spreedme/extra/ 到容器。 更换 /var/www/nextcloud 使用您自己的NextCloud webroot路径。

sudo docker run -d --name my-spreed-webrtc -p 8080:8080 -p 8443:8443 -v /etc/spreed:/etc/spreed -v /var/log/spreed:/var/log/spreed -v /var/www/nextcloud/apps/spreedme/extra:/var/www/nextcloud/apps/spreedme/extra -i -t spreed/webrtc -c /etc/spreed/server.conf

通过NextCloud访问Spreed ME

完成上述操作后,从NextCloud Web界面转到Speed.ME应用程序。

nextcloud spreedme

现在,您可以直接从NextCloud安装访问Spreed ME聊天室。

nextcloud阻止了我的整合

要邀请非Nextcloud用户加入聊天室,首先您需要通过进入Nextcloud管理页面>启用临时密码 Additional settings > Spree.ME > Advanced settings。 然后检查 OWNCLOUD_TEMPORARY_PASSWORD_LOGIN_ENABLED。 保存设置。

nextcloud启用临时密码

现在,一个钥匙图标将出现在Spreed.ME聊天室旁边,您可以使用它生成临时密码。

spreed.me临时房间密码

注意:NextCloud 11引入了另一个名为 Spreed Video Calls,这使Nextcloud用户可以进行视频通话。 这与Spreed ME应用程序不同。

而已!

我希望本教程可以帮助您将Spreed ME WebRTC与NextCloud集成。 与往常一样,如果您发现此帖子有用,请订阅我们的免费新闻通讯。 您也可以在Google +,Twitter或喜欢我们的Facebook页面上关注我们。

Sidebar