Как развернуть Rocket.Chat на CentOS 7

Как развернуть Rocket.Chat на CentOS 7

4 Января 2020 | CentOS

В этом руководстве мы покажем вам, как установить и развернуть Rocket.Chat на сервере CentOS 7 с Nginx в качестве обратного прокси-сервера SSL.

Как развернуть Rocket.Chat на CentOS 7

Rocket.Chat - это полноценная коммуникационная платформа для команд, альтернатива Slack. Он построен на основе Meteor и предоставляет различные функции, включая чат службы поддержки, видеоконференции, обмен файлами, голосовые сообщения, API и многое другое.

Убедитесь, что вы выполнили следующие предварительные условия, прежде чем продолжить этот урок:

  • Сервер CentOS 7, в соответствии с официальными системными требованиями Rocket.Chat, вам нужно как минимум 1 ГБ оперативной памяти.
  • Вы вошли как пользователь с привилегиями sudo .
  • У вас есть доменное имя, указывающее на IP-адрес вашего сервера. В этой статье мы будем использовать example.com.
  • У вас установлен Nginx, если вы не можете установить его, следуя этому руководству.
  • SSL-сертификат. Вы можете создать бесплатную версию в Let's Encrypt или купить ее у другого провайдера.


Установить зависимости

Установите следующие пакеты, необходимые для сборки необходимых npm модулей:

sudo yum install epel-release curl GraphicsMagick gcc-c++


   Далее установите Node.js и npm набрав:

sudo yum install -y nodejs npm


   На момент написания этой статьи рекомендуемой версией Node.js для Rocket.Chat является Node.js v8.11.3.

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

sudo npm install -g inherits nsudo n 8.11.3


   MongoDB - это документно-ориентированная база данных NoSQL, и она используется Rocket.Chat в качестве хранилища данных. Rocket.Chat рекомендует MongoDB версии 3.6.

Мы установим MongoDB, используя yum официальные репозитории MongoDB.

Откройте выбранный вами редактор и создайте следующий файл репозитория:

sudo nano /etc/yum.repos.d/mongodb-org.repo


   Вставьте следующее содержимое в файл:

/etc/yum.repos.d/mongodb-org.repo
[mongodb-org-3.6]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc

Сохраните файл и закройте текстовый редактор .

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

sudo yum install mongodb-org


   После завершения установки включите и запустите службу MongoDB:

sudo systemctl start mongodsudo systemctl enable mongod


Создать нового пользователя системы

   Создайте нового пользователя и группу, которые будут запускать наш экземпляр Rocket.Chat. Для простоты назовем пользователя rocket:

sudo useradd -m -U -r -d /opt/rocket rocket


   Добавьте nginx пользователя в новую группу пользователей и измените /opt/rocket права доступа к каталогу, чтобы Nginx мог получить к нему доступ:

sudo usermod -a -G rocket nginxsudo chmod 750 /opt/rocket

Установка Rocket.Chat 

Переключитесь на пользователя rocket , набрав:

sudo su - rocket


   Загрузите последнюю стабильную версию Rocket.Chat с помощью curl :

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


После завершения загрузки распакуйте архив и переименуйте каталог в Rocket.Chat:

tar zxf rocket.chat.tgzmv bundle Rocket.Chat


   Перейдите в Rocket.Chat/programs/server каталог и установите все необходимые npmпакеты:

cd Rocket.Chat/programs/servernpm install


   Перед созданием модуля systemd и настройкой обратного прокси-сервера с помощью Nginx рекомендуется проверить, была ли установка успешной.

Для этого начните с установки необходимых переменных среды:

export PORT=3000export ROOT_URL=http://example.com:3000/export MONGO_URL=mongodb://localhost:27017/rocketchat


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

cd ../../node main.js


   Если ошибок нет, вы должны увидеть следующий вывод:

➔ +---------------------------------------------+
➔ |                SERVER RUNNING               |
➔ +---------------------------------------------+
➔ |                                             |
➔ |  Rocket.Chat Version: 0.71.1                |
➔ |       NodeJS Version: 8.11.3 - x64          |
➔ |             Platform: linux                 |
➔ |         Process Port: 3000                  |
➔ |             Site URL: http://0.0.0.0:3000/  |
➔ |     ReplicaSet OpLog: Disabled              |
➔ |          Commit Hash: e73dc78ffd            |
➔ |        Commit Branch: HEAD                  |
➔ |                                             |
➔ +---------------------------------------------+


   На данный момент Rocket.Chat установлен на вашем компьютере CentOS 7. Остановите сервер Rocket.Chat CTRL+C и перейдите к следующим шагам.

