Как развернуть Rocket.Chat в Ubuntu 18.04

How to Deploy Rocket.Chat on Ubuntu 18.04

18 Сентября 2020 | Ubuntu

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

Как развернуть Rocket.Chat в Ubuntu 18.04

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

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


Введение

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

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

Установка Node.js 

Начните с обновления списка системных пакетов:

sudo apt update 

Установите Node.js, npm и все другие зависимости, необходимые для сборки пакетов npm из исходного кода:

sudo apt install nodejs npm build-essential curl software-properties-common graphicsmagick 

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

Мы собираемся использовать n пакет npm, который позволяет нам интерактивно управлять версиями Node.js.

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

sudo npm install -g inherits n sudo n 8.11.3 

Установка MongoDB 

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

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

Импортируйте открытый ключ MongoDB и включите официальный репозиторий MongoDB с помощью следующей команды:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4 sudo add-apt-repository 'deb [arch=amd64] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse' 


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

sudo apt update sudo apt install mongodb-org 


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

sudo systemctl start mongod sudo systemctl enable mongod 


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

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

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


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

sudo usermod -a -G rocket www-data sudo chmod 750 /opt/rocket 

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

Переход к пользователю rocket :

sudo su - rocket 


    Следующие команды предполагают, что вы в настоящее время работаете как пользователь 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, мы установим необходимые переменные среды и запустим сервер Rocket.Chat

export PORT=3000 export ROOT_URL=http://0.0.0.0: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 с помощью CTRL+C .

Вернитесь к своему пользователю sudo, набрав его, exit и перейдите к следующим шагам.

Создайте модуль Systemd 

Чтобы запустить 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=https://chat.example.com 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; disabled; vendor preset: enabled)
   Active: active (running) since Wed 2018-11-07 14:36:24 PST; 5s ago
 Main PID: 12693 (node)
    Tasks: 10 (limit: 2319)
   CGroup: /system.slice/rocketchat.service
           `-12693 /usr/local/bin/node /opt/rocket/Rocket.Chat/main.js
 

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

sudo systemctl enable rocketchat 


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

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

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

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

sudo nano /etc/nginx/sites-available/chat.example.com.conf 
/etc/nginx/sites-available/chat.example.com.conf
upstream rocketchat_backend {
  server 127.0.0.1:3000;
}

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

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

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

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

    access_log /var/log/nginx/chat.example.com-access.log;
    error_log /var/log/nginx/chat.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;
    }
}
 

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

sudo ln -s /etc/nginx/sites-available/chat.example.com.conf /etc/nginx/sites-enabled/ 


Перезагрузите службу Nginx, чтобы изменения вступили в силу:

sudo systemctl reload nginx 


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

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

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

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




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




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




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




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




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

Вывод 

В этом руководстве вы узнали, как установить Rocket.Chat в Ubuntu 18.04 и как настроить Nginx в качестве обратного прокси.

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


    Комментарии

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

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