Поиск по сайту:

Как установить Rocket.chat с обратным прокси-сервером nginx в Ubuntu 20.04


Если вы ищете автономную чат-платформу с открытым исходным кодом, то Rocketchat может быть лучшим вариантом. Чат Rocket можно использовать в качестве альтернативы различным каналам связи, таким как Slack, Mattermost и т. д. Чат Rocket имеет различные функции, такие как групповые чаты, видеоконференции, и вы можете интегрировать онлайн-чат с другими платформами. В этой статье мы узнаем, как настроить автономную систему Rocketchat с возможностью шифрования SSL-сертификатов.

Предварительные условия

  1. Свежий сервер Ubuntu
  2. Root-доступ или учетная запись с привилегиями sudo
  3. Доменное имя, указанное с IP-адресом сервера.
  4. Подключение к Интернету для загрузки приложений

Установите необходимые пакеты и зависимости

Перед установкой пакетов обновите систему Ubuntu, используя следующую команду

sudo apt-get update -y

После завершения обновления системы настройте apt для установки пакетов 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

Выход :

Чтобы настроить Node.js для установки с помощью диспетчера пакетов apt , выполните следующую команду.

sudo apt-get -y update && sudo apt-get install -y curl && curl -sL https://deb.nodesource.com/setup_12.x | sudo bash -

Выход :

Теперь установите инструменты сборки Nodejs, MongoDB и Graphicsmagick:

sudo apt-get install -y build-essential mongodb-org nodejs graphicsmagick

Выход :

Теперь установите наследники и n, а также версию узла, необходимую для Rocketchat.

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

Чтобы проверить установленную версию Nodejs, выполните следующую команду.

node --version

Выход :

v12.18.4

Установить Рокетчат

Мы уже установили необходимые зависимости. Теперь на этом этапе мы загрузим приложение Rocket Chat и установим его в Ubuntu 20.04.

Загрузите последнюю версию Rocketchat, используя следующую команду.

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

Выход :

Извлеките загруженное приложение. Вы можете выбрать предпочтительный каталог для хранения извлеченного файла. В этом примере я извлек файл из каталога /tmp.

tar -xvzf /tmp/rocket.chat.tgz -C /tmp

Теперь установите Rocketchat. В этой статье для установки используется каталог /opt . Вы можете предпочесть любой каталог.

cd /tmp/bundle/programs/server && npm install

Выход :

sudo mv /tmp/bundle /opt/Rocket.Chat

Настройте сервис Rocket.Chat

Создайте пользователя RocketChat, установите правильные разрешения для каталога приложения Rocket.Chat и создайте сервис Rocket.Chat.

sudo useradd -M rocketchat && sudo usermod -L rocketchat
sudo chown -R rocketchat:rocketchat /opt/Rocket.Chat

Чтобы создать rocketchat.service, выполните следующую команду на своем терминале

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.service 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 ROOT_URL=http://localhost:3000/ PORT=3000
[Install]
WantedBy=multi-user.target
EOF

Пример :

Теперь нам нужно настроить механизм хранения и репликацию MongoDB. После этого включите и запустите mongoDB следующим образом:

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())"

Выход :

Теперь запустите и включите службу Rocket.Chat, используя следующую команду:

sudo systemctl enable rocketchat && sudo systemctl start rocketchat

Проверьте статус сервиса Rocket.Chat»

sudo systemctl status rocketchat

Выход :

Установка Nginx и настройка обратного прокси

Чтобы настроить обратный прокси-сервер nginx для Rocket.Chat, установите nginx, используя следующую команду:

sudo apt install nginx

Создайте конфигурацию виртуального хоста nginx для RocketChat.

sudo nano /etc/nginx/conf.d/rocketchat.conf

Теперь вставьте следующее содержимое и сохраните файл

upstream backend {
server 127.0.0.1:3000;
}

server {
listen 80;

server_name your_rocketchat_domain_name;
access_log /var/log/nginx/rocket.chat.access.log;
error_log /var/log/nginx/rocket.chat.error.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;
}
}

Проверьте файл конфигурации nginx

sudo nginx -t

Перезапустите и включите службу nginx.

sudo systemctl restart nginx
sudo systemctl enable nginx

Теперь войдите в свой домен RocketChat как

http://ваш_rocketchat_домен

Вы получите мастер веб-настройки, завершите его и начнете использовать Rocket.Chat.

Nginx как обратный прокси-сервер SSL

Мы настроили Rocket.Chat только с обратным прокси-сервером HTTP. Чтобы настроить nginx в качестве обратного прокси-сервера SSL, вам потребуются файлы сертификатов. Отредактируйте файл vhost nginx и вставьте следующее содержимое.

sudo nano /etc/nginx/conf.d/rocketchat.conf
upstream backend {
server 127.0.0.1:3000;
}

server {
listen 443 ssl;
Server_name your_rocketchat_domain_name;
client_max_body_size 200M;
access_log /var/log/nginx/rocket.chat.access.log;
error_log /var/log/nginx/rocket.chat.error.log;
ssl_certificate /etc/nginx/certificate.crt;
ssl_certificate_key /etc/nginx/private.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

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-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Nginx-Proxy true;
proxy_redirect off;
}

Примечание :

Создайте или купите сертификат SSL и укажите каталог файла сертификата в следующем параметре конфигурации.

ssl_certificate /etc/nginx/certificate.crt; [Your certificate file]
ssl_certificate_key /etc/nginx/private.key; [Your Private Key file]

Проверьте файл конфигурации nginx

sudo nginx -t

Перезапустите службу nginx

sudo systemctl restart nginx

Доступ к Rocketchat

После настройки обратного прокси-сервера вы можете получить доступ к своему Rocket.Chat, используя URL-адрес:

https://you_rocket_chat_domain

Вы получите мастер веб-настройки Rocket.Chat. Завершите настройку и начните использовать собственный Rocket.Chat.

Заключение

В этой статье мы узнали, как установить и настроить автономный чат Rocket в Ubuntu 20.04. Кроме того, я рассказал, как установить и настроить nginx для обратного прокси-сервера с возможностью шифрования SSL-сертификатов.

Статьи по данной тематике: