Skip to content

Instantly share code, notes, and snippets.

@linuxdevhub
Last active January 29, 2021 06:33
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save linuxdevhub/56150d8ab56d8443ce497ab35ae148e4 to your computer and use it in GitHub Desktop.
Save linuxdevhub/56150d8ab56d8443ce497ab35ae148e4 to your computer and use it in GitHub Desktop.
# Youtube: https://youtu.be/1Eowk4PI2Rg
sudo apt-get update
sudo apt-get upgrade
# Install the official MongoDB
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list
# Configure Node.js to be installed via package manager
sudo apt-get -y update && sudo apt-get install -y curl && curl -sL https://deb.nodesource.com/setup_8.x | sudo bash -
# Install build tools, MongoDB, nodejs and graphicsmagick:
sudo apt-get install -y build-essential mongodb-org nodejs graphicsmagick
# Download the latest Rocket.Chat version:
curl -L https://releases.rocket.chat/latest/download -o /tmp/rocket.chat.tgz
tar -xzf /tmp/rocket.chat.tgz -C /tmp
# Install Rocket Chat
cd /tmp/bundle/programs/server && npm install
sudo mv /tmp/bundle /opt/Rocket.Chat
# Configure the Rocket.Chat service
# Add the rocketchat user, set the right permissions
sudo useradd -M rocketchat && sudo usermod -L rocketchat
sudo chown -R rocketchat:rocketchat /opt/Rocket.Chat
cat << EOF |sudo tee -a /lib/systemd/system/rocketchat.service
[Unit]
Description=The Rocket.Chat server
After=network.target remote-fs.target nss-lookup.target nginx.target mongod.target
[Service]
ExecStart=/usr/bin/node /opt/Rocket.Chat/main.js
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=rocketchat
User=rocketchat
Environment=MONGO_URL=mongodb://localhost:27017/rocketchat?replicaSet=rs01 MONGO_OPLOG_URL=mongodb://localhost:27017/local?replicaSet=rs01 ROOT_URL=http://localhost:3000/ PORT=3000
[Install]
WantedBy=multi-user.target
EOF
# Open the Rocket.Chat service file just created (/lib/systemd/system/rocketchat.service) using sudo and your favourite text editor, and change the ROOT_URL environmental variable to reflect the URL you want to use for accessing the server (optionally change MONGO_URL, MONGO_OPLOG_URL and PORT):
sudo nano /lib/systemd/system/rocketchat.service
#MONGO_URL=mongodb://localhost:27017/rocketchat?replicaSet=rs01
#MONGO_OPLOG_URL=mongodb://localhost:27017/local?replicaSet=rs01
#ROOT_URL=http://your-host-name.com-as-accessed-from-internet:3000
#PORT=3000
# Setup storage engine and replication for MongoDB, and enable and start MongoDB and Rocket.Chat:
sudo sed -i "s/^# engine:/ engine: mmapv1/" /etc/mongod.conf
sudo sed -i "s/^#replication:/replication:\n replSetName: rs01/" /etc/mongod.conf
sudo systemctl enable mongod && sudo systemctl start mongod
mongo --eval "printjson(rs.initiate())"
sudo systemctl enable rocketchat && sudo systemctl start rocketchat
# Install Nginx
sudo apt-get install nginx
sudo systemctl start nginx
sudo systemctl enable nginx
# remove default nxgix page
sudo rm /etc/nginx/sites-enabled/default
# Create a new configuration for Rocket Chat
sudo nano /etc/nginx/sites-available/yourdomainname.conf
# Copy paste bellow content and save
# upstream backend {
# server 127.0.0.1:3000;
#}
#server {
# listen [::]:80;
# listen 80;
# server_name yourdomainname.com;
# client_max_body_size 200M;
# error_log /var/log/nginx/rocketchat.access.log;
# location / {
# proxy_pass http://backend/;
# 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;
# }
#}
# Configure your Rocket.Chat server
# Open a web browser and access the configured ROOT_URL
# http://your-host-name.com:3000
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment