-
Notifications
You must be signed in to change notification settings - Fork 0
Deploy Rocket.Chat to UBUNTU
This guide explains how to deploy your own Rocket.Chat instance to a Ubuntu Linux machine.
Node.js
MongoDB
curl
nave
pm2
# 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
Rocket.Chat uses the MongoDB replica set to provide redundancy and high availability. We need to configure the replica set
Append replSet=001-rs
into mongod.conf
file:
$ echo replSet=001-rs >> /etc/mongod.conf
And restart Mongo:
$ service mongod restart
$ mongo
Using YAML syntax add this section into mongod.conf
:
replication:
replSetName: "001-rs"
Start the MongoDB shell and initiate the replica set:
$ mongo
> rs.initiate()
The result should look like this
{
"info2" : "no configuration explicitly specified -- making one",
"me" : "localhost:27017",
"info" : "Config now saved locally. Should come online in about a minute.",
"ok" : 1
}
After a few seconds, you should see your prompt turn into 001-rs:PRIMARY>
, this indicates the replica set is being used. Type exit
to get back to your regular shell.
Note: If running behind a reverse Nginx SSL proxy, see Section 6 first for important information on setting the ROOT_URL
value below as it needs to be adjusted before deployment.
Then to deploy Rocket.Chat:
HOST=http://your_hostname.com
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
Rocket.Chat is installed and needs to be configured. Follow these guides to properly configure everything your instance needs:
- Mobile app for iPhones, iPads, iPod Touch
- Firefox OS native app
- Using Face to face video conference (aka webrtc)
- Remote Video Monitoring
- Roles and Permissions
- LDAP Authentication
- Creating the First Admin
- Build the Android Cordova Web App and connect to your own Rocket.Chat Server
- Mobile Notifications Gateway Configuration
- WebHooks
- Aliyun
- Docker w/Nginx SSL & Hubot
- Easy, hands off deployment with Ansible
- Deploy with docker
- FreeBSD
- UBUNTU
- CentOS 7 without docker
- Other Linux distributions
- IBM Bluemix
- Heroku
- Nitrous.io
- sloppy.io
- Run Rocket.Chat behind a SSL Reverse Proxy
- Deploy Rocket.Chat without docker
- Windows Deployment
- Update Docker RC and keep old data