상세 컨텐츠

본문 제목

[Rocket.Chat] Rocket Chat 서버 구축 에러 대응

개발

by monad 2021. 8. 11. 18:03

본문

Rocket Chat 서버를 우분투 20.04 LTS에 설치하는 과정에서 발생하는 에러에 대해서 정리 했습니다.

단순히 사용만을 하고자 한다면 우분투의 snap을 통해서 설치합니다. (매뉴얼 대로 명령어 입력하면 됩니다.)

 

snap을 통한 Rocket.Chat 인스톨: https://docs.rocket.chat/installing-and-updating/snaps

 

이하 ubuntu에서 수동으로 인스톨: https://docs.rocket.chat/installing-and-updating/manual-installation/ubuntu

 

 

Rocket.Chat in Ubuntu

 

docs.rocket.chat

1. MongoDB 설치 문제

sudo apt-get install mongodb-org

위의 명령을 실행하기 전에 이하의 작업을 진행해야 합니다.

> wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
> echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list
> sudo apt-get install -y mongodb-org

 

2. Rocket.Chat의 bundle을 mv하는 위치

/opt 폴더 외의 다른 폴더에 설치해도 된다고 공식 문서에는 나와 있지만 서버에서 /opt/Rocket.Chat을 보고 있기에 반드시 /opt 밑에 복사해 두어야 합니다.

> sudo mv /tmp/bundle /opt/Rocket.Chat
# 만약 /opt가 없다면 만들어 주세요.
> sudo mkdir /opt

3. MongoDB의 engine 변경

engine을 mmapv1에서 wiredTiger로 변경해 주세요. MongoDB 4.2 버전부터 mmapv1이 제거되었습니다.
( https://docs.mongodb.com/manual/core/storage-engines/ )

> sudo nano /etc/mongod.conf

변경하지 않으면 다음과 같은 에러가 발생합니다.

starseed@innobim:~$ mongo --eval "printjson(rs.initiate())"
MongoDB shell version v5.0.2
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed: SocketException: Error connecting to 127.0.0.1:27017 :: caused by :: Connection refused :
connect@src/mongo/shell/mongo.js:372:17
@(connect):2:6
exception: connect failed
exiting with code 1

 

4. 전체 설치 과정은 다음과 같습니다.

#https://docs.rocket.chat/installing-and-updating/manual-installation/ubuntu
> sudo apt-get -y update
> sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
> sudo apt-get -y update && sudo apt-get install -y curl && curl -sL https://deb.nodesource.com/setup_12.x | sudo bash -
> sudo apt-get install -y build-essential nodejs graphicsmagick

#https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/ (이하 몽고DB 정식 버전 인스톨 과정)
> wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
> echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list
> sudo apt-get install -y mongodb-org

> sudo npm install -g inherits n && sudo n 12.18.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
> sudo mv /tmp/bundle /var/opt/Rocket.Chat  <---------------- /opt/Rocket.Chat으로 해야 한다. 물리적으로 이 폴더를 보고 있다.
> cat << EOF |sudo tee -a /lib/systemd/system/rocketchat.service
[Unit]
Description=The Rocket.Chat server
After=network.target remote-fs.target nss-lookup.target nginx.service mongod.service
[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
> sudo sed -i "s/^#  engine:/  engine: mmapv1/"  /etc/mongod.conf
> sudo sed -i "s/^#replication:/replication:\n  replSetName: rs01/" /etc/mongod.conf
> sudo systemctl enable mongod && sudo systemctl start mongod
#    Created symlink /etc/systemd/system/multi-user.target.wants/mongod.service → /lib/systemd/system/mongod.service.

#*** mongd 위치: /usr/bin/mongod
#*** conf  위치: /etc/mongod.conf
starseed@innobim:/etc$ sudo nano mongod.conf
  engine: mmapv1              <<------------------ wiredTiger로 수정

starseed@innobim:/var/log/mongodb$ mongo --eval "printjson(rs.initiate())"
MongoDB shell version v5.0.2
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("ccbeb44b-1702-4835-8ded-6aa5b012b5f4") }
MongoDB server version: 5.0.2
{
        "info2" : "no configuration specified. Using a default configuration for the set",
        "me" : "127.0.0.1:27017",
        "ok" : 1
}


starseed@innobim:/var/log/mongodb$ sudo systemctl enable rocketchat && sudo systemctl start rocketchat
Created symlink /etc/systemd/system/multi-user.target.wants/rocketchat.service → /lib/systemd/system/rocketchat.service.
starseed@innobim:/var/log/mongodb$ sudo systemctl status rocketchat

 

5. 설치를 완료하면 다음과 같이 "http://우분투 서버 IP:3000"을 통해서 Rocket.Chat를 확인할 수 있습니다.

Rocket.Chat 초기 화면

관련글 더보기

댓글 영역