如何将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
。
安装Spreed ME NextCloud应用程序
转到NextCloud应用商店。
然后点击 Tools
标签在左侧。 找 Spreed.ME
应用程式。 请点击 Enable
按钮。
接下来,转到Nextcloud管理页面,单击 Additional settings
并向下滚动到页面底部。 看到Spreed.ME部分后,请单击 Generate Spreed WebRTC config
按钮。
现在复制由Spreed.ME应用程序生成的Spreed WebRTC配置,不要忘记单击 Save Settings
。
然后重命名 /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安装访问Spreed ME聊天室。
要邀请非Nextcloud用户加入聊天室,首先您需要通过进入Nextcloud管理页面>启用临时密码 Additional settings
> Spree.ME
> Advanced settings
。 然后检查 OWNCLOUD_TEMPORARY_PASSWORD_LOGIN_ENABLED
。 保存设置。
现在,一个钥匙图标将出现在Spreed.ME聊天室旁边,您可以使用它生成临时密码。
注意:NextCloud 11引入了另一个名为 Spreed Video Calls
,这使Nextcloud用户可以进行视频通话。 这与Spreed ME应用程序不同。
而已!
我希望本教程可以帮助您将Spreed ME WebRTC与NextCloud集成。 与往常一样,如果您发现此帖子有用,请订阅我们的免费新闻通讯。 您也可以在Google +,Twitter或喜欢我们的Facebook页面上关注我们。