pimentaCHAT in CentOS
This tutorial was tested using CentOS 7.5 and pimentaCHAT 0.70.0.
pimentaCHAT recommends MongoDB version 3.6 and NodeJS version 8.11.3.
Install necessary dependency packages
Configure yum to install the official MongoDB packages with the following yum repository file:
echo -e "[mongodb-org-3.6]\nname=MongoDB Repository\nbaseurl=https://repo.mongodb.org/yum/redhat/7/mongodb-org/3.6/x86_64/\ngpgcheck=1\nenabled=1\ngpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc" | sudo tee /etc/yum.repos.d/mongodb-org-3.6.repo
Configure Node.js to be installed via package manager:
sudo yum install -y curl && curl -sL https://rpm.nodesource.com/setup_8.x | sudo bash -
Install build tools, MongoDB, nodejs and graphicsmagick:
sudo yum install -y gcc-c++ make mongodb-org nodejs
sudo yum install -y epel-release && sudo yum install -y GraphicsMagick
Using npm install inherits and n, and the node version required by pimentaCHAT:
sudo npm install -g inherits n && sudo n 8.11.3
Install pimentaCHAT
Download the latest pimentaCHAT version:
curl -L https://releases.pimenta.chat/latest/download -o /tmp/pimenta.chat.tgz
tar -xzf /tmp/pimenta.chat.tgz -C /tmp
Install (this tutorial uses /opt but feel free to choose a different directory):
cd /tmp/bundle/programs/server && npm install
sudo mv /tmp/bundle /opt/pimentaCHAT
Configure the pimentaCHAT service
Add the pimentachat user, set the right permissions on the pimentaCHAT folder and create the pimentaCHAT service file:
sudo useradd -M pimentachat && sudo usermod -L pimentachat
sudo chown -R pimentachat:pimentachat /opt/pimentaCHAT
echo -e "[Unit]\nDescription=The pimentaCHAT server\nAfter=network.target remote-fs.target nss-lookup.target nginx.target mongod.target\n[Service]\nExecStart=/usr/local/bin/node /opt/pimentaCHAT/main.js\nStandardOutput=syslog\nStandardError=syslog\nSyslogIdentifier=pimentachat\nUser=pimentachat\nEnvironment=LD_PRELOAD=/opt/pimentaCHAT/programs/server/npm/node_modules/sharp/vendor/lib/libz.so NODE_ENV=production MONGO_URL=mongodb://localhost:27017/pimentachat ROOT_URL=http://your-host-name.com-as-accessed-from-internet:3000/ PORT=3000\n[Install]\nWantedBy=multi-user.target" | sudo tee /usr/lib/systemd/system/pimentachat.service
Open the pimentaCHAT service file just created (/usr/lib/systemd/system/pimentachat.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 and PORT):
MONGO_URL=mongodb://localhost:27017/pimentachat
ROOT_URL=http://your-host-name.com-as-accessed-from-internet:3000
PORT=3000
Enable and start MongoDB and pimentaCHAT:
sudo systemctl enable mongod && sudo systemctl start mongod
sudo systemctl enable pimentachat && sudo systemctl start pimentachat
Optional configurations
If you are using firewalld and not using a reverse proxy, you probably have to open Port 3000:
sudo firewall-cmd --permanent --add-port=3000/tcp
sudo systemctl reload firewalld
Additional configurations
Configure replicas for your MongoDB (recommended for production environments)
Configure a HTTP reverse proxy to access pimentaCHAT server
Configure your pimentaCHAT server
Once decided if going for a standalone instance or a replica set in MongoDB, open a web browser and access the configured ROOT_URL (http://your-host-name.com-as-accessed-from-internet:3000
), follow the configuration steps to set an admin account and your organization and server info.