ÃֽŠ°Ô½Ã±Û(JAVA)
2018.02.19 / 01:01

äÆà ¾îÇÃÀ» ¸¸µé¾îº¸ÀÚ ·ÎÄÏê Rocket.chat

µðÆÌ
Ãßõ ¼ö 270

ȨÆäÀÌÁö: https://www.startwithup.com


Rocket.chat

äÆÃÀ» ±¸ÇöÇϱâ À§ÇØ ÃÖ±Ù ÁÖ¸ñ¹Þ´Â ¿ÀǼҽºÀÎ Rocket.chatÀ» È°¿ëÇÏ¿´´Ù. Rocket.ChatÀº À¥ äÆà Ç÷¿ÆûÀ¸·Î ÃÖ±Ù ÁÖ¸ñ¹Þ´Â ¿ÀǼҽºÀÌ´Ù. ¿©·¯ ¸µÅ©¸¦ ÂüÁ¶ÇØ Rocket.chatÀ» ¿ìºÐÅõ ¼­¹ö¿¡ ¿Ã¸®´Â ÀÏÀ» ÁøÇàÇÏ¿´´Ù. ´ëºÎºÐÀÇ ±ÛÀÇ Á¤º¸°¡ ºÒÃæºÐÇϰųª ¼³Ä¡°¡ Á¦´ë·Î ÁøÇàµÇÁö ¾Ê¾Æ ¿©·¯ ÀڷḦ Âü°íÇؼ­ Á÷Á¢ Å×½ºÆ®Çغ¸¾Ò´Ù.

Rocket.chat got many features!




¼­¹ö Áغñ

Security group inbound setting

¾Æ¸¶Á¸ EC2¸¦ ÀÌ¿ëÇØ ¿ìºÐÅõ ¼­¹ö¸¦ ¸¸µé¾ú´Ù. Security groupÀº º¸ÆíÀûÀÎ À¥ ¾îÇø®ÄÉÀ̼ǿ¡ Àû¿ëµÇ´Â ¹æ½ÄÀ» µû¶úÀ¸³ª, °ø½Ä ¸Þ´º¾ó¿¡µµ ÃßõÇÏ´Â ¹æ½ÄÀ̶ó À§ÀÇ ¼³Á¤ÀÌ default¶ó°í º¼ ¼ö ÀÖ´Ù


»çÀÌÆ® ¿¬°á

¿øÈ°ÇÑ Å×½ºÆ®¸¦ À§ÇØ µµ¸ÞÀÎÀ» ¿¬°áÇØ º»´Ù. µµ¸ÞÀÎÀ» ±¸ÀÔÇصµ µÇÁö¸¸ ¹«·á·Î ȹµæÇϱâ·Î Çß´Ù. ¹«·á µµ¸ÞÀÎÀº http://www.freenom.com/ ¿¡¼­ ¾òÀ» ¼ö ÀÖ´Ù. ±× ÈÄ My Domains - Manage DNS - Manage Freenom DNS·Î µé¾î°£´Ù. ÀνºÅϽº´Â Elastic IP¿¡ ¿¬°áÇÏ¿© Ÿ°Ù ºÎºÐ¿¡ ÀÔ·ÂÇØÁØ´Ù. CNAME ºÎºÐÀº ¹Ýµå½Ã ³Ö¾î¾ß ÇÑ´Ù. Rocket.chat °ø½Ä ¸Þ´º¾óÀ» µû¸£¸é DNS ÁÖ¼Ò ÇüÅ·Π³ÖÀ¸¶ó°í Çؼ­ Public DNS¸¦ ³Ö¾úÁö¸¸ IP¸¦ ³Ö¾îµµ µÉ °Í °°´Ù.



Let's Encrypt

Let's Encrypt¸¦ ÅëÇØ SSL certificate¸¦ ¹Þ´Â´Ù.

sudo apt-get install -y git;

sudo git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt;


netstat -na | grep ':80.*LISTEN';

ÇÁ·Î¼¼½º°¡ ³ªÅ¸³ª¸é killÇÑ´Ù. ³» °æ¿ì¿£ ¾Æ¹« ¸Þ¼¼Áöµµ ¶ßÁö ¾Ê¾Ò´Ù.


 ./letsencrypt-auto certonly --standalone --email ¿¬°áÇÒÀ̸ÞÀÏ -d µµ¸ÞÀÎÁÖ¼Ò -d ¼­ºêµµ¸ÞÀÎÁÖ¼Ò;


¿¹> µµ¸ÞÀÎÁÖ¼Ò: example.com, ¼­ºêµµ¸ÞÀÎÁÖ¼Ò: www.example.com

¼­ºêµµ¸ÞÀÎÀº ¿É¼ÇÀ¸·Î ¾øÀ¸¸é Áö¿öµµ µÈ´Ù.


cd etc/letsencrypt/live/µµ¸ÞÀÎÁÖ¼Ò;

