阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

如何在CentOS 7上部署Rocket.Chat

149次阅读
没有评论

共计 5064 个字符,预计需要花费 13 分钟才能阅读完成。

Rocket.Chat 是一个完整的团队沟通平台,是一个自我托管的 Slack 替代品。它由 Meteor 构建,提供各种功能,包括帮助台聊天,视频会议,文件共享,语音消息,API 等。在本教程中,我们将向您展示如何在 CentOS 7 服务器上部署 Rocket.Chat 并将 Nginx 配置为 SSL 反向代理。

先决条件

在继续本教程之前,请确保您已满足以下先决条件:

根据官方的 Rocket.Chat 系统要求,CentOS 7 服务器至少需要 1G 的 RAM。

您有一个指向您的服务器 IP 地址的域名。在本文中,我们将使用 linuxidc.com。

你有 Nginx 的安装,如果不检查本指南。

您的域名已安装 SSL 证书。按照本指南,您可以安装免费的 Let’s Encrypt SSL 证书。

安装依赖关系

安装下面的软件包,以便在本指南的后面我们可以构建所需的 npmpackages

yum install epel-release curl GraphicsMagick gcc-c++

如何在 CentOS 7 上部署 Rocket.Chat

我们还需要安装 Node.js 和 npm:

yum install -y nodejs npm

如何在 CentOS 7 上部署 Rocket.Chat

在撰写本文时,Rocket.Chat 推荐的 Node.js 版本是 Node.js v8.9.3。发出以下命令以安装推荐的 Node.js 版本:

npm install -g inherits n
n 8.9.3

如何在 CentOS 7 上部署 Rocket.Chat

MongoDB 是 NoSQL 面向文档的数据库,它被 Rocket.Chat 用作数据存储。

我们将使用官方 MongoDB 存储库中的 yum 来安装 MongoDB。打开您选择的编辑器并创建以下存储库文件:

/etc/yum.repos.d/mongodb-org.repo

如何在 CentOS 7 上部署 Rocket.Chat

[mongodb-org-3.6]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/RedHat/$releasever/mongodb-org/3.6/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc

要安装 MongoDB,请运行以下命令:

sudo yum install mongodb-org

如何在 CentOS 7 上部署 Rocket.Chat如何在 CentOS 7 上部署 Rocket.Chat

安装完成后,启用并启动 MongoDB 服务:

sudo systemctl start mongod
sudo systemctl enable mongod

如何在 CentOS 7 上部署 Rocket.Chat

创建新的系统用户

创建一个新的用户和组,这将运行我们的 rocket 安装,为简单起见,我们将命名我们的用户 rocket:

sudo useradd -m -U -r -d /opt/rocket rocket

将 nginx 用户添加到新用户组,并更改 / opt / rocket 目录权限,以便 Nginx 可以访问我们的 rocket 安装:

sudo usermod -a -G rocket nginx
sudo chmod 750 /opt/rocket

如何在 CentOS 7 上部署 Rocket.Chat

安装 Rocket.Chat

切换到 rocket 用户:

sudo su – rocket

并用 curl 下载最新的 Rocket.Chat 稳定版本:

curl -L https://releases.rocket.chat/latest/download -o rocket.chat.tgz

下载完成后,解压缩压缩文件并将目录重命名为 Rocket.Chat:

tar zxf rocket.chat.tgz
mv bundle Rocket.Chat

为了在创建 systemd 单元并使用 Nginx 设置反向代理之前测试我们的安装,我们将设置所需的环境变量并启动 Rocket.Chat 服务器

export PORT=3000
export ROOT_URL=http://linuxidc.com:3000/
export MONGO_URL=mongodb://localhost:27017/rocketchat

改回到 Rocket.Chat 目录并通过发出以下命令启动 Rocket.Chat 服务器:

cd ../../
node main.js

如何在 CentOS 7 上部署 Rocket.Chat

如果没有错误,您应该看到以下输出:

➔ +——————————————————-+
➔ |                    SERVER RUNNING                    |
➔ +——————————————————-+
➔ |                                                      |
➔ |  Rocket.Chat Version: 0.63.1                          |
➔ |      NodeJS Version: 8.11.1 – x64                    |
➔ |            Platform: linux                          |
➔ |        Process Port: 3000                            |
➔ |            Site URL: http://linuxidc.com:3000/  |
➔ |    ReplicaSet OpLog: Disabled                        |
➔ |          Commit Hash: ac16e93869                      |
➔ |        Commit Branch: HEAD                            |
➔ |                                                      |
➔ +——————————————————-+

