Rat's

使用宝塔面板安装Rocket.Chat多功能团队聊天室
说明:Rocket.Chat一年前就介绍过→传送门,一款多功能团队聊天室,支持群组聊天,直接通信,私聊群,桌面通知...
扫描右侧二维码阅读全文
27
2019/06

使用宝塔面板安装Rocket.Chat多功能团队聊天室

说明:Rocket.Chat一年前就介绍过→传送门,一款多功能团队聊天室,支持群组聊天,直接通信,私聊群,桌面通知,媒体嵌入,链接预览,文件上传,语音/视频,聊天,截图,实时翻译等等,安装方法比较简单的有SnapDocker,此前也只说过Snap安装方法,由于一直有小伙伴需要宝塔面板安装教程,所以这里就水一篇宝塔教程。

安装

官方文档:https://rocket.chat/docs/

环境要求:NodeJS 8.11.4Mongodb 4.0.9Nginx(非必需)。

提示:由于官方建议的最低内存1G,所以512M或更小的建议加点虚拟内存,可以使用Swap一键脚本→传送门

1、安装宝塔

#CentOS系统
wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
#Ubuntu系统
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh
#Debian系统
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && bash install.sh

安装完成后,进入面板,点击左侧软件商店,然后安装PM2管理器MongoDBNginx(使用域名访问才需要安装,反之不用)。

注意:Debian安装MongoDb之前还需要使用命令apt install sudo,不然可能存在MongoDb启动不了的情况;如果你已经安装了MongoDb,那就先使用apt install sudo,再使用/etc/init.d/mongodb start启动即可。

2、环境配置
先点击左侧软件商店,找到PM2管理器设置选项,选择Node版本,切换到8.11.4版本,不然太高可能会导致Rocket.Chat运行出错。

然后再找到MongoDb设置选项,点击配置文件,新增/修改以下代码:

#设置storage引擎,新增engine参数,并修改下dbPath路径,不然会启动不了
storage:
  dbPath: /www/server/mongodb/Rocket.Chat
  directoryPerDB: true
  engine: mmapv1
  journal:
    enabled: true
#配置replica set,新增以下参数
replication:
  replSetName: rs01 

保存后,MongoDb会自动关闭,这时候使用命令:

#新建数据存储路径,即上面配置文件修改的dbPath参数
mkdir /www/server/mongodb/Rocket.Chat
#授权
chown mongo:mongo /www/server/mongodb/Rocket.Chat
#重新启动数据库
/etc/init.d/mongodb start
#启动replica set
mongo --eval "printjson(rs.initiate())"

3、安装依赖

#Debian/Ubuntu系统
apt install -y graphicsmagick
#CentOS系统
yum install -y GraphicsMagick

4、安装Rocket.Chat

#下载rocket.chat
wget -O rocket.chat.tgz https://releases.rocket.chat/latest/download 
#解压并删除
tar -xzf rocket.chat.tgz && rm -rf rocket.chat.tgz
#移动到/opt并重命名
mv bundle /opt/Rocket.Chat
#安装依赖
cd /opt/Rocket.Chat
npm install -g inherits
cd programs/server
npm install

5、启动Rocket.Chat

#新建rocketchat用户并授权
useradd -M rocketchat && usermod -L rocketchat
chown -R rocketchat:rocketchat /opt/Rocket.Chat
#新建systemd配置文件,将以下代码一起复制到SSH运行
cat > /etc/systemd/system/rocketchat.service <<EOF
[Unit]
Description=Rocket.Chat
After=network.target
Wants=network.target

[Service]
ExecStart=$(command -v node) main.js
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=rocketchat
User=rocketchat
WorkingDirectory=/opt/Rocket.Chat
Environment=MONGO_URL=mongodb://127.0.0.1:27017/rocketchat?replicaSet=rs01 MONGO_OPLOG_URL=mongodb://127.0.0.1:27017/local?replicaSet=rs01 ROOT_URL=http://127.0.0.1:3000/ PORT=3000
Type=simple
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target
EOF

开始启动:

#启动的时候,可能需要点时间加载,等待即可
systemctl start rocketchat

查看状态:

systemctl status rocketchat

开机自启:

systemctl enable rocketchat

