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를 시작하고 실행하는 것부터 시작하겠습니다. 먼저 패키지에 액세스할 수 있도록 키 서버를 추가해야 합니다.
- sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
그런 다음 사용할 저장소를 설정해야 합니다.
- 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
이제 패키지 목록을 업데이트하십시오.
- sudo apt-get update
이제 완료되었으므로 npm
, mongodb-org
, curl
및 graphicsmagick
를 설치할 수 있습니다. Rocket.Chat의 모든 종속성:
- sudo apt-get install npm mongodb-org curl graphicsmagick
노드 버전을 변경하려면 NPM을 사용하여 패키지를 설치해야 합니다.
- sudo npm install -g n
해당 패키지를 사용하여 노드 버전을 0.10.40
으로 변경합니다.
- sudo n 0.10.40
다음으로 Rocket.Chat 자체를 설치하고 약간의 구성을 수행합니다.
2단계 - Rocket.Chat 설치
시작하려면 curl
을 사용하여 Rocket.Chat의 안정적인 최신 버전을 다운로드하세요.
- curl -L https://rocket.chat/releases/latest/download -o rocket.chat.tgz
tar
명령을 사용하여 방금 다운로드한 아카이브를 확장합니다.
- tar zxvf rocket.chat.tgz
그러면 전체 아카이브가 bundle
이라는 디렉토리로 확장됩니다. bundle
디렉토리의 내용을 기억하기 쉬운 것으로 옮기겠습니다.
- mv bundle Rocket.Chat
NPM을 사용하여 Rocket.Chat을 설치할 디렉토리로 변경합니다.
- cd Rocket.Chat/programs/server
Rocket.Chat을 설치합니다.
- npm install
상위 Rocket.Chat
디렉토리로 다시 이동합니다.
- cd ../..
Rocket.Chat이 URL, 포트 등과 같은 항목을 추적할 수 있도록 몇 가지 환경 변수를 설정해야 합니다.
먼저 ROOT_URL
변수를 도메인 이름으로 설정합니다. URL 형식이어야 합니다.
- export ROOT_URL=https://example.com/
MONGO_URL
변수 아래에 MongoDB의 URL을 설정합니다.
- export MONGO_URL=mongodb://localhost:27017/rocketchat
PORT
변수를 3000
으로 설정합니다.
- export PORT=3000
이제 다음 명령을 사용하여 Rocket.Chat을 실행할 수 있습니다.
- node main.js
오류가 없으면 작동합니다! 하지만 지금은 CTRL+C
를 사용하여 Rocket.Chat을 중지하세요. 이제 Rocket.Chat이 설치되었으므로 리버스 프록시를 사용하여 모든 트래픽을 프록시하도록 Nginx를 설정하여 Rocket.Chat에 더 쉽게 액세스하고 SSL 인증서로 모든 통신을 암호화해야 합니다.
3단계 - Nginx로 역방향 프록시 설정
시작하려면 Nginx를 설치합니다.
- sudo apt-get install -y nginx
인증서의 개인 키를 /etc/nginx/certificate.key
로 이동합니다.
- 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
를 사용합니다. .
권한이 없는 도둑이 액세스할 수 없도록 키의 권한을 수정합니다.
- sudo chmod 400 /etc/nginx/certificate.key
인증서 자체를 /etc/nginx/certificate.crt
에 복사합니다.
- 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에 대한 완전히 새로운 구성을 만들 예정이므로 기본값을 삭제하여 좀 더 쉽게 만들 수 있습니다.
- sudo rm /etc/nginx/sites-enabled/default
나중에 어떤 이유로든 해당 파일을 다시 사용해야 하는 경우 /etc/nginx/sites-available/default
에서 계속 사용할 수 있습니다.
nano
또는 선호하는 텍스트 편집기를 사용하여 새 /etc/nginx/sites-enabled/default
를 만듭니다.
- 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를 다시 시작하여 작업을 완료합니다.
- sudo service nginx restart
Nginx가 실행 중인지 확인합니다.
- 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
폴더에 있는지 확인하세요.
- cd ~/Rocket.Chat
그런 다음 다음 명령을 실행하여 Rocket.Chat 백업을 다시 시작하십시오.
- node main.js
이제 Rocket.Chat이 https://example.com
에서 활성화됩니다. 선호하는 브라우저에서 해당 주소를 방문하여 이를 확인할 수 있습니다.
다음 섹션에서는 forever-service
라는 노드 모듈을 사용하여 부팅 시 자동으로 실행되도록 Rocket.Chat을 구성합니다.
4단계 - Rocket.Chat을 서비스로 구성
forever-service
는 Rocket.Chat과 같은 노드 앱에 대한 초기화 스크립트를 자동으로 생성합니다. 시작하려면 forever-service
가 의존하는 forever
자체를 설치해야 합니다.
- sudo npm install -g forever
그런 다음 영구 서비스
를 설치합니다.
- sudo npm install -g forever-service
forever-service
를 사용하여 서비스를 만듭니다.
- 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
서비스가 초기화됩니다.
- 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을 완벽하게 갖추고 있습니다. 이제 더 많은 구성원을 추가하거나 더 많은 채널을 만들거나 관리 메뉴의 통합 섹션을 확인하고 싶을 수 있습니다. 재미있게 보내세요!