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

Установка Rocket.Chat с Nginx в Ubuntu 18.04

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

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

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

Предпосылки

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

  • Сервер 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 в Ubuntu 18.04 и по защите Nginx с помощью Let's Encrypt в Ubuntu 18.04, у вас уже должен быть установлен и настроен 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-уведомлений и многого другого.

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

Мастер настройки 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 в Ubuntu 18.04 и как настроить Nginx в качестве обратного прокси-сервера.

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

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

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

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

Источник

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

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