웹사이트 검색

Ubuntu 14.04에서 Rocket.Chat을 설치, 구성 및 배포하는 방법


소개

Rocket.Chat은 Meteor로 구축된 오픈 소스 메시징 앱입니다. 화상 회의, 파일 공유, 음성 메시지를 지원하고 모든 기능을 갖춘 API 등을 갖추고 있습니다. Rocket.Chat은 커뮤니케이션을 완벽하게 제어하려는 사용자에게 적합합니다.

이 튜토리얼에서는 새로운 Ubuntu 서버에 Rocket.Chat을 설치 및 구성하고 Nginx를 통해 역방향 프록시를 설정하여 보안을 강화하고 Rocket.Chat에 훨씬 쉽게 액세스할 수 있도록 합니다. 완료되면 거의 모든 곳에서 액세스할 수 있는 기능적인 Rocket.Chat 인스턴스를 갖게 됩니다.

전제 조건

이 자습서를 따르려면 다음이 필요합니다.

  • 최소 1GB RAM이 권장되는 Ubuntu 14.04 서버 1대
  • sudo 권한이 있는 루트가 아닌 사용자(Ubuntu 14.04의 초기 서버 설정에서 설정 방법을 설명합니다.)
  • 완전히 등록된 도메인. Freenom에서 구매할 수 있습니다.
  • 도메인 이름이 서버를 가리키도록 구성되어 있는지 확인하십시오. 도움이 필요하면 이 튜토리얼을 확인하세요.
  • SSL 인증서. https://linux-console.net/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-14-04) 또는 다른 제공업체에서 구입하세요.

1단계 - 종속성 설치

이 섹션에서는 MongoDB 및 NodeJS와 같은 Rocket.Chat의 일부 종속성을 설치합니다.

MongoDB를 시작하고 실행하는 것부터 시작하겠습니다. 먼저 패키지에 액세스할 수 있도록 키 서버를 추가해야 합니다.

  1. sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10

그런 다음 사용할 저장소를 설정해야 합니다.

  1. echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list

이제 패키지 목록을 업데이트하십시오.

  1. sudo apt-get update

이제 완료되었으므로 npm, mongodb-org, curlgraphicsmagick를 설치할 수 있습니다. Rocket.Chat의 모든 종속성:

  1. sudo apt-get install npm mongodb-org curl graphicsmagick

노드 버전을 변경하려면 NPM을 사용하여 패키지를 설치해야 합니다.

  1. sudo npm install -g n

해당 패키지를 사용하여 노드 버전을 0.10.40으로 변경합니다.

  1. sudo n 0.10.40

다음으로 Rocket.Chat 자체를 설치하고 약간의 구성을 수행합니다.

2단계 - Rocket.Chat 설치

시작하려면 curl을 사용하여 Rocket.Chat의 안정적인 최신 버전을 다운로드하세요.

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

tar 명령을 사용하여 방금 다운로드한 아카이브를 확장합니다.

  1. tar zxvf rocket.chat.tgz

그러면 전체 아카이브가 bundle이라는 디렉토리로 확장됩니다. bundle 디렉토리의 내용을 기억하기 쉬운 것으로 옮기겠습니다.

  1. mv bundle Rocket.Chat

NPM을 사용하여 Rocket.Chat을 설치할 디렉토리로 변경합니다.

  1. cd Rocket.Chat/programs/server

Rocket.Chat을 설치합니다.

  1. npm install

상위 Rocket.Chat 디렉토리로 다시 이동합니다.

  1. cd ../..

Rocket.Chat이 URL, 포트 등과 같은 항목을 추적할 수 있도록 몇 가지 환경 변수를 설정해야 합니다.

먼저 ROOT_URL 변수를 도메인 이름으로 설정합니다. URL 형식이어야 합니다.

  1. export ROOT_URL=https://example.com/

MONGO_URL 변수 아래에 MongoDB의 URL을 설정합니다.

  1. export MONGO_URL=mongodb://localhost:27017/rocketchat

PORT 변수를 3000으로 설정합니다.

  1. export PORT=3000

이제 다음 명령을 사용하여 Rocket.Chat을 실행할 수 있습니다.

  1. node main.js

