RocketChat:开源聊天软件部署

1. 简介

RocketChat是一款优秀的开源聊天软件。支持各种平台,IOS、Android、Web、Mac、Windows以及Linux,安装部署简单,功能简单易用,目前部分功能还在完善当中,特别适合小公司自建聊天平台。项目开源地址 https://github.com/RocketChat,项目官方站点https://rocket.chat,这里将安装部署服务端的一些步骤分享给大家,希望对需要的小伙伴有所帮助。

2. 服务端应用程序部署

官方站点已经给出了各系统平台安装的详细步骤,这里就将Centos7的安装步骤贴过来。其他系统平台请参考https://rocket.chat/install

img-w500

2.1. 安装必要的依赖

2.1.1. 配置官方mongodb的yum源

该平台只使用一个第三方组件,就是mognodb。

echo -e "[mongodb-org-3.6]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/7/mongodb-org/3.6/x86_64/
gpgcheck=1
enabled=1
gpgkey=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]
Description=The Rocket.Chat server
After=network.target remote-fs.target nss-lookup.target nginx.target mongod.target
[Service]
ExecStart=/usr/local/bin/node /opt/Rocket.Chat/main.js
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=rocketchat
User=rocketchat
Environment=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
[Install]
WantedBy=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加端口进行访问进行管理员的相关配置

img-w500

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. 客户端说明

各平台下载位置

img-w500

4. 注意事项

  • RocketChat服务启动比较慢,端口监听状态需等一会才会出现,请耐心等待
  • APP端注册用户时,会很缓慢,大约需要一分钟左右的时间,大概是服务器需要在mongodb中创建相关内容,请耐心等待
  • APP连接服务器时,如果服务器地址是非SSL,则会提示不安全,跳过即可,建议去阿里云申请一个免费证书,配合域名使用,方便易用
    img-w500

5. 参考文档

原文地址:https://www.cnblogs.com/William-Guozi/p/RocketChat.html