À̵¿Çϸé 4°³ÀÇ ÆÄÀÏ(.pem)ÀÌ »ý¼ºµÈ °ÍÀ» È®ÀÎÇÒ ¼ö ÀÖ´Ù.


nginx¼³Ä¡ ¹× ¼³Á¤

sudo apt-get install -y nginx;


config ÆÄÀÏÀÇ ¹é¾÷À» »ý¼ºÇÑ´Ù.

cd /etc/nginx/sites-available;

sudo mv default default.reference;


ÆíÁý±â¸¦ »ç¿ëÇÏ¿© ¾Æ·¡ÀÇ ³»¿ëÀ» ÀÔ·ÂÇÑ´Ù. µµ¸ÞÀÎ ÁÖ¼Ò¸¦ ¼öÁ¤ÇÑ´Ù.

sudo nano /etc/nginx/sites-available/default;


server {  

listen 443 ssl;  server_name µµ¸ÞÀÎÁÖ¼Ò;

ssl_certificate /etc/letsencrypt/live/µµ¸ÞÀÎÁÖ¼Ò/fullchain.pem;  

ssl_certificate_key /etc/letsencrypt/live/µµ¸ÞÀÎÁÖ¼Ò/privkey.pem;  

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;  ssl_prefer_server_ciphers on;  ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';  root /usr/share/nginx/html;

index index.html index.htm;  # Make site accessible from http://localhost/  server_name localhost;  location / {    proxy_pass http://µµ¸ÞÀÎÁÖ¼Ò: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 80;  server_name µµ¸ÞÀÎÁÖ¼Ò;  return 301 https://$host$request_uri;}



sudo service nginx stop;

sudo nginx -t;

sudo service nginx start;



Docker & Docker Compose

docker¸¦ ¼³Ä¡ÇÑ´Ù.

sudo wget -qO- https://get.docker.com/ | sh;

sudo usermod -aG docker ubuntu;


sudo -i;

curl -L https://github.com/docker/compose/releases/download/1.4.2/docker-compose-Linux-x86_64 > /usr/local/bin/docker-compose;

chmod +x /usr/local/bin/docker-compose;

exit;

·Î±×¾Æ¿ôÈÄ ´Ù½Ã Á¢¼ÓÇÑ´Ù.


Docker Container ¼Â¾÷

sudo mkdir -p /var/www/rocket.chat/data/runtime/db;

sudo mkdir -p /var/www/rocket.chat/data/dump;


sudo nano /var/www/rocket.chat/docker-compose.yml;

ÆíÁý±â¸¦ ÅëÇØ ´ÙÀ½ÀÇ ³»¿ëÀ» ÀÔ·ÂÇØÁØ´Ù.


db: image: mongo volumes:   - ./data/runtime/db:/data/db   - ./data/dump:/dump command: mongod --smallfilesrocketchat: image: rocketchat/rocket.chat:latest environment:   - MONGO_URL=mongodb://db:27017/rocketchat   - ROOT_URL=https://<ABC.DOMAIN.COM> links:   - db:db ports:   - 3000:3000



ÀÚµ¿ ½ÃÀÛ ¼³Á¤ & ¾÷µ¥ÀÌÆ® ÈÄ ÀçºÎÆà ¼³Á¤

sudo nano /etc/init/rocketchat_mongo.conf;



description "MongoDB service manager for rocketchat"# Start MongoDB after docker is runningstart on (started docker)stop on runlevel [!2345]# Automatically Respawn with finite limitsrespawnrespawn limit 99 5# Path to our appchdir /var/www/rocket.chatscript    # Showtime    exec /usr/local/bin/docker-compose up dbend script



sudo nano /etc/init/rocketchat_app.conf;


description "Rocketchat service manager"# Start Rocketchat only after mongo job is runningstart on (started rocketchat_mongo)stop on runlevel [!2345]# Automatically Respawn with finite limitsrespawnrespawn limit 99 5# Path to our appchdir /var/www/rocket.chatscript    # Bring up rocketchat app    exec /usr/local/bin/docker-compose up rocketchatend script



Àç½ÃÀÛ & Å×½ºÆ®

sudo reboot;

sudo docker ps -a;

À§¿Í °°ÀÌ À̹ÌÁö ÆÄÀÏ µÎ °³¸¦ ãÀ» ¼ö ÀÖ´Ù.




¿Ï¼º


µµ¸ÞÀÎ ÁÖ¼Ò¸¦ µé¾î°¡¸é ¹Ý°¡¿î ·Î±×ÀΠâÀ» ¸¸³¯ ¼ö ÀÖ´Ù.



Âü°í¸µÅ©:

https://github.com/RocketChat/Deploy.to.Cloud/tree/master/AWS 

https://www.digitalocean.com/community/tutorials/how-to-install-configure-and-deploy-rocket-chat-on-ubuntu-14-04