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
我们还需要安装Node.js和npm:
yum install -y nodejs npm
在撰写本文时,Rocket.Chat推荐的Node.js版本是Node.js v8.9.3。 发出以下命令以安装推荐的Node.js版本:
npm install -g inherits n n 8.9.3
MongoDB是NoSQL面向文档的数据库,它被Rocket.Chat用作数据存储。
我们将使用官方MongoDB存储库中的yum来安装MongoDB。 打开您选择的编辑器并创建以下存储库文件:
/etc/yum.repos.d/mongodb-org.repo
[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
安装完成后,启用并启动MongoDB服务:
sudo systemctl start mongod sudo systemctl enable mongod
创建新的系统用户
创建一个新的用户和组,这将运行我们的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
安装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
如果没有错误,您应该看到以下输出:
➔ ------------------------------------------------------- ➔ | 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
[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
使用Nginx设置反向代理
如果您遵循了我们如何在CentOS 7上安装Nginx,以及如何在CentOS 7指南上使用Let's Encrypt来保护Nginx,则您应该已经安装并配置了带有SSL证书的Nginx。 现在我们只需要为我们的Rocket.Chat安装创建一个新的服务器块。
/etc/nginx/conf.d/linuxidc.com.conf
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。如果您在安装时遇到任何问题,请随时留下评论。