关于我
~一个热爱火影的业余小提琴玩家~
Joynaruto

手动搭建"微信私服"--Rocket.chat部署

前言

现如今微信已经是每个人必备的聊天工具,但众所周知在微信上是没啥隐私可言的,所以就有了想自己搭建一个聊天的私服的想法,这样平时和死党们聊天聊的也更自在 :)

Rocket.chat介绍

Rocket.Chat(以下简称rc)使用Meteor框架做的开源消息应用。是领先的免费开源团队聊天Slack的替代品,功能强大,它支持群组聊天,直接通信,私聊群,桌面通知,媒体嵌入,链接预览,文件上传,语音/视频聊天,截图等等,还支持实时翻译,实现用户之间的自动实时消息转换。使用Rocket.Chat可以完全控制交流通信。

搭建

我的环境是Ubuntu 18.04;网络管理是Apache 2;使用的是Snap安装,安装及后续的维护都相对简单 :idea:

安装主程序

snap install rocketchat-server   //如果没有https需求即可通过"http://域名:3000"访问rc后台进行设置向导

域名反代——以Apache为例

  • /etc/apche2/sites-available/default-ssl.conf中加入以下命令:
<IfModule mod_ssl.c>
#rocket.chat
<VirtualHost _default_:端口>       //自定义的端口
		ServerAdmin webmaster@localhost
		Servername 域名    //自己的域名
		ErrorLog ${APACHE_LOG_DIR}/error.log
		CustomLog ${APACHE_LOG_DIR}/access.log combined
		SSLEngine on
		SSLCertificateFile	/etc/apache2/ssl/主证书     //主证书路径
		SSLCertificateKeyFile /etc/apache2/ssl/密钥证书     //密钥证书路径
		SSLCertificateChainFile /etc/apache2/ssl/中间证书   //中间证书路径
<Location />
        Order allow,deny
        Allow from all
</Location>
RewriteEngine On
RewriteCond %{HTTP:Upgrade} =websocket [NC]
RewriteRule /(.*)           ws://localhost:3000/$1 [P,L]
RewriteCond %{HTTP:Upgrade} !=websocket [NC]
RewriteRule /(.*)           http://localhost:3000/$1 [P,L]

ProxyPassReverse / http://localhost:3000/
	</VirtualHost>
</IfModule>

注意一下
添加自定义端口后在ports中也要添加相应端口

  • 然后重启下Apache服务:
service apache2 restart
  • 现在通过https://域名:端口即可进入rc后台!

开启web端图片等附件上传

通过上述步骤后,已经可以正常访问并发送文字消息以及语音消息,但如果发送图片之类的媒体文件进度条会一直卡在0%,通过F12控制台查看可见具体的报错为图片等媒体类仍被定义为localhost,并没有被Apache代理。解决方法是,在管理--通用--网址地址中填入自己的域名及端口号,右上保存修改即可!

日常管理

  • 检查Rocket状态
sudo systemctl status snap.rocketchat-server.rocketchat-server.service
  • 查看日志
sudo journalctl -u snap.rocketchat-server.rocketchat-server
  • 重启RC
sudo systemctl restart snap.rocketchat-server.rocketchat-server

备份及还原

备份

  • 停止Rocket
sudo service snap.rocketchat-server.rocketchat-server stop
  • 开始备份,备份文件会保存在/var/snap/rocketchat-server/common/backup
sudo snap run rocketchat-server.backupdb
  • 重启RC
sudo service snap.rocketchat-server.rocketchat-server start

还原

  • 停止Rocket并将备份的文件放在/var/snap/rocketchat-server/common/文件夹下
sudo service snap.rocketchat-server.rocketchat-server stop
  • 开始还原
sudo snap run rocketchat-server.restoredb /var/snap/rocketchat-server/common/rocketchat_backup*.tgz
#如果要替换现有数据库,则会收到警告
*** ATTENTION ***
* Your current database WILL BE DROPPED prior to the restore!
* Would you like to make a backup of the current database before proceeding?
* (y/n/Q)>
按y和Enter以当前状态备份数据库。
按n和Enter继续,而不备份当前状态的数据库。
按任意键和/或Enter退出还原过程而不进行任何更改。
  • 重启RC
sudo service snap.rocketchat-server.rocketchat-server start

2020年3月07日更新下使用体会

经过这段时间的使用,我觉得RC还是相当强大的,具体表现为:

  1. 可以在web端直接使用,并且在PC端Android以及IOS都有相应软件支持,生态还是不错的
  2. 夜间模式是给我的第一个惊喜,并且支持Amoled黑,好看又省电 8-)
  3. 另外RC支持消息状态查看:已发送是一个小勾,对方已阅是两个小勾,很喜欢这个小功能
  4. 撤回消息和编辑消息等功能使用起来很方便
  5. 不用科学就可使用。好的聊天软件有很多,比如我在用的TelegramWhatsApp之类,这些软件无一例外都需要科学才能访问,无形之中提高了使用门槛,总不见得叫我的死党们全部都科学吧 :cry:
  6. 最后一点我给开源。RC本身开源,外加所有的聊天数据都保存在自己的服务器中,安全隐私得以保障,这也是开这篇的初衷

以上


 

本文参考:https://www.moerats.com/

发表回复

textsms
account_circle
email

Joynaruto

手动搭建"微信私服"--Rocket.chat部署
前言 现如今微信已经是每个人必备的聊天工具,但众所周知在微信上是没啥隐私可言的,所以就有了想自己搭建一个聊天的私服的想法,这样平时和死党们聊天聊的也更自在 :) Rocket.chat介绍…
扫描二维码继续阅读
2020-01-19