시놀로지 도커에 rocket.chat 설치하기

Rocket.Chat: Communications Platform You Can Fully Trust 

image.png.jpg

로켓챗 

 

image.png.jpg

시놀챗 

 

시놀챗을 쓰다가 뭔가 좀 부족해서 찾아보니 로켓챗이라는 프로젝트가 있더라고요

셀프호스팅이 가능하지만 사용자 51명 이상은 결제 해야하는 서비스 입니다

요금제에 따라 추가기능이 있는 그런 형식인데요

 

 

image.png.jpg

Pricing

사용자가 50명 이하라면 기본 무료 요금제로 사용하는데 크게 문제는 없어 보입니다 

 

참고로 비회원 채팅 기능도 설정 가능하긴 하지만 익명 회원이나 봇도 50자리 중에 하나를 차지합니다….

 

사실 시놀챗도 소규모 채팅으로는 크게 불편한 점이 없긴 합니다

전백코드 있으면 앱 알림도 오고 나스에서 직접 파일 전송이나 채널 관리 다 괜찮긴 합니다만

시놀 계정이 있어야 한다는 점이 좀 그렇죠

 

로켓챗은 그런 점에 있어서 채팅 아이디만 만들어주면 되니까 괜찮더라고요

그리고 소규모 사내메신저용으로 쓰시는 경우도 많던데 

시놀챗보다 세부 설정과 기능들이 많습니다

 

개인과 개인 또는 소규모 커뮤니티는 물론 팀 업무에 사용하기 더 적합한 거 같다는 생각을 해봅니다

 

앱도 지원을 하기는 하는데 push 설정을 하려면 firebase 프로젝트와 구글 클라우드 콘솔 설정이 돼있어야 하더라고요

저 같은 경우는 구글 클라우드 콘솔 설정이 돼있어서 firebase만 추가하고 설정했는데 안드에서 잘 작동 합니다

 

설치는 뭐 가이드로 적기도 뭐할 정도로 간단하고

push 설정 부분이 구글 클라우드 콘솔 설정 돼있으면 간단하지만 

구글 클라우드 콘솔 설정 부분까지 설명하면 너무 복잡해져서 그냥 후기로만 남겨봅니다

짧게나마 가이드 글을 추가 했습니다

 

채팅 서비스 필요하신 분들은 한 번 설치 해보시기 바랍니다 

Install Rocket.Chat server

RocketChat/Rocket.Chat: The communications platform that puts data protection first.

 

우선 npm에서 역방향 프록시 설정을 해줍니다

eg. 192.168.0.2:3111 -> rocketchat.aaa.com

웹소켓과 인증서 추가 해주세요

 

파일 스테이션에서 폴더 추가를 해줍니다

image.png.jpg

volume1/docker/rocketchat 폴더 아래에

  • db
  • data

폴더를 생성 해주시고

image.png.jpg

/docker/rocketchat 폴더 우클릭 – 속성 – 권한 설정에서

Everyone 읽기/쓰기 권한을 추가 해주세요

아래 체크 하시고 저장

 

이제 컨테이너 매니저에서 프로젝트 생성을 눌러 줍니다

image.png.jpg

