博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Rocket.Chat 开源IM系统部署
阅读量:6707 次
发布时间:2019-06-25

本文共 3954 字,大约阅读时间需要 13 分钟。

Rocket.Chat


官方给出的文档也个人觉得太麻烦了,并且对ubuntu的支持程度远高于CentOS,自己就折腾写了个安装的笔记,如果是在公司内部或者是部门内部还是很有用处的,比较看中的功能有和gitlab或github的整合,以及注册认证和消息邮件外发

官方文档:

环境依赖

  • CentOS6.5
  • Nginx
  • Mongodb v2

安装步骤

  • 安装Mongodb
vim /etc/yum.repos.d/mongodb.repo

写入以下内容

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

Run

yum -y install epel-release curl GraphicsMagick npm mongodb-org-server mongodb-org gcc-c++

提前配置数据库

mongo>use rocketchat     //添加数据库>exitservice mongod restart
  • 安装node.js

这里就按照官方给出的文档安装了,那个有点麻烦

curl --silent --location https://rpm.nodesource.com/setup_8.x | bash -yum -y install nodejs
  • 安装Rocket.Chat
cd /optcurl -L https://releases.rocket.chat/latest/download -o rocket.chat.tar.gztar zxvf rocket.chat.tgzmv bundle Rocket.Chatcd Rocket.Chat/programs/servernpm installcd ../..

配置 PORT, ROOT_URL and MONGO_URL:

export PORT=3000export ROOT_URL=http://your-host-name.com-as-accessed-from-internet:3000/export MONGO_URL=mongodb://localhost:27017/rocketchat

启动服务

service mongod restart && chkconfig mongod onservice nginx start && chkconfig nginx on
  • 启动服务
node main.js

现在就能登录http://your-host-name.com-as-accessed-from-internet:3000/进行访问了

配置Nginx+SSL代理

  • 安装nginx
yum -y install nginx
  • 配置Nginx

创建自签证书

首先,创建证书和私钥的目录# mkdir -p /etc/nginx/cert# cd /etc/nginx/cert创建服务器私钥,命令会让你输入一个口令:# openssl genrsa -des3 -out nginx.key 2048创建签名请求的证书(CSR):# openssl req -new -key nginx.key -out nginx.csr在加载SSL支持的Nginx并使用上述私钥时除去必须的口令:# cp nginx.key nginx.key.org# openssl rsa -in nginx.key.org -out nginx.key最后标记证书使用上述私钥和CSR:# openssl x509 -req -days 365 -in nginx.csr -signkey nginx.key -out nginx.crt

配置rocketchat.conf

vim /etc/nginx/nginx.d/rocketchat.conf

注意将默认的default.conf删除掉,不然影响80端口

server {  listen 80;  server_name im.mydomain.com;  return 301 https://$host$request_uri;}# HTTPS Serverserver {    listen 443;    server_name im.mydomain.com;    error_log off;    ssl on;    ssl_certificate /etc/nginx/cert/nginx.crt;    ssl_certificate_key /etc/nginx/cert/nginx.key;    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;    location / {        proxy_pass http://127.0.0.1:3000/;        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;    }}

Auto Start Rocket.Chat

  • CentOS7

CentOS7下推荐如下配置,添加一个服务项:

[Unit]  Description=The Rocket.Chat server  After=network.target remote-fs.target nss-lookup.target nginx.target mongod.target  [Service]  ExecStart=/usr/local/bin/node /opt/Rocket.Chat/main.js  StandardOutput=syslog  StandardError=syslog  SyslogIdentifier=rocketchat  User=root  Environment=MONGO_URL=mongodb://localhost:27017/rocketchat ROOT_URL=http://your-host-name.com-as-accessed-from-internet:3000/ PORT=3000  [Install]  WantedBy=multi-user.target

Now you can enable this service by running:

systemctl enable rocketchat.servicesystemctl start  rocketchat.service
  • CentOS6

CentOS6下推荐使用Supervisor服务,需要我们写个脚本来自动执行,这样的话就能免去很多步骤

安装supervisor

yum install supervisor

编辑脚本并添加执行全权限

vim /opt/Rocket.Chat/start.sh

chmod +x /opt/Rocket.Chat/start.sh
脚本内容如下

#/bin/bashcd /opt/Rocket.Chat/export PORT=3000export ROOT_URL=http://your-host-name.com-as-accessed-from-internet:3000/    //根据自己的环境修改配置export MONGO_URL=mongodb://localhost:27017/rocketchatnode /opt/Rocket.Chat/main.js

配置supervisord服务

vim /etc/supervisord.conf

在最后添加一下内容

[program:rocketchat]command=bash /opt/Rocket.Chat/start.shdirectory=/opt/Rocket.Chatautostart=trueautorestart=truelogfile=/var/log/supervisor/rocketchat.loglog_stderr=trueuser=root

启动supervisord

service supervisord start && chkconfig supervisord on

此时rocket也就一起起来了

转载于:https://www.cnblogs.com/tchroot/p/7616922.html

你可能感兴趣的文章
ERROR Found the synthetic property @routerTransition
查看>>
js如何只获得Element自定义属性(自己手写在标签上的规定属性),不是自定义属性$(obj).attr("xx")...
查看>>
jquery support
查看>>
申奥动画长片名单出炉,动画质量大PK
查看>>
试图界定scala
查看>>
搞软件的一直会被人叫去修电脑 哎~ 发个安装方法会的可以自己装。
查看>>
Java并发编程实战
查看>>
Android App整体架构设计的思考
查看>>
2.NIO
查看>>
《Layer弹窗加强版》
查看>>
JSP内置对象(9种)
查看>>
mysql数据库重复记录过滤删除解决
查看>>
Maven的eclipse插件
查看>>
Java 二进制
查看>>
懒得理病毒的免疫系统能救命
查看>>
Java内存分析 --- 虚拟机运行时数据区
查看>>
关于mac android studio 与svn 解除关联后 无法再次share (Subversion) 的解决办法
查看>>
如何添加windows 系统的逻辑磁盘并设置盘符
查看>>
Vmware workstation与Hyper-v不兼容解决方法
查看>>
shell select case
查看>>