äÆà ¾îÇÃÀ» ¸¸µé¾îº¸ÀÚ ·ÎÄÏê Rocket.chat
ȨÆäÀÌÁö: https://www.startwithup.com
Rocket.chat
äÆÃÀ» ±¸ÇöÇϱâ À§ÇØ ÃÖ±Ù ÁÖ¸ñ¹Þ´Â ¿ÀǼҽºÀÎ Rocket.chatÀ» È°¿ëÇÏ¿´´Ù. Rocket.ChatÀº À¥ äÆà Ç÷¿ÆûÀ¸·Î ÃÖ±Ù ÁÖ¸ñ¹Þ´Â ¿ÀǼҽºÀÌ´Ù. ¿©·¯ ¸µÅ©¸¦ ÂüÁ¶ÇØ Rocket.chatÀ» ¿ìºÐÅõ ¼¹ö¿¡ ¿Ã¸®´Â ÀÏÀ» ÁøÇàÇÏ¿´´Ù. ´ëºÎºÐÀÇ ±ÛÀÇ Á¤º¸°¡ ºÒÃæºÐÇϰųª ¼³Ä¡°¡ Á¦´ë·Î ÁøÇàµÇÁö ¾Ê¾Æ ¿©·¯ ÀڷḦ Âü°íÇؼ Á÷Á¢ Å×½ºÆ®Çغ¸¾Ò´Ù.
¼¹ö Áغñ
¾Æ¸¶Á¸ 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