services:
  db:
    image: docker.io/bitnami/mongodb:7.0.5-debian-11-r22
    container_name: RocketChat-DB
    hostname: rocketchat-db
    security_opt:
      - no-new-privileges:true
    #healthcheck:
      #test: ["CMD", "mongosh", "--eval", "db.adminCommand('ping')"]
      #interval: 10s
      #timeout: 10s
      #retries: 5
      #start_period: 20s
    environment:
      MONGODB_REPLICA_SET_MODE: primary
      MONGODB_REPLICA_SET_NAME: rs0
      ALLOW_EMPTY_PASSWORD: 1
      MONGODB_SYSTEM_LOG_VERBOSITY: 3
    volumes:
      - /volume1/docker/rocketchat/db:/bitnami/mongodb:rw
    #restart: on-failure:5 
    restart: always

  rocketchat:
    image: rocketchat/rocket.chat:latest
    container_name: RocketChat
    #healthcheck:
      #test: ["CMD-SHELL", "nc -z 127.0.0.1 3000 || exit 1"]
      #interval: 10s
      #timeout: 5s
      #retries: 3
      #start_period: 90s
    hostname: rocketchat
    security_opt:
      - no-new-privileges:true
    environment:
      MONGO_URL: mongodb://rocketchat-db:27017/rocketchat?replicaSet=rs0
      MONGO_OPLOG_URL: mongodb://rocketchat-db:27017/local?replicaSet=rs0
      ROOT_URL: https://rocketchat.내 도메인.com
      URL: https://rocketchat.내 도메인.com
      PORT: 3000
      DEPLOY_METHOD: docker
    volumes:
      - /volume1/docker/rocketchat/data:/app/uploads:rw
    ports:
      - 3111:3000
    #restart: on-failure:5 
    restart: always
    depends_on:
      db:
        condition: service_started

ROOT_URL과 URL 부분에 npm에서 설정한 역방향 프록시 주소를 적어 줍니다

3111 포트는 접속 주소로 수정 하셔도 됩니다만 변경 하신다면

역방향 프록시도 수정을 해주셔야 합니다

 

CPU점유율이 널뛰기 해서 healthcheck 부분은 주석처리 했습니다만

안정적인 서비스를 위해 healthcheck가 필요하신 분들은 #지우시고 생성 하시면 됩니다

아래 #restart: on-failure:5 부분도 #지워서 restart: on-failure:5 로 수정 해주시고

restart: always 는 #restart: always 로 변경 해주세요

healthcheck 결과 문제가 있으면 재시작을 5회 시도한다는 의미 입니다

그 후 다음다음 완료 누르시면

image.png.jpg

두 개의 컨테이너가 실행 됩니다

 

역방향 프록시에서 설정한 주소로 접속 해주시면

image.png.jpg

이런 화면이 뜹니다

관리자 계정 설정 해주시고 다음

image.png.jpg

여기도 편하신대로 선택 해주세요

참고로 사이트명은 설정에서 수정 가능 합니다

 

image.png.jpg

실제 사용 가능한 이메일을 입력하시고 등록 해주세요

확인 메일이 날아옵니다

 

image.png.jpg

이런 확인 코드가 보이는데 메일과 비교해서 맞다면 메일에 있는 확인 버튼을 눌러 줍니다

 

image.png.jpg

완료가 되면 이런 페이지가 보이고 다시 로켓챗 페이지로 가보시면

 

image.png.jpg

이런 화면이 반겨 줍니다

저는 조직 이름을 테스트로 넣어서 이렇게 보입니다

 

이제 각자 상황에 따라 세부 설정을 완료하시면 되겠습니다

 

Configuring Push Notifications

기본적으로 사이트에서 알림은 가능하고

앱 push 설정은 위의 가이드 링크 참고하시면 될 거 같습니다

 

Rocket.Chat에서 한글 대화방 만들기 – 달소씨의 하루

로켓챗 한글 채널 생성 방법은 달소님 블로그 내용 참고하시면 되겠습니다

 

긴 글 읽으시느라 고생하셨습니다

 

image.png.jpg

참고로 n100 cpu 기준 db컨테이너가 1.6% ~ 18% 정도를 계속 왔다갔다하며 사용 합니다

healthcheck:
      test: ["CMD", "mongosh", "--eval", "db.adminCommand('ping')"]
      interval: 10s
      timeout: 10s
      retries: 5
      start_period: 20s
healthcheck:
      test: ["CMD-SHELL", "nc -z 127.0.0.1 3000 || exit 1"]
      interval: 10s
      timeout: 5s
      retries: 3
      start_period: 90s

두 컨테이너의 healthcheck 부분을 제거 하시거나

#으로 주석 처리 하시면 CPU점유율이 널 뛰는 것을 방지하실 수 있습니다

댓글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다