/ #web #linux 

Встановлення відкритого месенджера Rocket.Chat на Debian 9

Rocket.Chat - відкритий месенджер, який підтримує групові чати, відеовиклики, конференції, обмін файлами, ботів та багато іншого. Має як десктопні, так і мобільні клієнти під всі популярні системи (https://rocket.chat/install). Може бути розгорнутий на власних серверах та використовуватись в якості корпоративного чату. В якості приємного бонусу - може виконувати роль чату-помічника в інтернет-магазинах.

Зовнішній вигляд Rocket.Chat, зображення с сайту https://rocket.chat/

Підготовчий етап - встановлення залежностей

Оновлюємо список пакетів:

sudo apt-get -y update

Встановлюємо MongoDB, Node.js та graphicsmagick:

sudo apt-get install -y dirmngr gnupg && sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
echo "deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/4.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list
sudo apt-get install -y build-essential mongodb-org nodejs graphicsmagick

Встановлюємо необхідну для Rocket.Chat версію nodejs:

sudo npm install -g inherits n && sudo n 12.14.0

Встановлення Rocket.Chat

Отримуємо останню версію Rocket.Chat

curl -L https://releases.rocket.chat/latest/download -o /tmp/rocket.chat.tgz

та встановлюємо в директорію /opt/Rocket.Chat (за необхідністю можна змінити на іншу)

tar -xzf /tmp/rocket.chat.tgz -C /tmp
cd /tmp/bundle/programs/server && npm install
sudo mv /tmp/bundle /opt/Rocket.Chat

Налаштування служби Rocket.Chat

Створюємо користувача rocketchat з відповідними доступами:

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 mongod.target mongod.service
[Service]
ExecStart=/usr/local/bin/node /opt/Rocket.Chat/main.js
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=rocketchat
User=rocketchat
Environment=MONGO_URL=mongodb://localhost:27017/rocketchat?replicaSet=rs01
Environment=MONGO_OPLOG_URL=mongodb://localhost:27017/local?replicaSet=rs01
Environment=ROOT_URL=http://localhost:3000/
Environment=PORT=3000
[Install]
WantedBy=multi-user.target
EOF

Налаштовуємо зберігання та реплікацію в MongoDB:

sudo sed -i "s/^#  engine:/  engine: wiredTiger/"  /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())"

Активуємо сервіс та запускаємо RocketChat

sudo systemctl enable rocketchat && sudo systemctl start rocketchat

Посилання

Author

Олександр Бобилєв

Залишаю собі право використовувати ненормативну (але інформативну) лексику там, де звичайні слова втрачають сенс і не відображають всієї палітри почуттів, від споглядання навколишньої дійсності.