자체 채팅서버 구축하기.(메신저 만들기)

메신저 만들기라는 이름은 거창하지만 사실 오픈소스 ROCKET.CHAT을 서버에 구축해서 실제 메신저처럼 사용하는거다.

보통 메신저로 카카오톡, 행아웃, 슬랙등등 여러가지 어플리케이션들이 있지만 구축형이 아니기 때문에 기업 or 나처럼 심심한 사람들은 선호하지 않는다.

그래서 직접 서버 구축을 해서 채팅서버를 만들어보도록 하겠다.

준비물 : Linux Cent OS 8.1 1911

물론 AWS, Google Cloud 플랫폼등을 이용해서 만들어도 되고 나처럼 집에 홈서버를 구축해서 만들어도 된다.

서버생성

언제나 설치후에는 dnf update

ROCKET.CHAT 설치파일 다운로드

https://rocket.chat/install

들어가서 스크롤을 쭈욱 내리면 Server Install이 있는데 여기서 자기 환경에 맞는버전을 다운로드하자.(나는 Cent OS)

Cent 7.6 이지만.. 8.1도 되겠지

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

필수 패키지 설치하기

  • Mongodb 4.0.9
  • NodeJS 12.14.0

yum -y check-update

몽고DB 레포 등록

cat << EOF | sudo 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

NodeJS 패키지 다운로드

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

빌드 도구, MongoDB, nodejs 및 graphicsmagick를 설치

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

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

npm install -g inherits n && sudo n 12.14.0

ROCKET.CHAT 설치

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

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

압축풀고 이동해서 npm으로 설치파일 install

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

/opt 경로는 다른경로로 변경해도 된다 (ex. /etc)

mv /tmp/bundle /opt/Rocket.Chat

Rocket.Chat 서비스 구성

rocketchat 사용자를 추가하고 Rocket.Chat 폴더에 대한 권한을 설정하고 Rocket.Chat 서비스 파일을 작성

유저생성

sudo useradd -M rocketchat && sudo usermod -L rocketchat

폴더권한

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

서비스 파일 작성. 여기에 MongDB정보와 Root URL이 들어가니 변경하려면 수정하자.
기본적으로 몽고 DB는 27017, Web URL은 3000 포트를 사용한다.

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.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

MongoDB의 스토리지 엔진 및 복제를 설정하고 (버전 1 이상 필수) MongoDB 및 Rocket을 활성화하고 시작

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

mongo --eval "printjson(rs.initiate())"

sudo systemctl enable rocketchat && sudo systemctl start rocketchat

잘 복붙만 하면 된다.

방화벽 오픈

firewall-cmd --zone=public --permanent --add-port=3000/tcp
firewall-cmd --reload

설치 확인

먼저 netstat -lntp로 포트 오픈이 잘되었는지 확인

웹으로 접근

요렇게 설치마법사가 나온다.

4단계까지 잘입력해주자.

게이트웨이 서버를 만들자신이 있으면 아래걸로.. 아니면 위에꺼하자

완료

나는 리버스 프록시 후 도메인 부여까지 해보겠다.

 

————————————————–

사이트 리뉴얼중입니다~

서버(Linux, ESXi), NAS(헤놀로지, ESXi 및 IT관련 정보, 기타 등등을 공유하는 커뮤니티 SVRFORUM을 새로 만들었습니다.
많은 가입(?) 부탁드립니다~
https://svrforum.com

이전글들은 모두 상단 메뉴의 Blog 글 모음에있습니다!

2 thoughts on “자체 채팅서버 구축하기.(메신저 만들기)”

  1. 감사합니다.! 깔끔하게 정리해주신 덕분에 사내메신저로 잘 사용하고 있습니다.

    사용중 채팅창에 한글 파일 .hwp 을 업로드 할때 지원하는 미디어 타입이 아니하고 뜹니다.

    혹시 해결방법이 있을까요? ㅠㅠ

    1. 미디어 타입의 경우 설정에서 관리하는 탭이 있었던걸로.. 기억합니다
      지금은 제가 운영하고있지않아서 바로 확인은 안되네요 ㅠㅠ

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

홈서버 IT 커뮤니티 SVRFORUM
Link