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

各平台下载位置

4. 注意事项

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

5. 参考文档

RocketChat:开源聊天软件部署的更多相关文章

  1. Centos7部署开源聊天软件rocket.chat

    一.部署rocket.chat 1.看官方文档部署,很简单,一步一步跟着部署即可 注意:需要部署节点需要联网主要是yum方式 https://rocket.chat/docs/installation ...

  2. puppet开源的软件自动化配置和部署工具——本质就是CS,服务端统一管理配置

    1.  概述 puppet是一个开源的软件自动化配置和部署工具,它使用简单且功能强大,正得到了越来越多地关注,现在很多大型IT公司均在使用puppet对集群中的软件进行管理和部署,如google利用p ...

  3. 开源server软件

    Java缓存server jmemcached http://www.oschina.net/p/jmemcached jmemcached 是一个Java版的 memcached 缓存server, ...

  4. 开源GIS软件初探

    谈到GIS软件,首先让我们想到的便是GIS界的龙头大哥ESRI公司旗下的ArcGIS产品,从最初接触的version 9.2到如今的version 10.1,其发展可谓风生水起.MapInfo软件也不 ...

  5. MySQL全世界最流行的开源数据库软件

    誉天全国首推全球市场占有率第二的数据库——MySQL培训课程,阿里巴巴.新浪等知名企业正在使用MySQL数据库系统,而这方面的人才需求也是供不应求,誉天作为国内2014年首批ORACLE官方授权MyS ...

  6. InChatter系统开源聊天模块前奏曲

    最近在研究WCF,又因为工作中的项目需要,要为现有的系统增加一个聊天模块以及系统消息提醒等,因此就使用WCF做服务器端开发了一个简单的系统. 开发最初学习了东邪孤独大哥的<传说的WCF系列> ...

  7. Google开源SLAM软件cartographer中使用的UKF滤波器解析

    在Google开源SLAM软件cartographer中,相对<SLAM for dummies>使用了更为复杂.性能更好的Scan匹配与UKF算法,这里简单介绍下cartographer ...

  8. 调研一类软件的发展演变—聊天软件( 1000-2000 words, in Chinese)

    因为本人平时对聊天软件的涉及比周边其他同学而言所涉及的是比较多的.所以说想写写这个东西.(ps本文里面的具体通讯信息的时间安排不分先后) 也许最起初的通讯信息的传达是利用.烽火狼烟这一类可以远距离视觉 ...

  9. 局域网聊天软件(winsocket)

    LANChat工作整理 2013/8/22 程序实现功能: 局域网聊天软件,启动即可找到在线设备,并能够进行简单的文字聊天. 其实下面这个框图已经说明了程序的绝大部分功能原理. 核心类的程序框图 我觉 ...

随机推荐

  1. 【Java基础总结】网络编程

    网络编程 InetAddress tcp udp

  2. Java类成员之代码块

    代码块含义:使用{ }括起来的代码 代码块类型: 1.局部代码块:定义在方法体中. 2.构造代码块:也叫初始化代码块,定义在类中方法体之外. 3.静态代码块:定义在类中方法体之外,被static修饰符 ...

  3. 浏览器从输入url 到页面展示完成响应过程

    用户从输入 url 到浏览器响应,呈现给用户的具体过程 1.用户在输入栏输入地址 (1) 如果有 beforeunload 事件会先执行判断继续还是跳出操作 (2) 浏览器进程识别是 地址还是关键字检 ...

  4. Scala实践1

    一.Scala安装和配置 1.1安装 Scala需要Java运行时库,安装Scala需要首先安装jdk. 然后在Scala官网下载 程序安装包 根据不同的操作系统选择不同的安装包,下载完成后,将安装包 ...

  5. Python工具类(二)—— 操作时间相关

    #!/usr/bin/env python # -*- coding: utf-8 -*- """ __title__ = '操作时间的工具类' "" ...

  6. 使用远程接口库进一步扩展Robot Framework的测试能力

    引言: Robot Framework的四层结构已经极大的提高了它的扩展性.我们可以使用它丰富的扩展库来完成大部分测试工作.可是碰到下面两种情况,仅靠四层结构就不好使了: 1.有些复杂的测试可能跨越多 ...

  7. redis 支持事务

    pipe = conn.pipeline(transaction=True) pipe.multi() pipe.set(') pipe.hset('k3','n1',666) pipe.lpush( ...

  8. Maven的学习之路1

    对于下列这段Maven的命令行有不懂之处,在zgmzyr的博客上得到了解释.非常感谢这位博友,写在自己的随笔上以便查看和修改. 1. 创建项目 $ mvn archetype:generate -Dg ...

  9. 个人第四次作业:Alpha项目测试

    个人第四次作业:Alpha项目测试 格式描述 详情 这个作业属于哪个课程 http://edu.cnblogs.com/campus/xnsy/GeographicInformationScience ...

  10. makefile自动依赖生成

    自动依赖生成 基于make的构建环境要正确工作, 一个很重要(也很烦人)的任务是, 在makefile中正确列 举依赖. 这个文档将介绍了一个非常有用的让make自身来创建和维护这些依赖的方法. 文章 ...