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版本,切换到12.14.0版本。

然后再找到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

ln -sf $(command -v node) /usr/bin/node
#新建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新用户注册送100美元/16个机房按小时计费,支持支付宝,【点击查看】。
最后修改:2021 年 01 月 10 日 11 : 26 AM

发表评论

112 条评论

  1. Plus2333

    博主,我没按照教程来,只是最后一部添加了反代,前面安装走的官方的单个命令的方法,从ip进去一切ok,但是走域名,只有rocketchat的图标可以显示,剩下的是空白

    1. 云点
      @Plus2333

      同样的问题,不过我已经卸了

    2. Rat's
      @Plus2333

      应该是反代的问题,你f12看下控制台啥的,自己分析下,然后百度红色报错啥的

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

      你试试在程序根目录直接启动看看,命令node main.js

      1. GuguguBear
        @Rat's node 升级至最新版本之后可以启动 但是提示错误:There is an issue with node-fibers

        /opt/Rocket.Chat/programs/server/node_modules/fibers/bin/linux-x64-72-glibc/fibers.node is missing.

        Try running this to fix the issue: /www/server/nvm/versions/node/v12.16.1/bin/node /opt/Rocket.Chat/programs/server/node_modules/fibers/build
        Error: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /opt/Rocket.Chat/programs/server/node_modules/fibers/bin/linux-x64-72-glibc/fibers.node)

        at Object.Module._extensions..node (internal/modules/cjs/loader.js:1208:18) at Module.load (internal/modules/cjs/loader.js:1002:32) at Module.Mp.load (/opt/Rocket.Chat/programs/server/runtime.js:15:31) at Function.Module._load (internal/modules/cjs/loader.js:901:14) at Module.require (internal/modules/cjs/loader.js:1044:19) at require (internal/modules/cjs/helpers.js:77:18) at Object.<anonymous> (/opt/Rocket.Chat/programs/server/node_modules/fibers/fibers.js:14:39) at Module._compile (internal/modules/cjs/loader.js:1158:30) at Module.Mp._compile (/opt/Rocket.Chat/programs/server/runtime.js:50:23) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1178:10)

        /opt/Rocket.Chat/programs/server/node_modules/fibers/fibers.js:23

        throw new Error('Missing binary. See message above.'); ^

        Error: Missing binary. See message above.

        at Object.<anonymous> (/opt/Rocket.Chat/programs/server/node_modules/fibers/fibers.js:23:9) at Module._compile (internal/modules/cjs/loader.js:1158:30) at Module.Mp._compile (/opt/Rocket.Chat/programs/server/runtime.js:50:23) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1178:10) at Module.load (internal/modules/cjs/loader.js:1002:32) at Module.Mp.load (/opt/Rocket.Chat/programs/server/runtime.js:15:31) at Function.Module._load (internal/modules/cjs/loader.js:901:14) at Module.require (internal/modules/cjs/loader.js:1044:19) at require (internal/modules/cjs/helpers.js:77:18) at Object.<anonymous> (/opt/Rocket.Chat/programs/server/boot.js:2:15)

        =================================================

      2. GuguguBear
        @Rat's

        Meteor requires Node v12.0.0 or later.
        看来是版本太旧了?
        上网找了一下没找到升级Node的命令,哈哈哈。
        又折腾一下午……萌新流泪。

        1. Rat's
          @GuguguBear

          百度下node使用n切换版本

  3. tech

    请教一下博主:
    ● rocketchat.service - Rocket.Chat
    Loaded: loaded (/etc/systemd/system/rocketchat.service; disabled; vendor preset: enabled)
    Active: activating (auto-restart) (Result: exit-code) since Mon 2020-03-02 15:30:46 CST; 5s ago
    Process: 23911 ExecStart=/www/server/nvm/versions/node/v8.11.4/bin/node main.js (code=exited, status=1/FAILURE)
    Main PID: 23911 (code=exited, status=1/FAILURE)
    这是什么错误?
    之前安装依赖到
    npm install

    fibers@4.0.3 install /opt/Rocket.Chat/programs/server/node_modules/fibers
    node build.js || nodejs build.js
    这一步就卡住了

    1. Rat's
      @tech

      安装依赖一直卡着吗?试试yarn安装依赖,要是国内服务器的话,用阿里的cnpm安装依赖。

  4. F

    为啥之前都很顺利,就到了域名访问这里,设置好后,网页只是显示白页,客户端也是无法连接。

    1. Rat's
      @F

      ip访问是正常的吗?还是就域名这样

      1. F
        @Rat's

        具体的表现为favicon显示logo但是页面是白色的,无任何内容出现。

      2. F
        @Rat's

        更新,ip访问正常,就是域名不正常。

        1. Rat's
          @F

          估计是反代有点问题,你把域名发我看看

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

              看不出来,感觉是哪里有问题,我也好久没用了

          2. F
            @Rat's
            该评论仅登录用户及评论双方可见
          3. F
            @Rat's
            该评论仅登录用户及评论双方可见
      3. F
        @Rat's

        ip访问正常,
        然后进行了域名配置,发现不正常后,删除了站点,结果发现ip也无法进入了。

  5. 元霜丶

    您好 项目什么的都弄好了 但是开启反向代理后 打开显示是空白 只有网页标题和logo能 显示 进入网站前 我已经清理了缓存

    1. Rat's
      @元霜丶

      ip打开没问题?自己试着f12看看控制台啥的

      1. F
        @Rat's

        我觉得,我们应该遇到了同样的问题。

  6. arthur

    你好,我搭建好了,但试了好多次,都是没办法发送语音和图片哦,能教我一下吗

    1. ‘or
      @arthur

      博主有群吗?交流一下啊!

  7. exi6

    请问博主 手动安装的版本如何备份和恢复数据库呀

    1. Rat's
      @exi6

      这个不好说,可以直接百度下mongodb数据库备份与还原教程

  8. canbo2000

    我的 启动不了 rocket.chat 服务,查看 status 是 failed 的,其它都是 ok 的。
    npm6.9.0
    nodejs 8.11.4
    mongodb4.0.14
    rocket.chat 2.4.1(server)
    centos 8.1.1911(core)

    1. Rat's
      @canbo2000

      看看日志journalctl -u rocketchat

  9. 范明明

    修改完MongoDb配置保存以后MongoDb就无法启动了,怎么弄都无法重启。怎么解啊?

    1. Rat's
      @范明明

      应该是修改的配置文件不对,包括格式问题,你检查下

  10. 洛汐

    这就很难受了鸭 MongoDb修改以后死活启动不了

    1. Rat's
      @洛汐

      可以看下启动日志