티스토리 뷰

728x90
반응형

이번 포스팅에서는 Open Source Software Chatting 프로그램인 Rocket.Chat에 대해 알아보겠습니다.


사내 프로젝트를 진행하면서 카카오톡이 제한되어 있거나 PC 메신저 설치가 어려운 경우 설치하여 사용하면 정보 공유 용으로 유용하게 사용할 수 있을 듯합니다.

1) Rocket.Chat Document

https://rocket.chat/docs/installation/

설치하기 원하는 OS를 선택하고, 가이드에 따라 설치를 진행합니다. 메뉴얼에서 확인할 수 있듯이, Cloud SaaS Service, PaaS Deploy, Docker Container 그리고 Manual Installation이 가능합니다.

728x90

2) Rocket.Chat 설치

설치는 CentOS 리눅스 환경에서 진행합니다.

따라서 본 설치 과정은 다음을 참고합니다.

https://rocket.chat/docs/installation/manual-installation/centos/

a) 필수 패키지 설치

yum Package Manager를 업데이트 하고, 필수 패키지인 MongoDB를 설치합니다.

> yum -y check-update

[root@nrson server]# yum -y check-update
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: ftp.neowiz.com
 * epel: kartolo.sby.datautama.net.id
 * extras: mirror.navercorp.com
 * updates: mirror.navercorp.com

...

...

> yum repository에 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 -

> gcc-c++, make, mongodb-org, nodejs 설치

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

GraphicsMagick 설치

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

b) Rocket.Chat 설치

> Rocket.Chat 최신 버전 다운로드

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

tar -xzf /tmp/rocket.chat.tgz -C /tmp

> Rocket.Chat 설치 및 폴더 구성

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

mv /tmp/bundle /opt/Rocket.Chat

c) Rocket.Chat 서비스 구성

> rocketchat 사용자 추가 및 권한부여

useradd -M rocketchat && usermod -L rocketchat

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

> 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

> rocketchat.service ROOT_URL 수정

[root@nrson Rocket.Chat]# vi /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://xxx.xxx.xxx.xxx:3000/ PORT=3000
[Install]
WantedBy=multi-user.target

[root@nrson Rocket.Chat]# 

 

ROOR_URL : 접속 시 사용할 도메인을 설정합니다.

그 밖에 mongo_url, mongo_oplog_url, port 등을 변경할 수 있습니다.

> MongoDB 스토리지 엔진 및 복제 설정

sed -i "s/^# engine:/ engine: mmapv1/" /etc/mongod.conf

sed -i "s/^#replication:/replication:\n replSetName: rs01/" /etc/mongod.conf

> MongoDB 및 Rocket.Chat 서비스 활성화 및 시작

[root@nrson Rocket.Chat]# systemctl enable mongod && systemctl start mongod
[root@nrson Rocket.Chat]# mongo --eval "printjson(rs.initiate())"
MongoDB shell version v4.0.9
connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("4b4c4a22-8820-4419-a647-9e97eb0a513a") }
MongoDB server version: 4.0.9
{
        "operationTime" : Timestamp(1558936889, 1),
        "ok" : 0,
        "errmsg" : "already initialized",
        "code" : 23,
        "codeName" : "AlreadyInitialized",
        "$clusterTime" : {
                "clusterTime" : Timestamp(1558936889, 1),
                "signature" : {
                        "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
                        "keyId" : NumberLong(0)
                }
        }
}
[root@nrson Rocket.Chat]# systemctl enable rocketchat && systemctl start rocketchat
[root@nrson Rocket.Chat]#

> 기동 상태 확인

[root@nrson Rocket.Chat]# netstat -anp | grep LIST | egrep "27017|3000"
tcp        0      0 127.0.0.1:27017         0.0.0.0:*               LISTEN      65625/mongod
tcp        0      0 0.0.0.0:3000            0.0.0.0:*               LISTEN      67564/node
unix  2      [ ACC ]     STREAM     LISTENING     112537105 65625/mongod         /tmp/mongodb-27017.sock
[root@nrson Rocket.Chat]#

3) Rocket.Chat 접속

최초 접속을 위한 admin 설정을 진행합니다.

관리자 정보를 먼저 입력합니다.

다음으로 기업 정보를 입력합니다.

다음으로 서버 정보를 입력합니다.

마지막으로 서버를 등록하고 Rocket.Chat 사용 준비를 마무리합니다.

정상 완료되었을 경우 위와 같은 화면에 접속할 수 있습니다.

로그인 ID / Password는 관리자 정보에서 입력한 사용자 정보 및 이메일 주소 / 비밀번호입니다.

728x90

4) Rocket.Chat 활용하기

a) Rocket Chat Open Source Software 접속 URL

http://[ROOT_URL]:3000

b) 사용자 계정 등록

이름, E-mail, 비밀번호, 비밀번호 확인 순으로 입력합니다.

c) 별칭 등록

별칭의 경우 영문자, 숫자, 마침표와 밑줄만 사용 가능합니다.

d) 로그인 화면

로그인이 정상적으로 완료되면 다음과 같은 메인 화면을 확인 할 수 있습니다.

왼쪽 상단의 기본 초록색 박스를 클릭하면 사용자의 현재 상태 정보 및 계정 정보 변경 / 로그아웃을 수행할 수 있습니다.

e) 대화방 만들기

왼쪽 상단의 연필 모양의 버튼을 클릭하면 대화방을 생성할 수 있습니다.

공개/비공개 설정, 읽기 전용 대화방 여부, 방송 대화방 여부 등을 설정하며, 대화방 명 및 사용자를 초대할 수 있습니다.

마지막으로 대화방 내부에서 오른쪽 상단에 참여자 목록을 클릭하면 채팅 방 참여자 및 사용자를 초대할 수 있습니다.

지금까지 Rocket.Chat에 대한 설치 및 활용 가이드를 살펴보았습니다.

Rocket.Chat을 사용하면 손쉽게 구성원, 팀원 간에 의견을 주고 받을 수 있는 채팅 프로그램을 사용할 수 있으며, 파일 전송 역시 가능합니다.

그럼 이번 프로젝트에는 Rocket.Chat 프로그램을 설치해서 활용해 보는 것은 어떨까요?

728x90
반응형
댓글
  • 프로필사진 Choijisun 글씨나 닉네임글씨변경은 안되는건가요??
    있다면 빙법공유해주시면 감사하겠습니다
    2021.04.11 20:56
댓글쓰기 폼