我们现在可以用 CTRL + C 停止 Rocket.Chat 服务器,并继续执行下一步。

创建一个 Systemd 单元

要将 Rocket.Chat 作为服务运行,我们将在 /etc/systemd/system/ 目录下创建一个 rocketchat.service 单元文件,其中包含以下内容:

/etc/systemd/system/rocketchat.service

如何在 CentOS 7 上部署 Rocket.Chat

[Unit]
Description=Rocket.Chat server
After=network.target nss-lookup.target mongod.target

[Service]
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=rocketchat
User=rocket
Environment=MONGO_URL=mongodb://localhost:27017/rocketchat ROOT_URL=http://linuxidc.com:3000/ PORT=3000
ExecStart=/usr/local/bin/node /opt/rocket/Rocket.Chat/main.js

[Install]
WantedBy=multi-user.target

通知 systemd 我们创建了一个新的单元文件并通过执行以下命令启动 Rocket.Chat 服务:

sudo systemctl daemon-reload
sudo systemctl start rocketchat

您可以使用以下命令检查服务状态:

sudo systemctl status rocketchat

示例输出:

● rocketchat.service – Rocket.Chat server
  Loaded: loaded (/etc/systemd/system/rocketchat.service; enabled; vendor preset: disabled)
  Active: active (running) since Tue 2018-04-10 20:30:56 UTC; 8s ago
 Main PID: 32356 (node)
  CGroup: /system.slice/rocketchat.service
          └─32356 /usr/local/bin/node /opt/rocket/Rocket.Chat/main.js

如果没有错误,您可以启用 Rocket.Chat 服务在启动时自动启动:

sudo systemctl enable rocketchat

如何在 CentOS 7 上部署 Rocket.Chat

使用 Nginx 设置反向代理

如果您遵循了我们如何在 CentOS 7 上安装 Nginx,以及如何在 CentOS 7 指南上使用 Let’s Encrypt 来保护 Nginx,则您应该已经安装并配置了带有 SSL 证书的 Nginx。现在我们只需要为我们的 Rocket.Chat 安装创建一个新的服务器块。

/etc/nginx/conf.d/linuxidc.com.conf

如何在 CentOS 7 上部署 Rocket.Chat

upstream rocketchat_backend {
  server 127.0.0.1:3000;
}

server {
    listen 80;
    server_name linuxidc.com www.linuxidc.com;

    include snippets/letsencrypt.conf;
    return 301 https://linuxidc.com$request_uri;
}

server {
    listen 443 ssl http2;
    server_name www.linuxidc.com;

    ssl_certificate /etc/letsencrypt/live/linuxidc.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/linuxidc.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/linuxidc.com/chain.pem;
    include snippets/ssl.conf;

    return 301 https://linuxidc.com$request_uri;
}

server {
    listen 443 ssl http2;
    server_name linuxidc.com;

    ssl_certificate /etc/letsencrypt/live/linuxidc.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/linuxidc.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/linuxidc.com/chain.pem;
    include snippets/ssl.conf;

    access_log /var/log/nginx/linuxidc.com-access.log;
    error_log /var/log/nginx/linuxidc.com-error.log;

    location / {
        proxy_pass http://rocketchat_backend/;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection “upgrade”;
        proxy_set_header Host $http_host;

        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forward-Proto http;
        proxy_set_header X-Nginx-Proxy true;

        proxy_redirect off;
    }
}

重新加载 Nginx 服务以使更改生效:

sudo systemctl reload nginx

配置和使用 Rocket.Chat

打开浏览器并键入:http://linuxidc.com,假设安装成功,您应该看到如下所示:

如何在 CentOS 7 上部署 Rocket.Chat

点击注册一个新帐户,并输入您的第一个管理登录信息。点击提交,然后为您的用户输入用户名,点击使用此用户名,您将被重定向到主页,以管理员身份登录。

就这样!您已经在 CentOS 7 上成功安装了 Rocket.Chat。如果您在安装时遇到任何问题,请随时留下评论。

更多 CentOS 相关信息见 CentOS 专题页面 https://www.linuxidc.com/topicnews.aspx?tid=14

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-21发表,共计5064字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中