article-parser
Version:
Extract clean article data from given URL.
6 lines • 58.7 kB
Plain Text
<!DOCTYPE html><html xmlns:cc="http://creativecommons.org/ns#"><head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# medium-com: http://ogp.me/ns/fb/medium-com#"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>Setup Rocket Chat within 10 minutes — Medium</title><link rel="canonical" href="https://medium.com/@ndaidong/setup-rocket-chat-within-10-minutes-2b00f3366c6"><meta name="title" content="Setup Rocket Chat within 10 minutes"><meta name="referrer" content="always"><meta name="description" content="Do you want to get your own Slack app for your company or your team. Rocket Chat may be what you need."><meta property="og:site_name" content="Medium"><meta property="og:title" content="Setup Rocket Chat within 10 minutes"><meta property="og:url" content="https://medium.com/@ndaidong/setup-rocket-chat-within-10-minutes-2b00f3366c6"><meta property="og:image" content="https://cdn-images-1.medium.com/max/800/1*9IX5MWrnaCBzzeS3h5N2oA.png"><meta property="fb:app_id" content="542599432471018"><meta property="og:description" content="Do you want to get your own Slack app for your company or your team. Rocket Chat may be what you need."><meta name="twitter:site" content="@Medium"><meta name="twitter:image:src" content="https://cdn-images-1.medium.com/max/800/1*9IX5MWrnaCBzzeS3h5N2oA.png"><link rel="publisher" href="https://plus.google.com/103654360130207659246"><link rel="author" href="https://medium.com/@ndaidong"><meta name="author" content="Dong Nguyen"><meta property="og:type" content="article"><meta name="twitter:card" content="summary_large_image"><meta property="article:publisher" content="https://www.facebook.com/medium"><meta property="article:author" content="https://medium.com/@ndaidong"><meta property="fb:smart_publish:robots" content="noauto"><meta property="article:published_time" content="2015-12-29T12:33:49.536Z"><meta name="twitter:creator" content="@ndaidong"><meta name="twitter:label1" value="Reading time"><meta name="twitter:data1" value="2 mins"><meta name="twitter:app:name:iphone" content="Medium"><meta name="twitter:app:id:iphone" content="828256236"><meta name="twitter:app:url:iphone" content="medium://p/2b00f3366c6"><meta property="al:ios:app_name" content="Medium"><meta property="al:ios:app_store_id" content="828256236"><meta property="al:android:package" content="com.medium.reader"><meta property="al:android:app_name" content="Medium"><meta property="al:ios:url" content="medium://p/2b00f3366c6"><meta property="al:android:url" content="medium://p/2b00f3366c6"><meta property="al:web:url" content="https://medium.com/@ndaidong/setup-rocket-chat-within-10-minutes-2b00f3366c6"><link rel="alternate" href="android-app://com.medium.reader/https/medium.com/p/2b00f3366c6" /><meta name="theme-color" content="#000000"><link rel="stylesheet" href="https://cdn-static-1.medium.com/_/fp/css/main-base.IFJUnFUw4SRQF1FfuINu0g.css"><script>if (window.top !== window.self) window.top.location = window.self.location.href;var OB_startTime = new Date().getTime(); var OB_loadErrors = []; function _onerror(e) { OB_loadErrors.push(e) }; if (document.addEventListener) document.addEventListener("error", _onerror, true); else if (document.attachEvent) document.attachEvent("onerror", _onerror); function _asyncScript(u) {var d = document, f = d.getElementsByTagName("script")[0], s = d.createElement("script"); s.type = "text/javascript"; s.async = true; s.src = u; f.parentNode.insertBefore(s, f);}function _asyncStyles(u) {var d = document, f = d.getElementsByTagName("script")[0], s = d.createElement("link"); s.rel = "stylesheet"; s.href = u; f.parentNode.insertBefore(s, f); return s}var _gaq = _gaq || []; _gaq.push(["_setAccount", "UA-24232453-2"]); _gaq.push(["_setDomainName", window.location.hostname]); _gaq.push(["_setAllowLinker", true]); _gaq.push(["_trackPageview"]); _asyncScript(("https:" == document.location.protocol ? "https://ssl" : "http://www") + ".google-analytics.com/ga.js");(new Image()).src = "/_/stat?event=pixel.load&origin=" + encodeURIComponent(location.origin);</script><script>(function () {var height = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight; var width = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; document.write("<style>section.section-image--fullBleed.is-backgrounded {padding-top: " + Math.round(1.1 * height) + "px;}section.section-image--fullScreen.is-backgrounded, section.section-image--coverFade.is-backgrounded {min-height: " + height + "px; padding-top: " + Math.round(0.5 * height) + "px;}.u-sizeViewHeight100 {height: " + height + "px !important;}.u-sizeViewHeightMin100 {min-height: " + height + "px !important;}section.section-image--coverFade, .section-image--fullScreen > .section-background, .section-image--coverFade > .section-background, .section-image--fullBleed .section-backgroundImage, .section-image--fullScreen .section-backgroundImage, .section-image--coverFade .section-backgroundImage {height: " + height + "px;}.section-image--content > .section-background, .section-image--content .section-backgroundImage, .section-aspectRatioViewportPlaceholder, .section-aspectRatioViewportCropPlaceholder {max-height: " + height + "px;}.section-image--fullBleed > .section-background {height: " + Math.round(1.1 * height) + "px;}.section-aspectRatioViewportBottomSpacer, .section-aspectRatioViewportBottomPlaceholder {max-height: " + Math.round(0.5 * height) + "px;}.zoomable:before {top: " + (-1 * height) + "px; left: " + (-1 * width) + "px; padding: " + height + "px " + width + "px;}</style>");})()</script><!--[if lt IE 9]><script charset="UTF-8" src="https://cdn-static-1.medium.com/_/fp/js/shiv.RI2ePTZ5gFmMgLzG5bEVAA.js"></script><![endif]--><link rel="shortcut icon" href="https://cdn-static-1.medium.com/_/fp/icons/favicon-medium.TAS6uQ-Y7kcKgi0xjcYHXw.ico" class="js-favicon is-default"><link rel="apple-touch-icon" sizes="152x152" href="/apple-touch-icon-ipad-retina.png"><link rel="apple-touch-icon" sizes="120x120" href="/apple-touch-icon-iphone-retina.png"><link rel="apple-touch-icon" sizes="76x76" href="/apple-touch-ipad.png"><link rel="apple-touch-icon" href="/apple-touch-icon.png"><link rel="mask-icon" href="/favicon.svg" color="#171717"></head><body itemscope itemtype="http://schema.org/Article" class=" postShowScreen is-noJs"><script>document.body.className = document.body.className.replace(/(^|\s)is-noJs(\s|$)/, "$1is-js$2")</script><div class="site-main" id="container"><div class="butterBar butterBar--error"></div><div class="surface"><div id="prerendered" class="screenContent"><canvas class="canvas-renderer"></canvas><nav class="metabar u-clearfix js-metabar metabar--top metabar--postArticle"><div class="metabar-inner"><div class="metabar-block metabar-block--left u-floatLeft"><a href="https://medium.com/" class="siteNav-logo" data-log-event="home"><svg viewBox="0 0 45 45" width="45" height="45" class="svgIcon svgIcon--logoNew svgIcon-size--45px"><use class="svgIcon-use svgIcon-use--part0" xlink:href="#svg-logoNew-45px-p0"></use><use class="svgIcon-use svgIcon-use--part1" xlink:href="#svg-logoNew-45px-p1"></use><use class="svgIcon-use svgIcon-use--part2" xlink:href="#svg-logoNew-45px-p2"></use><use class="svgIcon-use svgIcon-use--part3" xlink:href="#svg-logoNew-45px-p3"></use></svg><span class="u-textScreenReader">Homepage</span></a></div><div class="metabar-block metabar-block--right u-floatRight"><div class="buttonSet"></div><div class="inputGroup u-sm-hide metabar-predictiveSearch"><button class="button button--chromeless button--inline button--withIcon is-inSiteNavBar button--withSvgIcon" title="Click to start typing a search term" aria-label="Click to start typing a search term" data-action="focus-search-input"><svg viewBox="0 0 25 25" width="25" height="25" class="svgIcon svgIcon--search svgIcon-size--25px"><use class="svgIcon-use svgIcon-use--part0" xlink:href="#svg-search-25px-p0"></use></svg></button><input class="js-predictiveSearchInput textInput textInput--rounded textInput--transparent textInput--darkText" type="search" placeholder="Search Medium" /></div><div class="buttonSet"><a class="button button--circle u-showOnTablet is-inSiteNavBar button--withChrome button--withIcon" href="https://medium.com/search" title="Search" aria-label="Search"><span class="button-defaultState"><svg viewBox="0 0 25 25" width="25" height="25" class="svgIcon svgIcon--search svgIcon-size--25px"><use class="svgIcon-use svgIcon-use--part0" xlink:href="#svg-search-25px-p0"></use></svg></span></a><a class="button button--primary button--withChrome u-accentColor--borderNormal u-accentColor--textNormal is-inSiteNavBar" href="https://medium.com/m/signin?redirect=https%3A%2F%2Fmedium.com%3A443%2F%40ndaidong%2Fsetup-rocket-chat-within-10-minutes-2b00f3366c6"data-action="sign-in-prompt"data-redirect="https://medium.com:443/@ndaidong/setup-rocket-chat-within-10-minutes-2b00f3366c6" data-action-source="nav_signup">Sign in / Sign up</a></div></div></div></nav><div class="postActionsBar js-postActionsBar"><div class="postActionsBar-container container u-size740"><div class="postActionsBar-content row js-postActionsBarContent"><div class="postActions col u-xs-size12of12"><div class="u-floatLeft buttonSet buttonSet--withLabels"><div class="buttonSet-inner"><div class="js-actionRecommend" data-post-id="2b00f3366c6" data-size="29px"><button class="button button--primary button--large button--chromeless button--withIcon u-accentColor-iconLight button--withSvgIcon" title="Recommend to share this article with your followers and let the author know you liked it" aria-label="Recommend to share this article with your followers and let the author know you liked it"data-action="sign-in-prompt" data-sign-in-action="upvote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/2b00f3366c6"><span class="button-defaultState"><svg viewBox="0 0 29 29" width="29" height="29" class="svgIcon svgIcon--heart svgIcon-size--29px"><use class="svgIcon-use svgIcon-use--part0" xlink:href="#svg-heart-29px-p0"></use></svg></span><span class="button-activeState"><svg viewBox="0 0 29 29" width="29" height="29" class="svgIcon svgIcon--heartFilled svgIcon-size--29px"><use class="svgIcon-use svgIcon-use--part0" xlink:href="#svg-heartFilled-29px-p0"></use></svg></span></button><button class="button button--chromeless" data-action="show-recommends" data-action-value="2b00f3366c6">10</button></div></div><div class="buttonSet-inner"><button class="button button--large button--dark button--chromeless button--withIcon button--withSvgIcon" data-action="scroll-to-responses"><svg viewBox="0 0 29 29" width="29" height="29" class="svgIcon svgIcon--response svgIcon-size--29px"><use class="svgIcon-use svgIcon-use--part0" xlink:href="#svg-response-29px-p0"></use></svg></button></div></div><div class="u-floatRight buttonSet"><div class="buttonSet-inner"><button class="button button--large button--dark button--chromeless button--withIcon button--withSvgIcon" data-action="share-on-twitter"value="2b00f3366c6"><svg viewBox="0 0 29 29" width="29" height="29" class="svgIcon svgIcon--twitter svgIcon-size--29px"><use class="svgIcon-use svgIcon-use--part0" xlink:href="#svg-twitter-29px-p0"></use></svg></button></div><div class="buttonSet-inner"><button class="button button--large button--dark button--chromeless button--withIcon button--withSvgIcon" data-action="share-on-facebook"value="2b00f3366c6"><svg viewBox="0 0 29 29" width="29" height="29" class="svgIcon svgIcon--facebook svgIcon-size--29px"><use class="svgIcon-use svgIcon-use--part0" xlink:href="#svg-facebook-29px-p0"></use></svg></button></div><div class="buttonSet-separator"></div><div class="buttonSet-inner"><a class="link avatar avatar--inline" href="https://medium.com/@ndaidong" data-action="show-user-card" data-action-type="hover" data-user-id="528ebe75b3c2" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/24/24/0*zGPX-QjBAmtJHBkB.jpeg" class="avatar-image avatar-image--micro" alt="Go to the profile of Dong Nguyen"><span class="avatar-text">Dong Nguyen</span></a><span class="u-xs-hide"><span class="middotDivider"></span><span class="followState js-followState" data-user-id="528ebe75b3c2"><button class="button button--chromeless u-noUserSelect button--withHover button--unblock js-unblockButton" data-action="sign-in-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-action-source="post_actions_bar"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--chromeless u-noUserSelect button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author"data-action="sign-in-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/528ebe75b3c2/2b00f3366c6" data-action-source="post_actions_bar_follow"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></span></div></div></div></div></div></div><article class="u-sizeViewHeightMin100 postArticle postArticle--full" lang="en"><header class="container is-underMetabar u-size740"><div class="row u-showOnMobile"><div class="col u-xs-size12of12 u-xs-bottom10"><div class="postMetaHeader-socialProof"></div></div></div><div class="postMetaHeader row u-xs-top10 u-xs-bottom10"><div class="col u-sm-size5of12"><div class="u-floatLeft"><div class="postMetaInline-avatar"><a class="link avatar" href="https://medium.com/@ndaidong" data-action="show-user-card" data-action-type="hover" data-user-id="528ebe75b3c2" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/36/36/0*zGPX-QjBAmtJHBkB.jpeg" class="avatar-image u-xs-size32x32 u-sm-size36x36" alt="Go to the profile of Dong Nguyen"></a></div><div class="postMetaInline-feedSummary"><a class="link link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken" href="https://medium.com/@ndaidong" data-action="show-user-card" data-action-type="hover" data-user-id="528ebe75b3c2" dir="auto">Dong Nguyen</a><span class="postMetaInline postMetaInline--supplemental">Dec 29, 2015<span class="middotDivider"></span><span class="readingTime">3 min read</span></span></div></div></div><div class="col u-sm-size7of12 u-xs-hide"><div class="u-floatRight u-textAlignRight"><div class="postMetaHeader-socialProof"></div></div></div></div></header><main role="main" class="postArticle-content js-postField js-notesSource"><section name="62a1" class=" section--body section--first section--last"><div class="section-divider layoutSingleColumn"><hr class="section-divider"></div><div class="section-content"><div class="section-inner layoutSingleColumn"><h3 name="70fe" id="70fe" class="graf--h3 graf--first">Setup Rocket Chat within 10 minutes</h3><figure name="a90e" id="a90e" class="graf--figure graf-after--h3"><div class="aspectRatioPlaceholder is-locked" style="max-width: 700px; max-height: 323px;"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 46.2%;"></div><img class="graf-image" data-image-id="1*9IX5MWrnaCBzzeS3h5N2oA.png" data-width="1354" data-height="625" data-action="zoom" data-action-value="1*9IX5MWrnaCBzzeS3h5N2oA.png" src="https://cdn-images-1.medium.com/max/800/1*9IX5MWrnaCBzzeS3h5N2oA.png"></div><figcaption class="imageCaption">Rocket Chat</figcaption></figure><p name="1c46" id="1c46" class="graf--p graf-after--figure">Are you using Slack? Do you want to get your own Slack for your team or your company? Rocket Chat may be what you need.</p><p name="7496" id="7496" class="graf--p graf-after--p">I’ve just heard about this package today. It’s an online chat tool based on <a href="https://www.meteor.com/" data-href="https://www.meteor.com/" class="markup--anchor markup--p-anchor" rel="nofollow">Meteor</a>, open source, full features, multi devices, and quite easy to setup.</p><p name="b348" id="b348" class="graf--p graf-after--p">In order to install <a href="https://rocket.chat/" data-href="https://rocket.chat/" class="markup--anchor markup--p-anchor" rel="nofollow">Rocket Chat</a>, you can use Ubuntu server. Your server must have nginx, node.js and MongoDB.</p><p name="97ee" id="97ee" class="graf--p graf-after--p">If everything is already, we install <a href="https://github.com/tmux/tmux" data-href="https://github.com/tmux/tmux" class="markup--anchor markup--p-anchor" rel="nofollow">tmux</a> and <a href="https://www.meteor.com/" data-href="https://www.meteor.com/" class="markup--anchor markup--p-anchor" rel="nofollow">meteor</a> first:</p><pre name="6421" id="6421" class="graf--pre graf-after--p">sudo apt-get install tmux<br>sudo npm install -g meteor</pre><p name="0349" id="0349" class="graf--p graf-after--pre"><strong class="markup--strong markup--p-strong">tmux</strong> would be used for keeing Meteor app alive even when you close terminal.</p><p name="2f1a" id="2f1a" class="graf--p graf-after--p">Now, clone Rocket Chat repository into <em class="markup--em markup--p-em">rocket-chat</em> directory:</p><pre name="ee46" id="ee46" class="graf--pre graf-after--p">git clone <a href="https://github.com/RocketChat/Rocket.Chat.git" data-href="https://github.com/RocketChat/Rocket.Chat.git" class="markup--anchor markup--pre-anchor" rel="nofollow">https://github.com/RocketChat/Rocket.Chat.git</a> rocket-chat<br>cd rocket-chat<br>meteor</pre><p name="22cc" id="22cc" class="graf--p graf-after--pre">The last command would download the needed npm and Meteor packages then start server. Wait until the process done, press “Ctrl+C” to stop it. We still need to configure host and database connection.</p><p name="5a03" id="5a03" class="graf--p graf-after--p">Here I try to set public domain for Rocket Chat application at <a href="http://g8.techpush.net/" data-href="http://g8.techpush.net/" class="markup--anchor markup--p-anchor" rel="nofollow">http://g8.techpush.net/</a> and use local MongoDB:</p><pre name="7202" id="7202" class="graf--pre graf-after--p">export ROOT_URL=<a href="http://g8.techpush.net/" data-href="http://g8.techpush.net/" class="markup--anchor markup--pre-anchor" rel="nofollow">http://g8.techpush.net/</a><br>export MONGO_URL=mongodb://127.0.0.1:27017/rocketchat</pre><p name="7231" id="7231" class="graf--p graf-after--pre">Now, open <strong class="markup--strong markup--p-strong">tmux</strong> session and run “meteor”:</p><pre name="895b" id="895b" class="graf--pre graf-after--p">tmux<br>meteor</pre><figure name="380c" id="380c" class="graf--figure graf-after--pre"><div class="aspectRatioPlaceholder is-locked" style="max-width: 653px; max-height: 159px;"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 24.3%;"></div><img class="graf-image" data-image-id="1*EsuUHHvHxACbUN65hXfDbQ.png" data-width="653" data-height="159" src="https://cdn-images-1.medium.com/max/800/1*EsuUHHvHxACbUN65hXfDbQ.png"></div><figcaption class="imageCaption">Start running Meteor app within tmux session</figcaption></figure><p name="5d02" id="5d02" class="graf--p graf-after--figure">If nothing wrong, you have got it runs at the port 3000 — as default. Press “Ctrl+B” and then “D” to leave <strong class="markup--strong markup--p-strong">tmux</strong> session.</p><p name="67bf" id="67bf" class="graf--p graf-after--p">To access app from the internet, you can use the following <strong class="markup--strong markup--p-strong">nginx</strong> config:</p><pre name="53c7" id="53c7" class="graf--pre graf-after--p">server {<br> listen 80;<br> server_name g8.techpush.net;<br> charset utf-8;</pre><pre name="e2a2" id="e2a2" class="graf--pre graf-after--pre"> location / {<br> proxy_read_timeout 300;<br> proxy_pass <a href="http://127.0.0.1:3000" data-href="http://127.0.0.1:3000" class="markup--anchor markup--pre-anchor" rel="nofollow">http://127.0.0.1:3000</a>;<br> proxy_http_version 1.1;<br> proxy_set_header Upgrade $http_upgrade;<br> proxy_set_header Connection ‘upgrade’;<br> proxy_set_header Host $host;<br> proxy_cache_bypass $http_upgrade;<br> }<br>}</pre><p name="6269" id="6269" class="graf--p graf-after--pre">Save config file and restart <strong class="markup--strong markup--p-strong">nginx</strong>:</p><pre name="7976" id="7976" class="graf--pre graf-after--p">sudo service nginx restart</pre><p name="998d" id="998d" class="graf--p graf-after--pre">That’s it. You can start using Rocket Chat now:</p><figure name="00bd" id="00bd" class="graf--figure graf-after--p"><div class="aspectRatioPlaceholder is-locked" style="max-width: 700px; max-height: 323px;"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 46.1%;"></div><img class="graf-image" data-image-id="1*gqISGcDMXDqIxnQirzFGeg.png" data-width="1359" data-height="627" data-action="zoom" data-action-value="1*gqISGcDMXDqIxnQirzFGeg.png" src="https://cdn-images-1.medium.com/max/800/1*gqISGcDMXDqIxnQirzFGeg.png"></div><figcaption class="imageCaption">Rocket Chat — default interface</figcaption></figure><figure name="349d" id="349d" class="graf--figure graf-after--figure"><div class="aspectRatioPlaceholder is-locked" style="max-width: 700px; max-height: 429px;"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 61.199999999999996%;"></div><img class="graf-image" data-image-id="1*WxHM17mrtnIu8dxYYPx9gg.png" data-width="1019" data-height="624" data-action="zoom" data-action-value="1*WxHM17mrtnIu8dxYYPx9gg.png" src="https://cdn-images-1.medium.com/max/800/1*WxHM17mrtnIu8dxYYPx9gg.png"></div><figcaption class="imageCaption">Rocket Chat — Administration</figcaption></figure><p name="44af" id="44af" class="graf--p graf-after--figure">Rocket Chat can do more than that. Please take a look on <a href="https://github.com/RocketChat/Rocket.Chat#features" data-href="https://github.com/RocketChat/Rocket.Chat#features" class="markup--anchor markup--p-anchor" rel="nofollow">its feature list</a> and <a href="https://demo.rocket.chat/" data-href="https://demo.rocket.chat/" class="markup--anchor markup--p-anchor" rel="nofollow">give it a try</a>.</p><p name="1a10" id="1a10" class="graf--p graf-after--p"><strong class="markup--strong markup--p-strong">Note</strong>: If your server did not have <strong class="markup--strong markup--p-strong">nginx</strong>, <strong class="markup--strong markup--p-strong">node.js</strong> or <strong class="markup--strong markup--p-strong">MongoDB</strong> yet, it may take a little time more to install them:</p><pre name="a64e" id="a64e" class="graf--pre graf-after--p"># install nginx<br>sudo add-apt-repository ppa:nginx/stable<br>sudo apt-get update<br>sudo apt-get install nginx</pre><pre name="b39b" id="b39b" class="graf--pre graf-after--pre"># install node.js v5.3.0<br>wget <a href="https://nodejs.org/dist/v5.3.0/node-v5.3.0.tar.gz" data-href="https://nodejs.org/dist/v5.3.0/node-v5.3.0.tar.gz" class="markup--anchor markup--pre-anchor" rel="nofollow">https://nodejs.org/dist/v5.3.0/node-v5.3.0.tar.gz</a><br>tar -zxvf <a href="http://node-v5.3.0.tar.gz/" data-href="http://node-v5.3.0.tar.gz/" class="markup--anchor markup--pre-anchor" rel="nofollow">node-v5.3.0.tar.gz</a><br>cd node-v5.3.0<br>./configure<br>make<br>sudo make install</pre><pre name="3e41" id="3e41" class="graf--pre graf-after--pre"># install MongoDB v3.2.0<br>sudo apt-key adv --keyserver <a href="http://hkp//keyserver.ubuntu.com:80" data-href="http://hkp//keyserver.ubuntu.com:80" class="markup--anchor markup--pre-anchor" rel="nofollow">hkp://keyserver.ubuntu.com:80</a> --recv EA312927<br>echo "deb <a href="http://repo.mongodb.org/apt/ubuntu" data-href="http://repo.mongodb.org/apt/ubuntu" class="markup--anchor markup--pre-anchor" rel="nofollow">http://repo.mongodb.org/apt/ubuntu</a> trusty/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list</pre><pre name="d7cd" id="d7cd" class="graf--pre graf-after--pre graf--last">sudo apt-get update<br>sudo apt-get install -y mongodb-org=3.2.0 mongodb-org-server=3.2.0 mongodb-org-shell=3.2.0 mongodb-org-mongos=3.2.0 mongodb-org-tools=3.2.0</pre></div></div></section></main><footer class="postArticle-footer"><div class="postActionsFooter container u-size740"><div class="row"><div class="col u-xs-size12of12"></div></div><div class="row"><div class="col u-xs-size12of12 js-postTags"><div class="postTags"><div class="tags tags--postTags tags--borderless"><a class="link" href="https://medium.com/tag/meteor?source=post" data-action-source="post">Meteor</a><a class="link" href="https://medium.com/tag/rocket-chat?source=post" data-action-source="post">Rocket Chat</a><a class="link" href="https://medium.com/tag/nodejs?source=post" data-action-source="post">Nodejs</a></div></div></div></div><div class="row js-postActionsFooter"><div class="postActions col u-xs-size12of12"><div class="u-floatLeft buttonSet buttonSet--withLabels"><div class="buttonSet-inner"><div class="js-actionRecommend" data-post-id="2b00f3366c6" data-size="29px"><button class="button button--primary button--large button--chromeless button--withIcon u-accentColor-iconLight button--withSvgIcon" title="Recommend to share this article with your followers and let the author know you liked it" aria-label="Recommend to share this article with your followers and let the author know you liked it"data-action="sign-in-prompt" data-sign-in-action="upvote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/2b00f3366c6"><span class="button-defaultState"><svg viewBox="0 0 29 29" width="29" height="29" class="svgIcon svgIcon--heart svgIcon-size--29px"><use class="svgIcon-use svgIcon-use--part0" xlink:href="#svg-heart-29px-p0"></use></svg></span><span class="button-activeState"><svg viewBox="0 0 29 29" width="29" height="29" class="svgIcon svgIcon--heartFilled svgIcon-size--29px"><use class="svgIcon-use svgIcon-use--part0" xlink:href="#svg-heartFilled-29px-p0"></use></svg></span></button><button class="button button--chromeless" data-action="show-recommends" data-action-value="2b00f3366c6">10</button></div></div><div class="buttonSet-inner"><button class="button button--large button--dark button--chromeless button--withIcon button--withSvgIcon" data-action="scroll-to-responses"><svg viewBox="0 0 29 29" width="29" height="29" class="svgIcon svgIcon--response svgIcon-size--29px"><use class="svgIcon-use svgIcon-use--part0" xlink:href="#svg-response-29px-p0"></use></svg></button></div></div><div class="u-floatRight buttonSet buttonSet--narrow"><button class="button button--large button--dark button--chromeless button--withIcon button--withSvgIcon" data-action="share-on-twitter"value="2b00f3366c6"><svg viewBox="0 0 29 29" width="29" height="29" class="svgIcon svgIcon--twitter svgIcon-size--29px"><use class="svgIcon-use svgIcon-use--part0" xlink:href="#svg-twitter-29px-p0"></use></svg></button><button class="button button--large button--dark button--chromeless button--withIcon button--withSvgIcon" data-action="share-on-facebook"value="2b00f3366c6"><svg viewBox="0 0 29 29" width="29" height="29" class="svgIcon svgIcon--facebook svgIcon-size--29px"><use class="svgIcon-use svgIcon-use--part0" xlink:href="#svg-facebook-29px-p0"></use></svg></button><button class="button button--large button--dark button--chromeless button--withIcon js-moreActionsButton button--withSvgIcon" title="More actions" aria-label="More actions" data-action="more-actions"><svg viewBox="0 0 25 25" width="25" height="25" class="svgIcon svgIcon--more svgIcon-size--25px"><use class="svgIcon-use svgIcon-use--part0" xlink:href="#svg-more-25px-p0"></use></svg></button></div></div></div></div><div class="container u-size740"><div class="row postFooter-info2"><div class="col u-xs-size12of12"><hr class="postFooter-infoDivider"></div></div><div class="row js-postFooterInfo"><div class="col u-xs-size12of12"><li class="card card-user"><div class="u-floatRight"><span class="followState js-followState buttonSet-inner" data-user-id="528ebe75b3c2"><button class="button button--small u-noUserSelect button--withChrome button--withHover button--unblock js-unblockButton" data-action="sign-in-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-action-source="footer_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--borderNormal u-accentColor--textNormal button--follow js-followButton" data-action="sign-in-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/528ebe75b3c2" data-action-source="footer_card_follow"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div><div class="card-imageWrapper "><a class="link avatar" href="https://medium.com/@ndaidong?source=footer_card" title="Go to the profile of Dong Nguyen" aria-label="Go to the profile of Dong Nguyen" data-action-source="footer_card" data-user-id="528ebe75b3c2" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/60/60/0*zGPX-QjBAmtJHBkB.jpeg" class="avatar-image avatar-image--small" alt="Go to the profile of Dong Nguyen"></a></div><div class="card-content"><h3 class="card-name"><a class="link link--primary u-accentColor--textNormal" href="https://medium.com/@ndaidong" property="cc:attributionName" title="Go to the profile of Dong Nguyen" aria-label="Go to the profile of Dong Nguyen" rel="author cc:attributionUrl" data-user-id="528ebe75b3c2" dir="auto">Dong Nguyen</a></h3><p class="card-description">Full-stack web developer who love Node.js, Python, system architect, UX design and Agile development.</p></div></li></div></div></div><div class="js-postBundleWrapper postBundleWrapper"></div><div class="responsesWrapper supplementalPostContent js-responsesWrapper postFooter"></div><div class="supplementalPostContent js-readNext"></div></footer></article><div class="promoCardWrapper js-promoCardWrapper"><div class="promoCard"><button class="button button--chromeless button--close" data-action="popup-dismiss">×</button><div class="promoCard-header">Don’t miss Dong Nguyen’s next story</div><div class="u-floatRight"><span class="followState js-followState buttonSet-inner" data-user-id="528ebe75b3c2"><button class="button u-noUserSelect button--withChrome button--withHover button--unblock js-unblockButton" data-action="sign-in-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-action-source="user_follow_popup"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary u-noUserSelect button--withChrome u-accentColor--borderNormal u-accentColor--textNormal button--follow js-followButton" data-action="sign-in-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/528ebe75b3c2" data-action-source="user_follow_popup_follow"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div><div class="avatar"><img src="https://cdn-images-1.medium.com/fit/c/40/40/0*zGPX-QjBAmtJHBkB.jpeg" class="avatar-image avatar-image--smaller" alt="Dong Nguyen"><span class="avatar-text">Dong Nguyen</span></div></div></div></div></div></div><div class="loadingBar"></div><script>// <![CDATA[
window["obvInit"] = function (opt_embedded) {window["obvInit"]["embedded"] = opt_embedded; window["obvInit"]["ready"] = true;}
// ]]></script><script>// <![CDATA[
var GLOBALS = {"audioUrl":"https://d1fcbxp97j4nb2.cloudfront.net","baseUrl":"https://medium.com","bestOfFirstSlug":"may-2013","bestOfLatestSlug":"february-2016","buildLabel":"20410-25d9cf5","currentUser":{"userId":"lo_a18a7acc962f","isVerified":false,"subscriberEmail":""},"currentUserHasUnverifiedEmail":false,"facebookKey":"542599432471018","facebookScope":["public_profile","email","user_friends"],"isAuthenticated":false,"isCurrentUserVerified":false,"loadingPlaceholderImg":"https://cdn-static-1.medium.com/_/fp/img/media-loading-placeholder.b31hiO4ynbDLRrXWEFF4aQ.png","mediumTwitterScreenName":"medium","miroUrl":"https://cdn-images-1.medium.com","moduleUrls":{"base":"https://cdn-static-1.medium.com/_/fp/js/main-base.bundle.m83G729yn7q7V7Milm_yFg.js","notes":"https://cdn-static-1.medium.com/_/fp/js/main-notes.bundle.lW-uTDyDS6pueSDzxkmUZg.js","posters":"https://cdn-static-1.medium.com/_/fp/js/main-posters.bundle.dN4j5wBrUCP8hpBLWoSyeA.js","common-async":"https://cdn-static-1.medium.com/_/fp/js/main-common-async.bundle.Jl1Gv1scggs1oLwpdlZwgQ.js","stats":"https://cdn-static-1.medium.com/_/fp/js/main-stats.bundle.ctCS3t6e0PkknBVvkyC31Q.js","misc-screens":"https://cdn-static-1.medium.com/_/fp/js/main-misc-screens.bundle.Y8Bo8T52xbXMkyVkujRZ7Q.js"},"postColumnWidth":700,"previewConfig":{"weightThreshold":1,"weightEmptyParagraph":0,"weightIframeParagraph":0.8,"weightImageParagraph":0.51,"weightTextParagraph":0.08,"weightBq":0.003,"weightH":0.005,"weightP":0.003,"minPTextLength":60,"truncateBoundaryChars":20,"detectTitle":true,"detectTitleLevThreshold":0.15,"experimentImagesInsetCenter":false,"previewConfigVariantA":{"experimentImagesInsetCenter":true},"previewConfigVariantB":{"weightThreshold":10,"detectTitle":false}},"productName":"Medium","supportsEdit":false,"termsUrl":"//medium.com/policy/9db0094a1e0f","textshotHost":"textshot.medium.com","transactionId":"1458547231961:d9c6e732edc7","useragent":{"browser":"other","family":"","os":"","version":0,"supportsDesktopEdit":false,"supportsInteract":false,"supportsView":true,"isMobile":false,"isTablet":false,"isNative":false,"supportsFileAPI":false,"isTier1":false,"clientVersion":"","unknownParagraphsBad":false,"clientChannel":"","supportsRealScrollEvents":false,"supportsVhUnits":false,"ruinsViewportSections":false,"supportsHtml5Video":false,"supportsMagicUnderlines":false,"isFacebook":false,"isWebView":false,"isFacebookWebView":false,"supportsSvgExternalResources":false,"supportsScrollableMetabar":false,"supportsProgressiveMedia":false,"isGoogle":false},"variants":{"allow_access":true,"allow_signup":true,"can_vote":true,"can_update_settings":true,"can_send_push_notifications":true,"can_export_data":true,"allow_test_auth":"disallow","enable_email_registration":true,"enable_spam_detection":true,"use_experimental_css":true,"can_resume_from_last_read_location":true,"can_follow_users":true,"receive_post_published_pushes":true,"receive_mention_pushes":true,"feed_homepage":true,"welcome_post_url":"https://medium.com/about/about-medium-9eac453da935","signin_services":"twitter,facebook,google","signup_services":"twitter,facebook,google","mobile_app_promotion":"dialog","enable_bing_search":true,"enable_algolia_search":true,"show_tagged_posts_in_search":true,"friends_only_quotes":true,"enable_rating_prompt":true,"enable_user_search_with_bing":true,"enable_drop_caps":true,"enable_session_cookie_encryption":true,"enable_tag_follow_onboarding":true,"your_top_stories_source":"similar-posts","follower_suggestion_source":"friends-of-friends","enable_service_worker":true,"android_rating_prompt_recommend_threshold":5,"enable_follow_suggestions_email":true,"number_of_top_stories":3,"number_of_in_stream_ts4u":3,"number_of_in_stream_global_top_stories":3,"enable_top_stories_in_stream":true,"enable_top_stories_in_stream_on_ios":true,"enable_top_stories_in_stream_on_android":true,"enable_post_recommend_threshold_in_stream":true,"enable_response_recommend_threshold_in_stream":true,"post_recommend_threshold":1,"response_recommend_threshold":2,"google_sign_in_android":true,"enable_pile_on_activity":true,"enable_onboarding":true,"enable_activity_rollup":true,"custom_miro_url":"https://cdn-images-1.medium.com","ios_custom_miro_url":"https://cdn-images-1.medium.com","enable_friends_recommends_plugin":true,"enable_most_recommended_response":true,"no_push_notification_for_responses":true,"receive_follow_pushes":true,"receive_recommend_pushes":true,"receive_response_pushes":true,"receive_highlight_pushes":true,"enable_ios_badge":true,"enable_small_first_page":true,"enable_response_email2":true,"reengagement_notification_duration":3,"enable_progressive_media":true,"enable_oauth_api":true,"enable_oauth_token_self_issuance":true,"enable_oauth_app_creation":true,"list_of_lists_bucket":"default","use_new_push_notification_logic":true,"enable_send_ios_pushes_using_channel_ids":true,"explore_tab_ios_posts_per_section_limit":4,"enable_user_social_count_healing":true,"enable_social_counts_from_user_stat_total":true,"enable_responses_stream":true,"show_social_buttons_on_logged_out_post_footer":true,"track_with_social_id":true,"filter_responses_in_stream":true,"disable_inherit_tags_inline":true,"enable_post_bundles":true,"post_bundles_type":"tag_based","enable_post_bundles_strategy_tag_based":true,"show_author_writes_about":true,"enable_tab_titles_ios":true,"enable_new_home_feed":true,"add_top_stories_in_new_home_feed":true,"ranked_home_feed_time_decay_grace_period_in_hour":24,"ranked_home_feed_time_decay_hours_per_unit":16,"ranked_home_feed_time_decay_max_units":10,"collect_user_signals":true,"enable_conversations_ios":true,"enable_expand_responses_inline_ios":true,"enable_sticky_footers_ios":true,"enable_collection_consumption_web":true,"enable_catalog_api":true,"enable_pubs_migration_processing":true,"onboarding_tags_type":"graphic_related","enable_first_feed_experiments":true,"first_feed_experiment_type":"recency","enable_adsnative_integration":true,"enable_amp_links":true,"browsable_stream_config_bucket":"curated","ios_small_post_preview_truncation_length":5.5,"ios_large_post_preview_truncation_length":5.5},"xsrfToken":"","iosAppId":"828256236","supportEmail":"yourfriends@medium.com","teamName":"Team Medium","fp":{"/img/default-avatar.png":"https://cdn-static-1.medium.com/_/fp/img/default-avatar.dmbNkD5D-u45r44go_cf0g.png","/img/default-preview-image.png":"https://cdn-static-1.medium.com/_/fp/img/default-preview-image.IsBK38jFAJBlWifMLO4z9g.png","/img/default-preview-image-v2.png":"https://cdn-static-1.medium.com/_/fp/img/default-preview-image-v2.MXL-j6S8fTEd8UFP_foEEw.png","/img/email/app_store_badge@2x.png":"https://cdn-static-1.medium.com/_/fp/img/email/app_store_badge@2x.8bDQGNMm-Xs7Hz6WA2XquQ.png","/img/email/app-devices@2x.png":"https://cdn-static-1.medium.com/_/fp/img/email/app-devices@2x.Ewl5-si-nhkLKZFIFSgrOw.png","/img/email/check1.png":"https://cdn-static-1.medium.com/_/fp/img/email/check1.0DM77li7vZhq5o2V9cVYLQ.png","/img/email/check2.png":"https://cdn-static-1.medium.com/_/fp/img/email/check2.GLlNusQmn1hwo9WDN-gE1w.png","/img/email/check3.png":"https://cdn-static-1.medium.com/_/fp/img/email/check3.7VxOUVMXAVbHRRnzMrJ_5A.png","/img/email/email-logo.png":"https://cdn-static-1.medium.com/_/fp/img/email/email-logo.x91rxfZYzIT9OJ5-ySD30A.png","/img/email/fb_logo.png":"https://cdn-static-1.medium.com/_/fp/img/email/fb_logo.Q0M98YwNTu77gLWTK6-RyQ.png","/img/email/google_play_badge@2x.png":"https://cdn-static-1.medium.com/_/fp/img/email/google_play_badge@2x.iWEWlt5_Qj20rr79-IGEBQ.png","/img/email/heart.png":"https://cdn-static-1.medium.com/_/fp/img/email/heart._hlyuYQiuuTWrRmDnDphJA.png","/img/email/heart@2x.png":"https://cdn-static-1.medium.com/_/fp/img/email/heart@2x.qvCTX1XHNpntqxt01oypQw.png","/img/email/heart1.png":"https://cdn-static-1.medium.com/_/fp/img/email/heart1.rnGEmSwcGUhztl_zSU7l6Q.png","/img/email/heart2.png":"https://cdn-static-1.medium.com/_/fp/img/email/heart2.HBiLu3koIYsKjjKroohgbA.png","/img/email/heart3.png":"https://cdn-static-1.medium.com/_/fp/img/email/heart3.AIJBOHw11HuhdClVJNtmtg.png","/img/email/large.png":"https://cdn-static-1.medium.com/_/fp/img/email/large.4EIhZbIk5sgqYSoB4YPmUA.png","/img/email/response.png":"https://cdn-static-1.medium.com/_/fp/img/email/response.5ZuN24N5XqS7ofHKg1lKXw.png","/img/email/response@2x.png":"https://cdn-static-1.medium.com/_/fp/img/email/response@2x.xzKQM4FzSurAVkghLQQWkA.png","/img/email/twitter_logo.png":"https://cdn-static-1.medium.com/_/fp/img/email/twitter_logo.Pz4a3o9WMU5QioxLKcyFhQ.png","/img/email/unlisted.png":"https://cdn-static-1.medium.com/_/fp/img/email/unlisted.ikh8R2LElOz_1YM8A2Db4g.png","/img/email/welcome-heart.png":"https://cdn-static-1.medium.com/_/fp/img/email/welcome-heart.6BRCOGcwGeOCBTql8pbq2g.png","/img/email/welcome-response.png":"https://cdn-static-1.medium.com/_/fp/img/email/welcome-response.iWVQLjiUG5pyQrPyGiYEpw.png","/img/email/welcome-write.png":"https://cdn-static-1.medium.com/_/fp/img/email/welcome-write.afdGsuE6YDk3HkaIASRl0w.png","/img/help/add-media-start.gif":"https://cdn-static-1.medium.com/_/fp/img/help/add-media-start.GXmqQ2Svt1WfZGIZSM93tg.gif","/img/help/add-media.gif":"https://cdn-static-1.medium.com/_/fp/img/help/add-media.SZH2LBmkwVExuhozFfVvYg.gif","/img/help/embed-start.gif":"https://cdn-static-1.medium.com/_/fp/img/help/embed-start.EBJ2PcWFJuYopsQV4wwklA.gif","/img/help/embed.gif":"https://cdn-static-1.medium.com/_/fp/img/help/embed.1BM0Di9vd91Kv8fLioJabw.gif","/img/help/text-highlight-start.gif":"https://cdn-static-1.medium.com/_/fp/img/help/text-highlight-start.AvTbakaFuUCd05YoMECoMQ.gif","/img/help/text-highlight.gif":"https://cdn-static-1.medium.com/_/fp/img/help/text-highlight.XVChoKYZ1-s3gJgHm9-7Yg.gif","/img/help/2.0-add-media.gif":"https://cdn-static-1.medium.com/_/fp/img/help/2.0-add-media.LhrJcTFODoqjnPPuHNEInA.gif","/img/help/2.0-add-media-start.png":"https://cdn-static-1.medium.com/_/fp/img/help/2.0-add-media-start.PTVdm36977cSfaYOpMNTNQ.png","/img/help/2.0-highlight-menu.gif":"https://cdn-static-1.medium.com/_/fp/img/help/2.0-highlight-menu.vMoUc7pXOyYFMJX68LXicw.gif","/img/help/2.0-highlight-menu-start.png":"https://cdn-static-1.medium.com/_/fp/img/help/2.0-highlight-menu-start.7vCytTKUZPOZvr_MCYADsA.png","/img/help/2.0-embed.gif":"https://cdn-static-1.medium.com/_/fp/img/help/2.0-embed.2g5jIXYtWjsRFa9D-hBhMQ.gif","/img/help/2.0-embed-start.png":"https://cdn-static-1.medium.com/_/fp/img/help/2.0-embed-start.LGy_FmixvcoEVIDKjg1jwA.png","/img/help/2.0-mention.gif":"https://cdn-static-1.medium.com/_/fp/img/help/2.0-mention.H9pEv0eHAvkGUVqdrHxH5g.gif","/img/help/2.0-mention-start.png":"https://cdn-static-1.medium.com/_/fp/img/help/2.0-mention-start.ShYTOfy6w3VDU9PKFfOEyw.png","/img/help/highlight-tips-1.gif":"https://cdn-static-1.medium.com/_/fp/img/help/highlight-tips-1.dEp02HXMKtAeKxsV5MWqGg.gif","/img/help/highlight-tips-2.gif":"https://cdn-static-1.medium.com/_/fp/img/help/highlight-tips-2.SyXCciYXeNpx4-GUAuh0XQ.gif","/img/import/highlight-menu.png":"https://cdn-static-1.medium.com/_/fp/img/import/highlight-menu.kzoaVM8mJJ-Hu9m9uo3Omg.png","/img/import/image-highlight-menu.png":"https://cdn-static-1.medium.com/_/fp/img/import/image-highlight-menu.q43-H2dl0JvBS_5znQCW8A.png","/img/import/publish-metabar.png":"https://cdn-static-1.medium.com/_/fp/img/import/publish-metabar.YbEX1a2Pu0rAR_LuKeg8JA.png","/icons/favicon-dev-editor.ico":"https://cdn-static-1.medium.com/_/fp/icons/favicon-dev-editor.YKKRxBO8EMvIqhyCwIiJeQ.ico","/icons/favicon-hatch-editor.ico":"https://cdn-static-1.medium.com/_/fp/icons/favicon-hatch-editor.BuEyHIqlyh2s_XEk4Rl32Q.ico","/icons/favicon-medium-editor.ico":"https://cdn-static-1.medium.com/_/fp/icons/favicon-medium-editor.PiakrZWB7Yb80quUVQWM6g.ico"},"facebookNamespace":"medium-com","authBaseUrl":"https://medium.com","imageUploadSizeMb":25,"isAuthDomainRequest":true,"algoliaApiEndpoint":"https://MQ57UUUQZ2-dsn.algolia.net","algoliaAppId":"MQ57UUUQZ2","algoliaSearchOnlyApiKey":"aadabda268e3bfaffe7b287709262fec","iosAppStoreUrl":"https://itunes.apple.com/app/medium-everyones-stories/id828256236?pt=698524&mt=8","iosAppLinkBaseUrl":"medium:","algoliaIndexPrefix":"medium_","androidPlayStoreUrl":"https://play.google.com/store/apps/details?id=com.medium.reader","googleClientId":"216296035834-k1k6qe060s2tp2a2jam4ljdcms00sttg.apps.googleusercontent.com","androidPackage":"com.medium.reader","androidPlayStoreMarketScheme":"market://details?id=com.medium.reader","googleAuthUri":"https://accounts.google.com/o/oauth2/auth","androidScheme":"medium","iconsSvgUrl":"/_/proxy-static/_/fp/icons/icons.pEgKwIeo1Jmh51iElfNgsg.svg","layoutData":{"useDynamicScripts":false,"googleAnalyticsTrackingCode":"UA-24232453-2","jsShivUrl":"https://cdn-static-1.medium.com/_/fp/js/shiv.RI2ePTZ5gFmMgLzG5bEVAA.js","iconsJsUrl":"https://cdn-static-1.medium.com/_/fp/js/icons.eR1AJ_5I759hGrg36Jtvbg.js","cssFontUrls":["https://cdn-static-1.medium.com/_/fp/css/fonts-base.by5Oi_VbnwEIvhnWIsuUjA.css"],"useDynamicCss":false,"faviconUrl":"https://cdn-static-1.medium.com/_/fp/icons/favicon-medium.TAS6uQ-Y7kcKgi0xjcYHXw.ico"},"authBaseUrlRev":"moc.muidem//:sptth","isDnt":false,"stripePublishableKey":"pk_test_kgaI7g0OvDySoqecpxnmmqWk","archiveUploadSizeMb":100,"paymentData":{"currencies":{"1":{"label":"US Dollar","external":"usd"}},"countries":{"1":{"label":"United States of America","external":"US"}},"accountTypes":{"1":{"label":"Individual","external":"individual"},"2":{"label":"Company","external":"company"}}}}
// ]]></script><script charset="UTF-8" src="https://cdn-static-1.medium.com/_/fp/js/main-base.bundle.m83G729yn7q7V7Milm_yFg.js" async="true"></script><script charset="UTF-8" src="https://cdn-static-1.medium.com/_/fp/js/icons.eR1AJ_5I759hGrg36Jtvbg.js"></script><script>// <![CDATA[
window["obvInit"]({"value":{"id":"2b00f3366c6","versionId":"9d78e3ef5ba8","creatorId":"528ebe75b3c2","creator":{"userId":"528ebe75b3c2","name":"Dong Nguyen","username":"ndaidong","createdAt":1382421947424,"lastPostCreatedAt":1452328390713,"imageId":"0*zGPX-QjBAmtJHBkB.jpeg","backgroundImageId":"1*avhYTqPWXka6y8VMhPpYXw.jpeg","bio":"Full-stack web developer who love Node.js, Python, system architect, UX design and Agile development.","twitterScreenName":"ndaidong","socialStats":{"userId":"528ebe75b3c2","usersFollowedCount":359,"usersFollowedByCount":205,"type":"SocialStats"},"social":{"userId":"lo_a18a7acc962f","targetUserId":"528ebe75b3c2","type":"Social"},"facebookAccountId":"610211872413258","allowNotes":1,"type":"User"},"homeCollectionId":"","title":"Setup Rocket Chat within 10 minutes","detectedLanguage":"en","latestVersion":"9d78e3ef5ba8","latestPublishedVersion":"9d78e3ef5ba8","hasUnpublishedEdits":false,"latestRev":769,"createdAt":1451388820696,"updatedAt":1455700020371,"acceptedAt":0,"firstPublishedAt":1451392429536,"latestPublishedAt":1451402892344,"isRead":false,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"Do you want to get your own Slack app for your company or your team. Rocket Chat may be what you need.","bodyModel":{"paragraphs":[{"name":"70fe","type":3,"text":"Setup Rocket Chat within 10 minutes","markups":[]},{"name":"a90e","type":4,"text":"Rocket Chat","markups":[],"layout":1,"metadata":{"id":"1*9IX5MWrnaCBzzeS3h5N2oA.png","originalWidth":1354,"originalHeight":625}},{"name":"1c46","type":1,"text":"Are you using Slack? Do you want to get your own Slack for your team or your company? Rocket Chat may be what you need.","markups":[]},{"name":"7496","type":1,"text":"I’ve just heard about this package today. It’s an online chat tool based on Meteor, open source, full features, multi devices, and quite easy to setup.","markups":[{"type":3,"start":76,"end":82,"href":"https://www.meteor.com/","title":"","rel":"","anchorType":0}]},{"name":"b348","type":1,"text":"In order to install Rocket Chat, you can use Ubuntu server. Your server must have nginx, node.js and MongoDB.","markups":[{"type":3,"start":20,"end":31,"href":"https://rocket.chat/","title":"","rel":"","anchorType":0}]},{"name":"97ee","type":1,"text":"If everything is already, we install tmux and meteor first:","markups":[{"type":3,"start":37,"end":41,"href":"https://github.com/tmux/tmux","title":"","rel":"","anchorType":0},{"type":3,"start":46,"end":52,"href":"https://www.meteor.com/","title":"","rel":"","anchorType":0}]},{"name":"6421","type":8,"text":"sudo apt-get install tmux\nsudo npm install -g meteor","markups":[]},{"name":"0349","type":1,"text":"tmux would be used for keeing Meteor app alive even when you close terminal.","markups":[{"type":1,"start":0,"end":4}]},{"name":"2f1a","type":1,"text":"Now, clone Rocket Chat repository into rocket-chat directory:","markups":[{"type":2,"start":39,"end":50}]},{"name":"ee46","type":8,"text":"git clone https://github.com/RocketChat/Rocket.Chat.git rocket-chat\ncd rocket-chat\nmeteor","markups":[{"type":3,"start":10,"end":55,"href":"https://github.com/RocketChat/Rocket.Chat.git","title":"","rel":"","anchorType":0}]},{"name":"22cc","type":1,"text":"The last command would download the needed npm and Meteor packages then start server. Wait until the process done, press “Ctrl+C” to stop it. We still need to configure host and database connection.","markups":[]},{"name":"5a03","type":1,"text":"Here I try to set public domain for Rocket Chat application at http://g8.techpush.net/ and use local MongoDB:","markups":[{"type":3,"start":63,"end":86,"href":"http://g8.techpush.net/","title":"","rel":"nofollow","anchorType":0}]},{"name":"7202","type":8,"text":"export ROOT_URL=http://g8.techpush.net/\nexport MONGO_URL=mongodb://127.0.0.1:27017/rocketchat","markups":[{"type":3,"start":16,"end":39,"href":"http://g8.techpush.net/","title":"","rel":"nofollow","anchorType":0}]},{"name":"7231","type":1,"text":"Now, open tmux session and run “meteor”:","markups":[{"type":1,"start":10,"end":14}]},{"name":"895b","type":8,"text":"tmux\nmeteor","