前言
现如今微信已经是每个人必备的聊天工具,但众所周知在微信上是没啥隐私可言的,所以就有了想自己搭建一个聊天的私服的想法,这样平时和死党们聊天聊的也更自在
Rocket.chat介绍
Rocket.Chat
(以下简称rc
)使用Meteor
框架做的开源消息应用。是领先的免费开源团队聊天Slack
的替代品,功能强大,它支持群组聊天,直接通信,私聊群,桌面通知,媒体嵌入,链接预览,文件上传,语音/视频聊天,截图等等,还支持实时翻译,实现用户之间的自动实时消息转换。使用Rocket.Chat
可以完全控制交流通信。
搭建
我的环境是Ubuntu 18.04
;网络管理是Apache 2
;使用的是Snap
安装,安装及后续的维护都相对简单
安装主程序
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
还是相当强大的,具体表现为:
- 可以在
web端
直接使用,并且在PC端
、Android以及IOS
都有相应软件支持,生态还是不错的 - 夜间模式是给我的第一个惊喜,并且支持
Amoled
黑,好看又省电 - 另外
RC
支持消息状态查看:已发送是一个小勾,对方已阅是两个小勾,很喜欢这个小功能 - 撤回消息和编辑消息等功能使用起来很方便
- 不用科学就可使用。好的聊天软件有很多,比如我在用的
Telegram
、WhatsApp
之类,这些软件无一例外都需要科学才能访问,无形之中提高了使用门槛,总不见得叫我的死党们全部都科学吧 - 最后一点我给开源。
RC
本身开源,外加所有的聊天数据都保存在自己的服务器中,安全隐私得以保障,这也是开这篇的初衷
以上
本文参考:https://www.moerats.com/
发表回复