这一期,其实是我早都想做的一期教程,就是关于聊天系统的搭建。今天讲的是RocketChat,RocketChat是现在主流的免费开源的多人在线聊天工具,像我们的QQ、微信、电报等等这些社交的工具类似的。但是它是一个小规模的、小团体的、一个公司、工作室或者一个团队,让你完全可以用这个聊天。它可以发文字、表情、图片、文件等常规的东西,还可以视频通话、语音通话,功能是非常齐全的。
之前由于技术所限,一直搁置,你看我这个贴子是很早以前创建的。其实我早都想做了,很多内容了解的更深入,回过头来再做这个东西就游刃有余了就更加简单了。所以今天我又整理了一个简单的方法,让大家可以搭建出这样的一个聊天平台。
首先大家需要准备一台VPS,这个是不可缺少的。而且这个VPS是有一定的要求的,是需要大家有一核心的CPU,还有2G以上的内存。2G内存也是的,比较占内存的。如果大家要保持一个纯净环境,可以使用这行命令进行重装,这个是DEBAN11的系统,是密码,这个是端口号。密码和端口号大家都可以进行修改,我建议大家用这版11。
我们需要先更新一下系统环境组件,我们连接上VPS,我们右键把这个命令输进来。它还会安装常用的工具,下面我们就装docker。这3行命令只要输入docker和docker-compose,并且可以获得对应的授权,点击回车。安装完成以后是这个样子,通过这行命令来下载MongoDB的最新版本,并且我们创建一个副本集专门用于rocketchat数据存储。
我们来拉取相关的MongoDB的镜像,创建MongoDB的容器,正常启动了。好我们用这行命令docker ps -a,回车一下看一下容器状态,这时候我们可以看到这个容器已经正常运行了,并且有端口号的存在就表明这个容器是没有问题的。
这一步,我们是要进入到这个容器里为它启动初始化,这个副本集,让它真正应用于rocketchat。我们右键回车一下,对大概出现这样的情况就已经赋予了相关参数。这个目前只针对x86,因为rocketchat它只支持x86架构的,arm架构的它目前不支持。但是它的新版本rocketchat6有可能会支持,因为已经发布了。但是我们的这个docker hub里现在还是5.4的这个版本,同样我们会去拉取最新的。如果它更新的话,小伙伴们应该是会更新到rocketchat6的。
好同样装镜像同样,根据配置完成容器的部署。有个细节之前给它赋予副本集的时候,官方提供的一个命令用不了。后来我是到GitHub里查了MongoDB它最新版本,已经弃用了那个命令。所以我在给大家用的是我已经整理好的。如果你只用Mongo的话那就会出问题,就是官方文档也没有及时更新这一块。
我们的RocketChat容器也已经创建好了。我们依然用这个命令查看一下两个容器的情况,也是正常启动的。我们定义的端口号是8890,我们先拿IP加端口来访问一下它,我们回车一下看看能不能启动。正常的是可以启动的,第一次启动的话会比较慢,我们就已经登录上来了,我们需要输入信息。
那全名我们就lion,用户名给它一个英文的它不支持中文,随便给它一个邮箱,这个邮箱到时候会做验证。密码你给它一个复杂一点的密码,点击下一步,我们保存一下密码。这时候它会告诉我们之前你用localhost来登录的,现在你要用你自己的外网IP登录,那是否同意是。这一页主要是填你这个平台叫什么名字,什么类型的平台,你的平台主题是做什么的,多少人,你是在哪个区域的。那你大概填一下点击下一步。
好就是要确认一下你的邮箱,点击我同意,这个按钮亮起,我们直接点击认证,通过邮件来回调一下,后我们收到rocketchat的邮件,我们点击下一步,电子邮件已确认。确认好以后我们依然通过IP加端口就能来到我们这个home的这个页面。大家点这个三个点,我们选择设置,是版本信息。我们继续往下滑有一个设置,有个通用,这个是你网站的一个名称,你可以进行修改。圆这个地方大家可以调整成中文,下面根据自己的需要进行设置和修改。我们点击保存,好保存成功。
因为你是管理员,所以你通过是能看到用户信息的,当前有几个用户,注册的一个情况。同样是能看到聊天室的,就是有几个频道,它频道就相当于一个群组。权限,你可以给你不同的分组进行定义权限,这个生态已经很完备了。我们可以到布局里再去看一下,有个用户界面,就比如说用真实姓名,头像采集这些你都可以点开。
好我们点击这个叉再回到首页,我们自己头像怎么改?依然点击这个点击我的账户,我们可以在上传我们的图片,大家就可以在头说话了。如果你是管理员,你也可以在主动去添加你的成员。我发现它现在好像已经变成6.0了,这个我回头要把我的主战去更新一下。我们可以看到版本号已经是6.0了,docker hub里的就已经是最新版的rocketchat。
现在只做了一部分,依然是IP加端口,而且运行效率其实不是特别高,我们打算用我们的NGINX来做反向代理,代理到域名上,这样的话体验会更好。我们开始接入NGINX。好,创建NGINX相关的目录,我们点击回车,这样的就已经创建好了不用看了,因为以前就是这么搞的。先将这个域名解析到Cloudflare里,我们进入Cloudflare的后台。
为什么是英文的?好,我们进入cloudflare的后台,如果你没账号的话注册一个,如果你没域名的话买一个添加到cloudflare里来,把你刚买的域名添加进来就可以了。选择这个GQ这个域名,我们选择DNS,点击添加DNS记录,我们就拿chat做前缀,rocketchat服务的ip地址,开启小云朵我们就不不关了,点击保存。开始菜单,cmd,这时候我们拼一下这个域名。虽然有丢包,但是它是可以拼通的,那我就正常的域名解析成功了。
好,域名解析好了,我们就可以对应的申请证书了。我们输入第一行申请证书的软件启动,好输入进来回车。好的第二行是绑定一个邮箱,如果你不想绑定邮箱,那没关系就用默认的就可以了回车。好这样也结束了,第三行就是你要改成你自己的域名,切记你刚才解析好的在cloudflare里域名解析的那个域名。好我们点击回车,好的到达这一步,我们的证书都已经申请好了,它给我们申请了很多格式的,适合各种应用场景的。接下来我们把证书下载到本机,下载到这个服务器,继续输入下面这行命令。
好这样的话就已经成功的下载了,接下来要去配置一下NGINX的配置文件。好,弹出这个编辑模式,输入一下。下面这个着重跟大家讲一下,这个就是请求数设置一下,可以上传的最大文件大小可以设置一下,你的域名,这个是你必须要改的,改成你自己的。这个就要填你域名解析的这个服务器ip地址。
我们可以发现有一个websocket,websocket就是我们大家熟知的WS协议,websocket协议。这个协议有什么好处?可以加速你的网站,因为它是双通道通信,服务端可以主动向客户端发消息的。比方说有要同步大家的聊天信息的时候,那它可以快速的响应。这一段时间了解下来的,所以它一定会比HTTP的协议要来的更高效,来的更迅速。而且它的使用的场景也会包含就是APP包含跨APP的这种呃多平台的协同也是非常有优势的。也是跟chatGPT沟通完以后,它说NGINX里可以这么配,那太棒了。我就这样去配了,结果就能接入到我们的iOS端,接入到我们的Android的客户端上。
所以我们把这些内容复制一下,粘贴进来。你也可以在外头改好再粘贴进来,一样的。好Ctrl+X,Y,回车,好,这样就保存了。运行我们的NGINX容器了,你的网络越快下载金项也是越快。所以为什么docker这么方便。好,我们再看一下各容器之间的运行情况,都已经正常的运行了。那这时候我们可以用域名来访问我们的rocketchat,见证奇迹的时刻到了,已经成功了。
这个时候我们输入刚才那个用户名,登录一下。好,这时候又说我们之前用的是IP加端口,现在我们改成域名了可以不可以。我们点击确定。好,请输入你的密码。好,接下来我告诉大家怎么去下载客户端。可以看到是移动端是桌面端,桌面端就是windows、Linux、Mac,移动端就是谷歌play还有appstore就是iOS的。
拿这个去到手机上看一下。好久没投屏了,可以看到它是可以正常的显示的。这个,这个APP是我已经下好的,点击一下。这个是我之前的,我们点击上面这个,我们可以再去添加一个新的。现在使用的这个,哦这个时候我们把域名输入进去,一定要带HTTPS冒号斜杠斜杠。我们点击yes,已经正常的可以登录了,我们点击登录。我们把刚才这个lion的名字输进去,账号密码输完以后,我们保存一下,这不就进来了,就这么简单。
看,你好都在这。比方说大家可以调整一下主题,那基本上就这样。windows的话你点击这个就进行下载了,就可以进行安装。我这台机子还没装过,公司的装了,装好以后我们直接点击运行,就输入你的域名就行了,h,输入账号密码同理,那你也进来了,就是多端的体验,大概都都是这样的一个操作,这就可以正常的聊天了。
关于推送消息都是很正常的,只要你方法用对了,包括iOS上的APP,windows上的都会实时提示。这就是今天搭建Rocket的全部内容。跟lion案在这个聊天系统里交流的话,欢迎大家访问这个。如果感觉对你有帮助的话,欢迎点赞支持加评论,积极的跟lion案互动。