오류가 없으면 작동합니다! 하지만 지금은 CTRL+C를 사용하여 Rocket.Chat을 중지하세요. 이제 Rocket.Chat이 설치되었으므로 리버스 프록시를 사용하여 모든 트래픽을 프록시하도록 Nginx를 설정하여 Rocket.Chat에 더 쉽게 액세스하고 SSL 인증서로 모든 통신을 암호화해야 합니다.

3단계 - Nginx로 역방향 프록시 설정

시작하려면 Nginx를 설치합니다.

  1. sudo apt-get install -y nginx

인증서의 개인 키를 /etc/nginx/certificate.key로 이동합니다.

  1. sudo cp /path/to/your/key /etc/nginx/certificate.key

예를 들어 Let's Encrypt 인증서를 생성한 경우 sudo cp /etc/letsencrypt/live/your_domain_name/privkey.pem /etc/nginx/certificate.key를 사용합니다. .

권한이 없는 도둑이 액세스할 수 없도록 키의 권한을 수정합니다.

  1. sudo chmod 400 /etc/nginx/certificate.key

인증서 자체를 /etc/nginx/certificate.crt에 복사합니다.

  1. sudo cp /path/to/your/cert /etc/nginx/certificate.crt

Let's Encrypt 인증서를 만든 경우 명령은 sudo cp /etc/letsencrypt/live/your_domain_name/cert.pem /etc/nginx/certificate.crt와 유사합니다. .

Rocket.Chat에 대한 완전히 새로운 구성을 만들 예정이므로 기본값을 삭제하여 좀 더 쉽게 만들 수 있습니다.

  1. sudo rm /etc/nginx/sites-enabled/default

나중에 어떤 이유로든 해당 파일을 다시 사용해야 하는 경우 /etc/nginx/sites-available/default에서 계속 사용할 수 있습니다.

nano 또는 선호하는 텍스트 편집기를 사용하여 새 /etc/nginx/sites-enabled/default를 만듭니다.

  1. sudo nano /etc/nginx/sites-enabled/default

먼저 upstream 블록을 추가합니다.

# Upstreams
upstream backend {
    server 127.0.0.1:3000;
}

그 아래에 server 블록을 생성해 보겠습니다. 첫 번째 부분은 Nginx에게 연결을 수신할 포트를 알려줍니다(이 경우 :443). 또한 호스트 이름이 무엇인지도 알려줍니다. example.com을 도메인 이름으로 바꾸는 것을 잊지 마십시오.

server {
    listen 443;
    server_name example.com;

그 아래에서 Nginx에 Rocket.Chat의 액세스 로그를 저장할 위치를 알려주고 /etc/nginx/certificate.key/etc/nginx에 배치한 SSL 인증서와 키를 가리킵니다. /certificate.crt 각각.

    error_log /var/log/nginx/rocketchat.access.log;

    ssl on;
    ssl_certificate /etc/nginx/certificate.crt;
    ssl_certificate_key /etc/nginx/certificate.key;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # don’t use SSLv3 ref: POODLE

이제 location 블록으로 구성을 완료합니다.

    location / {
        proxy_pass http://example.com:3000/;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $http_host;

        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forward-Proto http;
        proxy_set_header X-Nginx-Proxy true;

        proxy_redirect off;
    }
}

참조용 전체 파일은 다음과 같습니다.

server {
    listen 443;
    server_name example.com;
    error_log /var/log/nginx/rocketchat.access.log;

    ssl on;
    ssl_certificate /etc/nginx/certificate.crt;
    ssl_certificate_key /etc/nginx/certificate.key;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # don’t use SSLv3 ref: POODLE

    location / {
        proxy_pass http://example.com:3000/;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $http_host;

        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forward-Proto http;
        proxy_set_header X-Nginx-Proxy true;

        proxy_redirect off;
    }
}

파일을 저장하고 종료합니다. 마지막으로 Nginx를 다시 시작하여 작업을 완료합니다.

  1. sudo service nginx restart

Nginx가 실행 중인지 확인합니다.

  1. sudo service nginx status

다음 메시지가 표시되면 Nginx가 실행 중입니다.

 * nginx is running

오류 메시지가 표시되면 /var/log/nginx/rocketchat.access.log/var/log/nginx/access.log에서 로그를 확인하거나 /var/log/nginx/error.log의 오류 로그. nginx -t를 실행하여 대부분의 오류가 표시되는 Nginx 구성 파일을 확인할 수도 있습니다.

아직 Rocket.Chat 폴더에 있는지 확인하세요.

  1. cd ~/Rocket.Chat

