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

Развертывание Rocket.Chat Nginx на CentOS 7

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

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

Предпосылки

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

  • Сервер 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 n sudo 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 mongod sudo systemctl enable mongod

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

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

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

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

 sudo usermod -a -G rocket nginx sudo 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.tgz mv bundle Rocket.Chat

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

 cd Rocket.Chat/programs/server npm install

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

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

 export PORT=3000 export 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-reload sudo 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-уведомлений и многого другого.

В первом разделе мастера начальной настройки вам будет предложено настроить учетную запись администратора:

Мастер настройки Rocket.Chat — Шаг 1

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

Мастер настройки Rocket.Chat — Шаг 2

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

Мастер настройки Rocket.Chat — Шаг 3

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

Мастер настройки Rocket.Chat — Шаг 4

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

Мастер настройки Rocket.Chat — Шаг 4

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

Заключение

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

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

rocketchat nodejs centos mongodb Не используете CentOS 7?
Выберите другую ОС:
убунту 18.04

Связанные руководства

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *