【服务器的docker系列】自己动手搭建一个真正属于自己的聊天系统——Rocket.chat

图片[1]-【服务器的docker系列】自己动手搭建一个真正属于自己的聊天系统——Rocket.chat-楊仙森万事坞

注意:VPS的内存最好大于2G,再设置2G的SWAP,否则可能跑不起来!
设置SWAP可以用脚本:
wget -O box.sh https://raw.githubusercontent.com/BlueSkyXN/SKY-BOX/main/box.sh && chmod +x box.sh && clear && ./box.sh

1:搭建环境
服务器:无论你自家的群晖,还是花钱去腾讯阿里或者国外买的服务器,又或者是白嫖的都可以,不过尽量选择1核1G以上,虽然可以跑,但很勉强。
系统:Debian 10(11也可,Ubuntu18和20都可)
域名一枚,并做好解析到服务器上(无论你买的还是白嫖)
安装好Docker、Docker-compose()
【非必需】提前安装好宝塔面板海外版本aapanel,并安装好Nginx()
【非必需本教程采用】安装好Nginx Proxy Manager进行反代()

2:开始搭建
使用SSH工具连接服务器,逐条输入以下命令
切换到root用户

sudo -i

升级packages

apt update -y

Debian比较纯净可能需要安装以下常用

apt install wget curl sudo vim git

3:创建一下安装的目录:
在root目录里创建了data和在其内创建了docker_data并在其内创建了rocketchat文件夹,其中data可以修改成其他目录

mkdir -p /root/data/docker_data/rocketchat

进入到目标目录内

cd /root/data/docker_data/rocketchat

建立相应yml文件

nano docker-compose.yml

将以下内容复制到yml文件内并保存,如使用的是finalshell工具可能存在代码格式混乱,导致无法正常拉取安装,可以在工具中下半部分的文件访问界面内找到这个文件位置并打开然后重新复制内容黏贴,格式基本就正确,最后保存,或者使用其他ssh工具尝试。

version: '2'

services:
  rocketchat:
    image: rocketchat/rocket.chat:latest
    command: >
      bash -c
        "for i in `seq 1 30`; do
          node main.js &&
          s=$$? && break || s=$$?;
          echo \"Tried $$i times. Waiting 5 secs...\";
          sleep 5;
        done; (exit $$s)"
    restart: unless-stopped
    volumes:
      - ./uploads:/app/uploads
    environment:
      - PORT=3000
      - ROOT_URL=http://localhost:3000
      - MONGO_URL=mongodb://mongo:27017/rocketchat
      - MONGO_OPLOG_URL=mongodb://mongo:27017/local
      - MAIL_URL=smtp://smtp.email
#       - HTTP_PROXY=http://proxy.domain.com
#       - HTTPS_PROXY=http://proxy.domain.com
    depends_on:
      - mongo
    ports:
      - 3000:3000               # 只需要改这一个地方,把左边的3000改掉就好啦
  mongo:
    image: mongo:4.0
    restart: unless-stopped
    volumes:
     - ./data/db:/data/db
     #- ./data/dump:/dump
    command: mongod --smallfiles --oplogSize 128 --replSet rs0 --storageEngine=mmapv1

  # this container's job is just run the command to initialize the replica set.
  # it will run the command and remove himself (it will not stay running)
  mongo-init-replica:
    image: mongo:4.0
    command: >
      bash -c
        "for i in `seq 1 30`; do 
            mongo mongo/rocketchat --eval \"
            rs.initiate({
              _id: 'rs0',
              members: [ { _id: 0, host: 'localhost:27017' } ]})\" &&
          s=$$? && break || s=$$?;
          echo \"Tried $$i times. Waiting 5 secs...\";
          sleep 5;
        done; (exit $$s)"
    depends_on:
      - mongo

可对代码内的左边的3000端口进行修改,无误后按键盘ctrl+x退出编辑,按y进行保存,并回车

4:运行一下代码拉取安装

docker-compose up -d

安装结束后可通过ip加端口号3000访问

4-2:如今后需要更新可通过以下代码
首先备份防万一

cp -r /root/data/docker_data/rocketchat /root/data/docker_data/rocketchat.archive

进入安装目录

cd /root/data/docker_data/rocketchat

拉取最新镜像

docker-compose pull

重新更新当前镜像

docker-compose up -d

4-3:如果最后讨厌了,不爱了,那就卸载
进入安装目录

cd /root/data/docker_data/rocketchat

停止容器

docker-compose down

完全删除映射到本地的数据

rm -rf /root/data/docker_data/rocketchat

最后记得查看之前手动创建的rocketchat文件夹和里面的yml文件是不是没有自动删除,可以手动进行删除。

最后的最后通过设置一切正常后,可以通过npm进行反代,达到只需要使用域名即可访问,而不是在后面还拖了端口号的尾巴

温馨提示:本文最新于2022-06-13 21:46:49进行了更新,某些文章内容具有时效性,若失效或有错误,请在下方留言
© 版权声明
THE END
点赞8投币 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容