그런 다음 다음 명령을 실행하여 Rocket.Chat 백업을 다시 시작하십시오.

  1. node main.js

이제 Rocket.Chat이 https://example.com에서 활성화됩니다. 선호하는 브라우저에서 해당 주소를 방문하여 이를 확인할 수 있습니다.

다음 섹션에서는 forever-service라는 노드 모듈을 사용하여 부팅 시 자동으로 실행되도록 Rocket.Chat을 구성합니다.

4단계 - Rocket.Chat을 서비스로 구성

forever-service는 Rocket.Chat과 같은 노드 앱에 대한 초기화 스크립트를 자동으로 생성합니다. 시작하려면 forever-service가 의존하는 forever 자체를 설치해야 합니다.

  1. sudo npm install -g forever

그런 다음 영구 서비스를 설치합니다.

  1. sudo npm install -g forever-service

forever-service를 사용하여 서비스를 만듭니다.

  1. sudo forever-service install -s main.js -e "ROOT_URL=https://example.com/ MONGO_URL=mongodb://localhost:27017/rocketchat PORT=3000" rocketchat

  • main.js가 뒤따르는 -s 플래그는 우리 스크립트의 이름이 app이 아닌 main.js임을 forever-service에 알려줍니다. .js, 기본값입니다.
  • -e 플래그 다음에 \ROOT_URL=https://example.com/ MONGO_URL=mongodb://localhost:27017/rocketchat PORT= 3000\ 환경 변수를 forever-service에 전달합니다.
  • 마지막으로 rocketchat은 forever-service에게 서비스 이름을 지정합니다.

forever-service 구문에 대한 자세한 내용을 보려면 forever-service --help를 실행하세요.

이제 Rocket.Chat을 시작할 수 있습니다. 이렇게 하면 forever-service에 의해 생성된 rocketchat 서비스가 초기화됩니다.

  1. sudo start rocketchat

Rocket.Chat은 이제 2단계에서 설정한 URL에서 활성화됩니다. 여기에서 HTTPS를 사용하고 있는지 확인하세요.

Rocket.Chat은 사용할 준비가 되어 있어야 합니다. 다음 섹션에서는 첫 번째 관리자를 Rocket.Chat에 추가하고 인터페이스를 둘러봅니다.

5단계 - Rocket.Chat 구성 및 사용

이전에 Rocket.Chat을 설정한 URL을 방문하십시오. 다음과 같은 내용이 표시되어야 합니다.

새 계정 등록을 클릭한 다음 첫 번째 관리자의 사용자 정보를 입력합니다.

제출을 클릭한 다음 새 사용자의 사용자 이름을 선택합니다.

이 사용자 이름 사용을 클릭하면 홈페이지로 이동합니다.

그게 다야! 오른쪽에 #일반 채널이 이미 생성되어 있는 것을 볼 수 있습니다. 클릭하시면 채팅방으로 이동합니다. 부담없이 조금 놀아보세요.

이제 인터페이스를 살펴보겠습니다. 먼저 채널 옆에 있는 작은 더하기 버튼을 클릭하여 새 채널을 만들어 보겠습니다.

원하는 대로 이름을 지정하세요.

이제 저장을 클릭하면 새 채널로 이동합니다.

관리 인터페이스에 액세스하려면 사용자 이름 옆에 있는 작은 화살표를 클릭하십시오. 메뉴를 풀다운합니다.

관리를 클릭합니다. 두 번째 메뉴가 나타납니다.

이 메뉴를 사용하여 Rocket.Chat 설치의 모든 측면을 구성하고 관리할 수 있습니다. 사용자 섹션에서 개별 사용자의 권한을 관리하고 새 사용자를 초대할 수도 있습니다. 통합 보기를 사용하여 설치에 더 많은 기능을 추가할 수도 있습니다.

결론

축하해요! 이제 귀하와 귀하의 팀을 위한 고유한 채팅 솔루션인 Ubuntu 14.04 서버에서 실행되는 Rocket.Chat이 있습니다. forever-service를 사용하여 부팅 시 자동으로 실행되도록 설정되었으며 Nginx 리버스 프록시를 사용하여 SSL을 완벽하게 갖추고 있습니다. 이제 더 많은 구성원을 추가하거나 더 많은 채널을 만들거나 관리 메뉴의 통합 섹션을 확인하고 싶을 수 있습니다. 재미있게 보내세요!