Создать системный блок 

Чтобы запустить Rocket.Chat как сервис, создайте rocketchat.service файл модуля в /etc/systemd/system/ каталоге:

sudo nano /etc/systemd/system/rocketchat.service

Вставьте следующее содержимое в файл:

/etc/systemd/system/rocketchat.service
[Unit]
Description=Rocket.Chat server
After=network.target nss-lookup.target mongod.target

[Service]
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=rocketchat
User=rocket
Environment=MONGO_URL=mongodb://localhost:27017/rocketchat ROOT_URL=http://example.com:3000/ PORT=3000
ExecStart=/usr/local/bin/node /opt/rocket/Rocket.Chat/main.js

[Install]
WantedBy=multi-user.target

Сохраните и закройте файл.

Уведомите systemd о создании нового файла модуля и запустите службу Rocket.Chat, выполнив:

sudo systemctl daemon-reloadsudo systemctl start rocketchat


   Проверьте статус службы с помощью следующей команды:

sudo systemctl status rocketchat


   Вывод должен выглядеть примерно так:

● rocketchat.service - Rocket.Chat server
   Loaded: loaded (/etc/systemd/system/rocketchat.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2018-04-10 20:30:56 UTC; 8s ago
 Main PID: 32356 (node)
   CGroup: /system.slice/rocketchat.service
           └─32356 /usr/local/bin/node /opt/rocket/Rocket.Chat/main.js


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

sudo systemctl enable rocketchat

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

Если вы следовали нашим инструкциям по установке Nginx на CentOS 7 и защите Nginx с помощью руководств Let's Encrypt на CentOS 7, у вас уже должен быть установлен и настроен Nginx с SSL-сертификатом.

Теперь нам нужно создать новый блок сервера для нашей установки Rocket.Chat:

sudo nano /etc/nginx/conf.d/example.com.conf


   Вставьте следующее содержимое в файл:

/etc/nginx/conf.d/example.com.conf
upstream rocketchat_backend {
  server 127.0.0.1:3000;
}

server {
    listen 80;
    server_name example.com www.example.com;

    include snippets/letsencrypt.conf;
    return 301 https://example.com$request_uri;
}

server {
    listen 443 ssl http2;
    server_name www.example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
    include snippets/ssl.conf;

    return 301 https://example.com$request_uri;
}

server {
    listen 443 ssl http2;
    server_name example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
    include snippets/ssl.conf;
    include snippets/letsencrypt.conf;

    access_log /var/log/nginx/example.com-access.log;
    error_log /var/log/nginx/example.com-error.log;

    location / {
        proxy_pass http://rocketchat_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 systemctl reload nginx

Настройка Rocket.Chat

Откройте браузер и введите: http://chat.example.com.

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

Первый раздел мастера начальной настройки попросит вас настроить вашего администратора:



Когда вы закончите ввод информации администратора, нажмите на Continue кнопку и на следующем шаге введите информацию о вашей организации:


  

Третий раздел мастера начальной настройки предложит вам ввести информацию о сервере:


  

На следующем шаге вас спросят, хотите ли вы использовать предварительно настроенные шлюзы и прокси-серверы Rocket.Chat. Выбор этого параметра предоставит вам доступ к рынку приложений Rocket.Chat, а большинство других функций, таких как push-уведомления, будут работать сразу после установки.


  

Сделайте свой выбор, нажмите на Continue кнопку, и вы будете перенаправлены на следующую страницу, указывающую, что ваше рабочее пространство готово к использованию:


  

Нажмите на Go to your workspace кнопку, и вы будете перенаправлены на панель управления Rocket.Chat, в которой вы зарегистрированы как администратор.

Вывод 

Вы успешно установили Rocket.Chat на вашем сервере CentOS 7. Теперь вы можете начать использовать Rocket.Chat для совместной работы с вашей командой, обмена файлами и общения в реальном времени.


    Комментарии

    Если у вас есть вопросы, не стесняйтесь оставлять комментарии ниже.

Загрузка комментариев...