Rocket.Chat 是一个在线实时聊天程序,功能完善,而且各个操作系统平台均有对应的客户端程序,本文说明一下在 Docker 中的安装方法,有兴趣的可以参考研究。程序运行需要 NodeJS 和 MongoDB 环境。

官方 GitHub 地址:https://github.com/RocketChat/Rocket.Chat

DockerHub 地址:https://hub.docker.com/r/rocketchat/rocket.chat

本次我选择使用的是 CentOS7 镜像来创建容器,关于 Docker 的基本使用办法在前面的文章里已经说的很清楚了,这里不再赘述。

这里要注意的是由于后续需要使用到 systemctl 指令,因此创建容器时需要 privileged 指令提升权限,最后还要跟随 /usr/sbin/init 参数,同时将程序所需要的 3000 端口也映射出来,命令样例如下:

docker run -dit --privileged --restart=always -p 3000:3000 --name="rocketchat" centos:7 /usr/sbin/init

创建完容器后,进入容器,保险起见可以先检查一遍更新:

yum -y check-update

添加 MongoDB 源:

cat << EOF | tee -a /etc/yum.repos.d/mongodb-org-4.0.repo
[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/7/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
EOF

设定 Node.js:

yum install -y curl && curl -sL https://rpm.nodesource.com/setup_8.x | bash -

安装 MongoDB,Noge.js 等必要运行库:

yum install -y gcc-c++ make mongodb-org nodejs

yum install -y epel-release && yum install -y GraphicsMagick 

npm install -g inherits n && n 8.11.4 

下载主程序并解压:

curl -L https://releases.rocket.chat/latest/download -o /tmp/rocket.chat.tgz
tar -xzf /tmp/rocket.chat.tgz -C /tmp 

开始安装:

cd /tmp/bundle/programs/server && npm install

然后将安装完后的目录移动到 opt/Rocket.Chat 目录:

mv /tmp/bundle /opt/Rocket.Chat

添加对应用户:

useradd -M rocketchat && usermod -L rocketchat

修改程序目录的用户组:

chown -R rocketchat:rocketchat /opt/Rocket.Chat

创建数据库配置文件:

cat << EOF | tee -a /lib/systemd/system/rocketchat.service
[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=rocketchat
Environment=MONGO_URL=mongodb://localhost:27017/rocketchat?replicaSet=rs01 MONGO_OPLOG_URL=mongodb://localhost:27017/local?replicaSet=rs01 ROOT_URL=http://localhost:3000/ PORT=3000
[Install]
WantedBy=multi-user.target
EOF

配置数据库相关内容:

sed -i "s/^#  engine:/  engine: mmapv1/"  /etc/mongod.conf
sed -i "s/^#replication:/replication:\n  replSetName: rs01/" /etc/mongod.conf
systemctl enable mongod && systemctl start mongod
mongo --eval "printjson(rs.initiate())"

最后设定开机自启并启动主程序,就完成了:

systemctl enable rocketchat && systemctl start rocketchat

安装完之后就可以退出容器了,然后浏览器访问物理机 IP:3000 端口,即可看到 Rocker.Chat 主程序设置界面了:

设置向导

后面跟随设置向导完成一些常规设定即可,没有什么难度。设置完后就能看到聊天室界面了:

聊天室界面

此程序设定选项非常丰富,具体可以自行研究。

2222

站长 at 梨数码
我要是有钱多好~
2222

Latest posts by 2222 (see all)

如何管理 Docker 容器里的文件

之前的文章里介绍了 Docker 的基本操作,再来水一篇文章说说怎么对容器里的文件进行管理。 Docker 容器虽然类似虚拟机,但如果想要物理机和容器内系...

阅读全文

通俗易懂的 Docker 简单入门

前一段时间里,为了研究 HomeAssistant ,因此接触了一下 Docker,本文来尽量用通俗易懂的语言总结一下 Docker 的基本使用操作,算是个人日常备忘和新手...

阅读全文

斐讯 DC1 插排接入 HomeAssistant 实现本地局域网内控制

本文可以配合上一篇教程一起食用:Debian10 配置 Docker,并安装 HomeAssistant 在 NAS 上配置完 HA 服务器后,接着就需要来把这 DC1 插排的默认连接域名...

阅读全文

欢迎留言