- Print
- DarkLight
- PDF
Deploy with CentOS
- Print
- DarkLight
- PDF
The recommended deployment methods are Docker, AWS, and Kubernetes.
This document guides you through the process of deploying a QuickMeet.Chat workspace on CentOS.
Prerequisites
Depending on the version of QuickMeet.Chat you want to install, check the releases to see the supported engine versions for MongoDB and NodeJs, and install as recommended.
Install Node.js: You can download Node.js for Linux systems using the package manager. Make sure to check the compatible node version in the QuickMeet.Chat releases.
Install Deno: Only Deno versions >=1.37.1 and <2.0.0 are supported. Follow the Deno installation guide to install the correct version.
For example, to install the 1.38.5 version with Shell, use the following command:
curl -fsSL https://deno.land/install.sh | sh -s v1.38.5Install MongoDB: Refer to the MongoDB documentation on installing MongoDB on CentOS.
When deploying MongoDB, it is crucial to secure MongoDB instances and close all MongoDB ports from public access. Unsecured instances can lead to significant security vulnerabilities. Your vigilance in these practices is essential for maintaining the integrity and safety of your systems.
Step 1: Set up MongoDB
Once MongoDB is installed, you need to set up the storage engine, enable replication, and specify the replica set name. To do this, enter the following commands:
sudo sed -i "s/^# engine:/ engine: mmapv1/" /etc/mongod.confsudo sed -i "s/^#replication:/replication:\n replSetName: rs01/" /etc/mongod.confIn this case, we are naming the replica set as rs01.
Open the MongoDB configuration file (
/etc/mongod.conf) by running the following command:
sudo nano /etc/mongod.confThe MongoDB configuration file should look something like this:
# mongod.conf
# Where and how to store data.
storage:
dbPath: /var/lib/mongodb
# where to write logging data.
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
# network interfaces
net:
port: 27017
bindIp: <bind-ip> # Replace with your IP address
# how the process runs
processManagement:
timeZoneInfo: /usr/share/zoneinfo
# Replication settings
replication:
replSetName: rs01Refer to the MongoDB configuration documentation for additional details.
Enable and start MongoDB with the following command:
sudo systemctl enable mongod && sudo systemctl start mongodInitialize the replica set using the following command:
mongo --eval "printjson(rs.initiate())"To ensure that MongoDB is running successfully, enter the following command:
sudo systemctl status mongodYou should see something like this:
.png)
Step 2: Install QuickMeet.Chat on CentOS
Start by installing the required dependency packages:
sudo dnf install epel-release
sudo dnf install GraphicsMagickCheck the QuickMeet.Chat releases to deploy the version you need. For stability and compatibility, we recommend downloading a specific version. For example, to download version 6.13.0, run this command:
curl -L https://releases.quickmeet.chat/6.13.0/download -o /tmp/quickmeet.chat.tgzAlternatively, if you prefer to download the latest version, you can use the following command (note that using latest is not recommended for production purposes):
curl -L https://releases.quickmeet.chat/latest/download -o /tmp/quickmeet.chat.tgzExtract the QuickMeet.Chat server files using the following command:
tar -xzf /tmp/quickmeet.chat.tgz -C /tmpThis command extracts the contents of the downloaded quickmeet.chat.tgz compressed tar archive located in the /tmp directory and places the extracted files into the same /tmp directory.
Next, run the following command to change the current directory and install the necessary production dependencies.
cd /tmp/bundle/programs/server && npm installWhen executing
npm install, it is recommended to operate using a non-root account. Alternatively, you can utilize thenpm install --unsafe-permcommand. This approach eliminates the necessity for building libc or upgrading the host system.
Move the extracted files to the
/optdirectory:
sudo mv /tmp/bundle /opt/QuickMeet.ChatThis guide uses the
/optdirectory. However, you can choose your preferred directory.
Step 3: Configure the QuickMeet.Chat service
Add the QuickMeet.Chat user and set the proper permissions on the QuickMeet.Chat folder:
sudo useradd -M rocketchat && sudo usermod -L rocketchatsudo chown -R rocketchat:rocketchat /opt/QuickMeet.ChatWe need the NodeJS binary path to create the QuickMeet.Chat service file. Depending on how you install NodeJS, the binary path may be different. Save the path to a variable as follows:
NODE_PATH=$(which node)Now, we will create a barebone service file, which the system will use to start your QuickMeet.Chat daemon/process. Create the QuickMeet.Chat service file as follows:
cat << EOF |sudo tee -a /lib/systemd/system/rocketchat.service
[Unit]
Description=The QuickMeet.Chat server
After=network.target remote-fs.target nss-lookup.target nginx.service mongod.service
[Service]
ExecStart=$NODE_PATH /opt/QuickMeet.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
EOFAlternatively, if you don’t want to use the NODE_PATH variable in the service file, save the path to the variable, and then print it to find the path as follows:
NODE_PATH=$(which node)
echo NODE_PATH=$(which node)You will get a path like this:
/usr/bin/nodeReplace this path for the ExecStart variable in the service file:
ExecStart=/usr/bin/node /opt/QuickMeet.Chat/main.jsStep 4: Pass environment variables
Running the QuickMeet.Chat daemon requires passing some environment variables. See QuickMeet.Chat environment variables for more details.
Open the QuickMeet.Chat service file we created in the last step by running:
sudo nano /lib/systemd/system/rocketchat.serviceUpdate the file with the following information according to your configuration and save it:
[Service]
Environment=ROOT_URL=http://localhost:3000
Environment=PORT=3000
Environment=MONGO_URL=mongodb://localhost:27017/rocketchat?replicaSet=rs01
Environment=MONGO_OPLOG_URL=mongodb://localhost:27017/local?replicaSet=rs01Additional steps for installing 6.10 release
If you’re installing version 6.10, run these additional commands:
mkdir -p /home/rocketchat/.cache cd PATH_TO_ROCKETCHAT_INSTALLATION/programs/server/npm/node_modules/@quickmeet.chat/apps-engine export DENO_DIR=/home/rocketchat/.cache/deno npm install --production npm run postinstall chown -R rocketchat:rocketchat /home/rocketchat
Now start the QuickMeet.Chat service using the following command:
sudo systemctl enable --now rocketchatIf you edit your QuickMeet.Chat configuration file, make sure to reload the daemon and restart the QuickMeet.Chat process by running the following commands:
sudo systemctl daemon-reload
sudo systemctl restart rocketchatCheck the status of the QuickMeet.Chat process with this command:
sudo systemctl status rocketchatYou should see something like this:
.png)
Step 5: Configure your QuickMeet.Chat workspace
To access your QuickMeet.Chat workspace, open a web browser, and navigate to the specified root URL (http://your-host-name.com:3000). Follow the configuration prompts to configure your workspace. During the configuration steps, your workspace and email are registered to the QuickMeet.Chat Cloud portal. You can manage your workspace and subscriptions from the cloud portal.
Next steps
Great! You’ve successfully created your QuickMeet.Chat workspace and logged in. Next, check out the following documents to get started:
User Guides: Learn the basics of your QuickMeet.Chat account, the types of rooms, and how to communicate with your workspace users.
Workspace Administration: Administrators and owners can set and manage various configurations.
Marketplace: Explore the available apps to enhance your workspace.
You can also apply the following additional configuration to your QuickMeet.Chat setup for enhanced security and performance:
Update your workspace version
Each QuickMeet.Chat version is supported for six months post-release. Keep your workspaces updated to enjoy the benefits of new features and fixes.
Follow these steps to update your workspace version:
Stop the QuickMeet.Chat service with this command:
sudo systemctl stop rocketchatRemove the installation folder, usually in
/opt:
sudo rm -rf /opt/QuickMeet.ChatMake sure that you have the supported node version and MongoDB versions by checking the releases.
Download the version of QuickMeet.Chat that you need:
curl -L https://releases.quickmeet.chat/7.0.0/download -o /tmp/quickmeet.chat.tgzNote that using latest instead of the version number is not recommended.
Extract the QuickMeet.Chat server files using the following command:
tar -xzf /tmp/quickmeet.chat.tgz -C /tmpNext, run the following command to change the current directory and install the necessary production dependencies:
cd /tmp/bundle/programs/server && npm insUpdating QuickMeet.Chat FAQtallMove the extracted files to the
/optdirectory:
sudo mv /tmp/bundle /opt/QuickMeet.ChatStart the QuickMeet.Chat service:
sudo systemctl start rocketchatIf you edit your QuickMeet.Chat configuration file, make sure to reload the daemon and restart the QuickMeet.Chat process by running the following commands:
sudo systemctl daemon-reload
sudo systemctl restart rocketchatCheck the status of the QuickMeet.Chat process with this command:
sudo systemctl status rocketchatIf you have any concerns or issues with updating QuickMeet.Chat, see the Updating QuickMeet.Chat FAQ. See MongoDB version support for details on supported MongoDB versions for QuickMeet.Chat releases.