Rocket.Chat 是特性最豐富的 Slack 開源替代品之一舟奠。
主要功能:群組聊天,直接通信导帝,私聊群,桌面通知般此,媒體嵌入朦肘,鏈接預(yù)覽担映,文件上傳,語(yǔ)音/視頻 聊天淋肾,截圖等等硫麻。
1. Rocket.chat 服務(wù)端安裝與維護(hù)
服務(wù)器環(huán)境:Ubuntu 16.04
1.1. 安裝snap
apt install snap snapd
1.2. 安裝 rocketchat server
sudo snap install rocketchat-server
瀏覽 localhost:3000 進(jìn)行系統(tǒng)設(shè)置
1.3. 檢查運(yùn)行狀態(tài)
sudo systemctl status snap.rocketchat-server.rocketchat-server.service
1.4. SSL設(shè)置
Caddy 可以使用 Let’s Encrypt 來(lái)自動(dòng)添加 SSL 加密通訊。
如果是自行手工安裝樊卓,也可以通過(guò) certbot, acme.sh等進(jìn)行設(shè)置正式的ssl證書拿愧。
https://github.com/Neilpang/acme.sh/wiki/%E8%AF%B4%E6%98%8E
https://coolshell.cn/articles/18094.html
官方還沒有提供基于snap和Caddy的ssl證書認(rèn)證過(guò)程文檔。
1.4.1. 設(shè)置 Caddy
產(chǎn)生配置文件
sudo rocketchat-server.initcaddy
如果是Debian 或者其他發(fā)布版碌尔,則運(yùn)行
sudo snap run rocketchat-server.initcaddy
編輯Caddy文件: /var/snap/rocketchat-server/current/Caddyfile
http://:8080
proxy / localhost:3000 {
websocket
transparent
}
替換 http://:8080 為你的網(wǎng)站,如 chat.bclearning.top
https://chat.bclearning.top:8080
tls self_signed
proxy / localhost:3000 {
websocket
transparent
}
或者加上http到https的重定向
chat.bclearning.top:8080 {
tls self_signed
proxy / localhost:3000 {
websocket
transparent
}
}
加反向代理
chat.bclearning.top:8080 {
proxy / 127.0.0.1:3000 {
proxy_header X-Forwarded-Proto {scheme}
proxy_header X-Forwarded-For {host}
proxy_header Host {host}
websocket
}
}
注: 記得將域名指向到這個(gè)服務(wù)器ip地址浇辜。
1.4.2. 重啟caddy
sudo systemctl restart snap.rocketchat-server.rocketchat-caddy
sudo systemctl status snap.rocketchat-server.rocketchat-caddy
1.4.3. 訪問(wèn)
https://chat.bclearning.top:8080
1.5. Rocketchat Server 維護(hù)
1.5.1. 升級(jí)到最新版
sudo snap refresh rocketchat-server
1.5.2. 查看日志
Server運(yùn)行日志
sudo journalctl -u snap.rocketchat-server.rocketchat-server
數(shù)據(jù)庫(kù)日志
sudo journalctl -u snap.rocketchat-server.rocketchat-mongo
1.5.3. 重啟rocketchat
sudo systemctl restart snap.rocketchat-server.rocketchat-server
1.5.4. 備份snap數(shù)據(jù)
- 運(yùn)行備份:
sudo snap run rocketchat-server.backupdb
- 查看備份文件
ls /var/snap/rocketchat-server/<version>/backup.tgz
- 復(fù)制 backup.tgz 到其他安全的地方
rsync -vauz /var/snap/rocketchat-server/1248/backup.tgz ~/bak
# 加上日期標(biāo)示
cp ~/bak/backup.tgz ~/bak/backup`date +%Y%m%d_%H%M`.tgz
# 僅保留近3天的備份,其余刪除
find ~/bak -type f -mtime +3 | xargs rm -f
注:一般是復(fù)制到其他機(jī)器上唾戚。
1.5.5. 恢復(fù)備份的snap數(shù)據(jù)
- 將備份數(shù)據(jù)解壓
cd ~
mkdir backup_data
cd backup_data
tar zxvf ~/bak/backup.tgz
創(chuàng)建了如下目錄和文件: ~/backup_data/var/snap/rocketchat-server/<version>/dump/parties
- Confirm your database name
The snap database name should be parties, but just to be safe:
sudo /snap/rocketchat-server/current/bin/mongo
(...)
> show dbs
local 0.000GB
parties 0.004GB
> exit
- 停掉 Rocket.Chat
sudo service snap.rocketchat-server.rocketchat-server stop
- 恢復(fù)數(shù)據(jù)庫(kù)數(shù)據(jù)
Use mongorestore to restore your backup data back into your snap database
Important: before proceeding, consult https://docs.mongodb.com/manual/reference/program/mongorestore/ to learn about additional options and the non-overwriting behavior of mongorestore when the target database already exists.
Please note: at the time of writing, mongorestore required openssl version 1.0.2 specifically. If you see an error like this - (...) version 'OPENSSL_1.0.2' not found (required by /snap/rocketchat-server/current/bin/mongorestore) - simply install the required openssl version to continue.
When you are ready, run the following command (replacing <version> with the appropriate directory name):
sudo /snap/rocketchat-server/current/bin/mongorestore --db parties \
~/backup_data/var/snap/rocketchat-server/<version>/dump/parties/
- 重啟數(shù)據(jù)庫(kù)柳洋,server,caddy服務(wù)
sudo service snap.rocketchat-server.rocketchat-mongo restart
sudo service snap.rocketchat-server.rocketchat-server restart
sudo service snap.rocketchat-server.rocketchat-caddy restart
sudo service snap.rocketchat-server.rocketchat-mongo stop
sudo service snap.rocketchat-server.rocketchat-server stop
sudo service snap.rocketchat-server.rocketchat-caddy stop
2. Rocket.chat 客戶端安裝使用
客戶端覆蓋了大部分平臺(tái),可以從 http://rocket.chat下載叹坦,
下面只列出windows和android版的使用
2.1. pc端
瀏覽器訪問(wèn) https://chat.bclearning.top:8080/
因?yàn)槭亲院灻芰停崾静话踩抢^續(xù)點(diǎn)擊訪問(wèn)即可募书。
或者下載windows版程序
2.2. 手機(jī)端
2.2.1. 直接下載使用
訪問(wèn)
https://github.com/RocketChat/Rocket.Chat.Cordova/releases/
下載 armv7版本到手機(jī)绪囱, x86版本apk 到平板。
配置服務(wù)器為 chat.bclearning.top:8080
2.2.2. 開發(fā)者編譯安裝
https://rocket.chat/docs/developer-guides/mobile-apps/
3. 試用情況說(shuō)明
Pc端 和 瀏覽器版本基本正常莹捡。問(wèn)題主要是出在了手機(jī)端鬼吵,iOS未測(cè)試,android進(jìn)行了測(cè)試道盏。
因?yàn)槭謾C(jī)和個(gè)人精力有限而柑,并發(fā)量沒有測(cè)試文捶,僅僅測(cè)試2,3個(gè)用戶荷逞。
3.1. 問(wèn)題
3.1.1. 手機(jī)端不穩(wěn)定
pc端訪問(wèn)正常,很遺憾的是粹排,手機(jī)端始終訪問(wèn)不正常种远,即使采用官方的云服務(wù) rocket.chat 部署的Server也無(wú)法訪問(wèn), 可能原因包括被墻顽耳,ssl是自簽名的非正式版本等等坠敷。
采用2.x 版本訪問(wèn)官方的云服務(wù)自建服務(wù)時(shí)妙同,無(wú)法連接,出現(xiàn)空白膝迎。更別提自建的服務(wù)器了粥帚。
采用1.x版本訪問(wèn)官方的云服務(wù)自建服務(wù)時(shí),消息不穩(wěn)定限次,延時(shí)很厲害芒涡。連接自建服務(wù)還未充分測(cè)試。
而且上述現(xiàn)象似乎還與手機(jī)連的是辦公wifi或者無(wú)wifi下又有不同卖漫。
3.1.2. 在阿里云上無(wú)法獲取正式SSL證書
阿里云上部署的Server始終無(wú)法獲取Let’s Encrypt 的 SSL 證書费尽,無(wú)論是用 certbot 還是 acme.sh
換到國(guó)外的主機(jī) vultr之后正常。
./acme.sh --issue -d domain.name --standalone
3.1.3. 官方文檔和下載不統(tǒng)一
A. 安裝步驟并不能都通過(guò)羊始,包括手工的pc端安裝
B 手機(jī)端:官方文檔有點(diǎn)亂旱幼,同時(shí)提供了android客戶端的google play商店的2個(gè)版本的下載,與github上的release版本也不同突委。這就造成了試用的混亂柏卤。
android 老版本下載: 1.0.13
android上的apk在google play無(wú)法下載,可通過(guò)通過(guò)如下網(wǎng)址鸯两,點(diǎn)擊生成下載
https://apps.evozi.com/apk-downloader/?id=chat.rocket.android
可以連接官方的服務(wù)器 yishineihua.rocket.chat
消息在公共頻道有時(shí)會(huì)有延時(shí)
android 2.5 版本下載
https://apps.evozi.com/apk-downloader/?id=com.konecty.rocket.chat
android 新版本 下載 2.4 未發(fā)布到google play.
https://github.com/RocketChat/Rocket.Chat.Cordova/releases/
3.2. 可能的解決方案
為了避免國(guó)內(nèi)墻或者云服務(wù)的問(wèn)題和干擾闷旧,采用國(guó)外的主機(jī)安裝,確本疲可以獲取ssl證書忙灼,進(jìn)而可以搭建自己的服務(wù)器能夠被手機(jī)端訪問(wèn)。
采用 googleplay的 1.x 版本的下載和試用钝侠。
將問(wèn)題充分反饋到github的issue上该园。
搭建手機(jī)端的開發(fā)環(huán)境,編譯下載最新版的帅韧,然后連接使用里初。
采用其他開源軟件如:MatterMost
這是我寫的介紹,安裝配置與使用文章:
團(tuán)隊(duì)合作聊天服務(wù)Mattermost在Ubuntu 16.04下的安裝配置與試用
備注:
如果不采用snap的快速安裝忽舟,采用手工安裝双妨,安裝了mongodb-org 3.x
則mongodb的啟動(dòng)方式如下:
mongod --dbpath=/var/lib/mongodb --replSet "001-rs"