最近想找一个比较安全的聊天方式,一些朋友的+86手机号莫名其妙无法注册TG,在权衡了一下之后,发现了这个Rocket.Chat还算安全。
所以打算在我的GCP上部署Rocket.Chat,主要有这样的步骤:

  • 通过Snap在Ubuntu 20.04 LTS上部署Rocket.Chat
  • 通过Rocket.Chat自带的Caddy部署反代并且开启Https以保证安全性

开启GCP的SSH

GCP默认是不开22端口的ROOT用户的SSH登录的,所以要先开启。
进入控制台>Compute Engine>虚拟机实例,找到你要用的虚拟机,点击SSH
连接上后,输入以下命令:
切换到root用户

sudo -i  

修改root用户密码为你自己的密码

passwd root

修改ssh配置文件

vi /etc/ssh/sshd_config

进入界面之后按i进入insert模式
修改:

PermitRootLogin yes
PasswordAuthentication yes

如果没有两条就自己手动添加,之后按esc退出insert模式,输入:wq保存退出
然后重启ssh服务

service sshd restart

之后就可以用SSH工具(Xshell或者Finalshell)来连接GCP了
P.S. 如果要正常使用ssh连接和rocket.chat,需要在控制台>VPC网络>防火墙里开启22端口和3000端口

通过Snap安装Rocket.Chat

首先更新系统

apt-get install update -y

安装Rocket.Chat

snap install rocketchat-server

这时候就可以使用http://yourip:3000进入聊天室了

通过Caddy给聊天室添加SSL

通过http传输的聊天室怎么想都觉得不是很安全,好在Rocket.Chat自带了Caddy,可以启用一个HTTPS反代,会自动签发SSL证书。

sudo snap set rocketchat-server caddy-url=https://www.moerats.com
sudo snap set rocketchat-server caddy=enable
sudo snap set rocketchat-server https=enable
sudo rocketchat-server.initcaddy

没看错的话,现在自带的Caddy是2.0版本的,caddyfile的格式和1.0不通用,所以默认情况下,可以检查一下位于/var/snap/rocketchat-server/current/Caddyfile的caddy文件应该是这样的:

https://yourdomain
proxy / localhost:3000 {
      websocket
      transparent
}    

重启一下服务,使caddyfile生效

systemctl restart snap.rocketchat-server.rocketchat-caddy

然后访问你的域名就能够看到聊天室了

相关命令

检查状态

systemctl status snap.rocketchat-server.rocketchat-server.service

查看日志

journalctl -u snap.rocketchat-server.rocketchat-server

重启

systemctl restart snap.rocketchat-server.rocketchat-server  

更新

snap refresh rocketchat-server

关于备份和恢复

备份

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

恢复

#停止Rocket
service snap.rocketchat-server.rocketchat-server stop
#再将备份的文件放在/var/snap/rocketchat-server/common/文件夹
#开始还原
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退出还原过程而不进行任何更改。
#重启Rocket
service snap.rocketchat-server.rocketchat-server start
最后修改:2021 年 05 月 14 日 01 : 47 AM
如果觉得我的文章对你有用,请我喝杯Java如何?