RocketChat:開源聊天軟體部署
1. 簡介
RocketChat是一款優秀的開源聊天軟體。支援各種平臺,IOS、Android、Web、Mac、Windows以及Linux,安裝部署簡單,功能簡單易用,目前部分功能還在完善當中,特別適合小公司自建聊天平臺。專案開源地址 https://github.com/RocketChat,專案官方站點https://rocket.chat,這裡將安裝部署服務端的一些步驟分享給大家,希望對需要的小夥伴有所幫助。
2. 服務端應用程式部署
官方站點已經給出了各系統平臺安裝的詳細步驟,這裡就將Centos7的安裝步驟貼過來。其他系統平臺請參考https://rocket.chat/install
。
2.1. 安裝必要的依賴
2.1.1. 配置官方mongodb的yum源
該平臺只使用一個第三方元件,就是mognodb。
echo -e "[mongodb-org-3.6]\nname=MongoDB Repository\nbaseurl=https://repo.mongodb.org/yum/redhat/7/mongodb-org/3.6/x86_64/\ngpgcheck=1\nenabled=1\ngpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc" | sudo tee /etc/yum.repos.d/mongodb-org-3.6.repo
2.1.2. 配置nodejs源
sudo yum install -y curl && curl -sL https://rpm.nodesource.com/setup_8.x | sudo bash -
2.1.3. 安裝編譯工具, MongoDB, nodejs 和 graphicsmagick
sudo yum install -y gcc-c++ make mongodb-org nodejs
sudo yum install -y epel-release && sudo yum install -y GraphicsMagick
2.1.4. 使用npm 安裝inherits,n和Rocket.Chat要求的node版本
sudo npm install -g inherits n && sudo n 8.11.3
2.2. 安裝Rocket.Chat
2.2.1. 下載最新的版本
curl -L https://releases.rocket.chat/latest/download -o /tmp/rocket.chat.tgz
tar -xzf /tmp/rocket.chat.tgz -C /tmp
2.2.2. 安裝
cd /tmp/bundle/programs/server && npm install
sudo mv /tmp/bundle /opt/Rocket.Chat
2.3. 配置Rocket.Chat服務
2.3.1. 新增rocketchat使用者,設定Rocket.Chat訪問許可權,並建立Rocket.Chat的服務檔案
sudo useradd -M rocketchat && sudo usermod -L rocketchat
sudo chown -R rocketchat:rocketchat /opt/Rocket.Chat
echo -e "[Unit]\nDescription=The Rocket.Chat server\nAfter=network.target remote-fs.target nss-lookup.target nginx.target mongod.target\n[Service]\nExecStart=/usr/local/bin/node /opt/Rocket.Chat/main.js\nStandardOutput=syslog\nStandardError=syslog\nSyslogIdentifier=rocketchat\nUser=rocketchat\nEnvironment=LD_PRELOAD=/opt/Rocket.Chat/programs/server/npm/node_modules/sharp/vendor/lib/libz.so NODE_ENV=production MONGO_URL=mongodb://localhost:27017/rocketchat ROOT_URL=http://localhost:3000/ PORT=3000\n[Install]\nWantedBy=multi-user.target" | sudo tee /usr/lib/systemd/system/rocketchat.service
2.3.2. 開啟上述Rocket.Chat的服務檔案,如果mongodb和主程式分開部署需更改如下配置中的MONGO_URL 和 PORT
MONGO_URL=mongodb://localhost:27017/rocketchat
2.3.3. 開啟MongoDB 和 Rocket.Chat開機自啟並請啟動服務
sudo systemctl enable mongod && sudo systemctl start mongod
sudo systemctl enable rocketchat && sudo systemctl start rocketchat
至此,可通過伺服器IP加埠進行訪問進行管理員的相關配置
2.4. 可選配置
2.4.1. 如果使用防火牆並不使用代理,需放行服務埠3000
sudo firewall-cmd --permanent --add-port=3000/tcp
sudo systemctl reload firewalld
2.5. 配置使用https訪問服務
安裝nginx服務,新增如下配置,需要替換域名和證書,然後啟動服務
cat >> /etc/nginx/conf.d/chat.glinux.top.conf << "EOF"
server {
listen 443;
server_name chat.glinux.top;
charset utf-8;
ssl on;
ssl_certificate /etc/nginx/conf.d/glinux.pem;
ssl_certificate_key /etc/nginx/conf.d/glinux.key;
ssl_session_timeout 5m;
ssl_protocols SSLv2 SSLv3 TLSv1 TLSv1.2;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;
client_max_body_size 10m;
access_log /var/log/nginx/chat.glinux.top-access.log;
error_log /var/log/nginx/chat.glinux.top-error.log;
location ~ ^/.* {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Forward-Proto http;
proxy_set_header X-Nginx-Proxy true;
proxy_http_version 1.1;
proxy_redirect off;
}
}
EOF
3. 客戶端說明
各平臺下載位置
- 蘋果版:Apple Store
- 安卓版:Google Play
- Web版:https://chat.glinux.top
- Mac和Windows版:https://rocket.chat/install
- IOS版介面如下:
4. 注意事項
- RocketChat服務啟動比較慢,埠監聽狀態需等一會才會出現,請耐心等待
- APP端註冊使用者時,會很緩慢,大約需要一分鐘左右的時間,大概是伺服器需要在mongodb中建立相關內容,請耐心等待
- APP連線伺服器時,如果伺服器地址是非SSL,則會提示不安全,跳過即可,建議去阿里雲申請一個免費證書,配合域名使用,方便易用
5. 參考文件
- CentOS 7安裝Rocket.Chat 官方文件:https://rocket.chat/docs/installation/manual-installation/centos
- Rocket.Chat專案開源地址 https://github.com/RocketChat
- Rocket.Chat專案官方站點https://rocket.chat