此时访问地址为ip:3000,如果你想用ip访问,点击左侧安全,开放3000端口即可,如果想用域名访问,不需要开启,继续往下面看。

6、域名访问
要使用域名的话就需要进行反代了,这里就不用宝塔自带的反向代理配置了,默认配置不适合Rocket.Chat

先点击左侧网站,添加站点,然后再点击添加好了的域名名称,这时候就进入了站点配置,点击配置文件,在中间添加以下代码:

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;
}

点击保存后,再点击SSL,申请免费的Let's Encrypt证书,并强制HTTPS

配置好了后就可以使用域名访问了,然后根据要求安装好,最后就可以进入你的Rocket.Chat聊天室了,还有更多使用方法可以直接查看→传送门

Vultr注册就送$50,可开日本/新加坡等机房,【点击注册】。
最后修改:2019 年 06 月 28 日 09 : 04 AM

发表评论

22 条评论

  1. jackyw

    博主你好,我参照你的教程,在MongoDb设置选项,配置文件保存之后,mongdb服务没有自动关闭。
    然后输入#重新启动数据库 /etc/init.d/mongodb start,命令,提示错误,这要怎么解决?!可以在线联系你吗?我的Q280400634

    1. Rat's
      @jackyw

      看下软件设置-mongodb的运行日志

      1. jackyw
        @Rat's

        博主,你好,经过一下午的测试,终于用宝塔搭建起来了,另外有几个问题想请教你一下,rocket.chat安卓客户端如何使用?安装打开后,我选择登陆服务器,输入自己的服务器地址,为何无法登陆?不知道你有没有试过....

        1. Rat's
          @jackyw

          客户端没用过,其它的使用可以看下官方文档,写的很仔细,地址:https://rocket.chat/docs/

  2. 熊大大大

    难受

    rocketchat.service - Rocket.Chat
    Loaded: loaded (/etc/systemd/system/rocketchat.service; disabled; vendor preset: disabled)

    Active: activating (auto-restart) (Result: exit-code) since Mon 2019-07-01 23:08:11 CST; 5s ago
    Process: 18161 ExecStart=/www/server/nvm/versions/node/v8.11.4/bin/node main.js (code=exited, status=1/FAILURE)
    Main PID: 18161 (code=exited, status=1/FAILURE)

    Jul 01 23:08:11 v1ma systemd[1]: Unit rocketchat.service entered failed state.
    Jul 01 23:08:11 v1ma systemd[1]: rocketchat.service failed.
    [root@v1ma server]# systemctl enable rocketchat
    Created symlink from /etc/systemd/system/multi-user.target.wants/rocketchat.service to /etc/systemd/system/rocketchat.service.
    [root@v1ma server]# systemctl start rocketchat
    [root@v1ma server]# systemctl status rocketchat

    rocketchat.service - Rocket.Chat
    Loaded: loaded (/etc/systemd/system/rocketchat.service; enabled; vendor preset: disabled)

    Active: activating (auto-restart) (Result: exit-code) since Mon 2019-07-01 23:19:25 CST; 37s ago
    Process: 24710 ExecStart=/www/server/nvm/versions/node/v8.11.4/bin/node main.js (code=exited, status=1/FAILURE)
    Main PID: 24710 (code=exited, status=1/FAILURE)

    Jul 01 23:19:25 v1ma systemd[1]: Unit rocketchat.service entered failed state.
    Jul 01 23:19:25 v1ma systemd[1]: rocketchat.service failed.

    这是我的服务器问题吗

    1. Rat's
      @熊大大大

      看是不是内存太小了。

  3. gyaji

    数据库弄死启动不起来 CONTOS7的

    1. Rat's
      @gyaji

      安装的时候启动不了,还是修改后启动不了?前者的话,尝试一直卸载,安装试试。

  4. 小黑脸

    Process: 7478 ExecStart=/www/server/nvm/versions/node/v10.16.0/bin/node main.js (code=exited, status=203/EXEC)

    ???启不动,node也换成8.11.4了。

    1. Rat's
      @小黑脸

      切换后,需要修改/etc/systemd/system/rocketchat.service,把里面的v10.16.0改成8.11.4,不过这种还是建议提前切换好些。

  5. Kenneth

    什么时候也来一个宝塔安装Forsaken Mail的教程??也来水一个

    1. Rat's
      @Kenneth

      善于使用博客的搜索,都水了一年了,地址:https://www.moerats.com/archives/723/

  6. yonheng

    2019-06-27T15:38:38.972+0000 I CONTROL [initandlisten] MongoDB starting : pid=19696 port=27017 dbpath=/www/server/mongodb/data 64-bit host=ip-172-26-20-196
    2019-06-27T15:38:38.972+0000 I CONTROL [initandlisten] db version v4.0.5
    2019-06-27T15:38:38.972+0000 I CONTROL [initandlisten] git version: 3739429dd92b92d1b0ab120911a23d50bf03c412
    2019-06-27T15:38:38.972+0000 I CONTROL [initandlisten] allocator: tcmalloc
    2019-06-27T15:38:38.972+0000 I CONTROL [initandlisten] modules: none
    2019-06-27T15:38:38.972+0000 I CONTROL [initandlisten] build environment:
    2019-06-27T15:38:38.972+0000 I CONTROL [initandlisten] distarch: x86_64
    2019-06-27T15:38:38.972+0000 I CONTROL [initandlisten] target_arch: x86_64
    2019-06-27T15:38:38.972+0000 I CONTROL [initandlisten] options: { config: "/www/server/mongodb/config.conf", net: { bindIp: "127.0.0.1", port: 27017 }, processManagement: { fork: true, pidFilePath: "/www/server/mongodb/log/configsvr.pid" }, replication: { replSetName: "rs01" }, security: { authorization: "disabled", javascriptEnabled: false }, storage: { dbPath: "/www/server/mongodb/data", directoryPerDB: true, engine: "mmapv1", journal: { enabled: true } }, systemLog: { destination: "file", logAppend: true, path: "/www/server/mongodb/log/config.log" } }
    2019-06-27T15:38:38.972+0000 I STORAGE [initandlisten]
    2019-06-27T15:38:38.972+0000 I STORAGE [initandlisten] ** WARNING: Support for MMAPV1 storage engine has been deprecated and will be
    2019-06-27T15:38:38.973+0000 I STORAGE [initandlisten] ** removed in version 4.2. Please plan to migrate to the wiredTiger
    2019-06-27T15:38:38.973+0000 I STORAGE [initandlisten] ** storage engine.
    2019-06-27T15:38:38.973+0000 I STORAGE [initandlisten] ** See http://dochub.mongodb.org/core/deprecated-mmapv1
    2019-06-27T15:38:38.973+0000 I STORAGE [initandlisten]
    2019-06-27T15:38:38.973+0000 I STORAGE [initandlisten] exception in initAndListen: Location28662: Cannot start server. Detected data files in /www/server/mongodb/data created by the 'wiredTiger' storage engine, but the specified storage engine was 'mmapv1'., terminating
    2019-06-27T15:38:38.973+0000 I NETWORK [initandlisten] shutdown: going to close listening sockets...
    2019-06-27T15:38:38.973+0000 I NETWORK [initandlisten] removing socket file: /tmp/mongodb-27017.sock
    2019-06-27T15:38:38.973+0000 I CONTROL [initandlisten] now exiting
    2019-06-27T15:38:38.973+0000 I CONTROL [initandlisten] shutting down with code:100
    大佬mongodb改了启动不了

    1. Rat's
      @yonheng

      我的锅,配置文件忘了改个地方,改成这个就好了,dbPath: /www/server/mongodb/Rocket.Chat

  7. 奶爸de笔记

    如果能有一个开源通用的聊天协议就好了,这样N多可以通用对接的聊天程序出来,就没QQ和TG什么事了。

    1. Rat's
      @奶爸de笔记

      QQ依然第一,毕竟都用习惯了

  8. 心灵博客

    拒绝一切nodjs的东西。。。

    1. Rat's
      @心灵博客

      你对nodejs有什么意见吗。

  9. Yuuki

    wow~

  10. 梦随乡兮

    哇,谢谢大佬!神速般发文!

  11. CPUFAN
    该评论仅登录用户及评论双方可见
    1. Rat's
      @CPUFAN

      你这个有点高端,明天我水篇吧,估计这里的人用的不多。