Skip to content

Instantly share code, notes, and snippets.

@ducke
Last active October 21, 2015 19:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ducke/006d735fe0d628680a6b to your computer and use it in GitHub Desktop.
Save ducke/006d735fe0d628680a6b to your computer and use it in GitHub Desktop.
Deploy rocket.chat
#https://github.com/RocketChat/hubot-rocketchat
# SYSTEM CONFIGURATION
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
apt-get update
apt-get install -y git nodejs npm mongodb-org curl
ln -s /usr/bin/nodejs /usr/bin/node
npm install nave -g
nave usemain 0.10.40
curl https://install.meteor.com/ | sh
npm install pm2 -g
pm2 startup
# mongod.conf -- NO TAB --
replication:
replSetName: "001-rs"
# add hostname to /etc/hosts
$ mongo
> rs.initiate()
HOST=http://rocketchat
MONGO_URL=mongodb://localhost:27017/rocketchat
MONGO_OPLOG_URL=mongodb://localhost:27017/local
ROOT_URL=http://localhost:3000
PORT=3000
mkdir -p /var/www/
mkdir -p /var/log/rocket.chat
cd /var/www/
wget https://github.com/RocketChat/Rocket.Chat/archive/master.tar.gz
tar -xvzf master.tar.gz
mv Rocket.Chat-master rocket.chat
cd ./rocket.chat
meteor build --server "$HOST" --directory .
cd ./bundle/programs/server
npm install
cd ../..
rm -f pm2-rocket-chat.json
echo '{' > pm2-rocket-chat.json
echo ' "apps": [{' >> pm2-rocket-chat.json
echo ' "name": "rocket.chat",' >> pm2-rocket-chat.json
echo ' "script": "/var/www/rocket.chat/bundle/main.js",' >> pm2-rocket-chat.json
echo ' "out_file": "/var/log/rocket.chat/app.log",' >> pm2-rocket-chat.json
echo ' "error_file": "/var/log/rocket.chat/err.log",' >> pm2-rocket-chat.json
echo " \"port\": \"$PORT\"," >> pm2-rocket-chat.json
echo ' "env": {' >> pm2-rocket-chat.json
echo " \"MONGO_URL\": \"$MONGO_URL\"," >> pm2-rocket-chat.json
echo " \"MONGO_OPLOG_URL\": \"$MONGO_OPLOG_URL\"," >> pm2-rocket-chat.json
echo " \"ROOT_URL\": \"$ROOT_URL\"," >> pm2-rocket-chat.json
echo " \"PORT\": \"$PORT\"" >> pm2-rocket-chat.json
echo ' }' >> pm2-rocket-chat.json
echo ' }]' >> pm2-rocket-chat.json
echo '}' >> pm2-rocket-chat.json
pm2 start pm2-rocket-chat.json
pm2 save
sudo chown -R $USER:$GROUP ~/.npm
# init.d hubot
#http://kvz.io/blog/2012/11/20/installing-hubot-on-ubuntu/
$ cat <<EOF > /etc/init/hubot.conf
description "Hubot Rocket.chat bot"
# Rocket.chat-specific environment variables. Change these:
env ROCKETCHAT_ROOM=GENERAL
env ROCKETCHAT_USER=bot
env ROCKETCHAT_PASSWORD=bot
# Subscribe to these upstart events
# This will make Hubot start on system boot
start on filesystem or runlevel [2345]
stop on runlevel [!2345]
# Path to Hubot installation
env HUBOT_DIR='/hubot/'
env HUBOT='bin/hubot'
env ADAPTER='rocketchat'
env HUBOT_USER='hubot' # system account
env HUBOT_NAME='hubot' # what hubot listens to
env PORT='5555'
# Keep the process alive, limit to 5 restarts in 60s
respawn
respawn limit 5 60
exec start-stop-daemon --start --chuid \${HUBOT_USER} --chdir \${HUBOT_DIR} \
--exec \${HUBOT_DIR}\${HUBOT} -- --name \${HUBOT_NAME} --adapter \${ADAPTER} >> /var/log/hubot.log 2>&1
EOF
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment