
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 nsudo n 8.11.3
Установка MongoDB
MongoDB — это документоориентированная NoSQL база данных, используемая Rocket.Chat в качестве хранилища данных.
Мы установим MongoDB из официальных репозиториев MongoDB.
Импортируйте открытый ключ MongoDB и включите официальный репозиторий MongoDB с помощью следующей команды:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4sudo add-apt-repository 'deb [arch=amd64] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse'
После включения репозитория apt обновите список пакетов и установите MongoDB, введя:
sudo apt updatesudo apt install mongodb-org
После завершения установки включите и запустите службу MongoDB:
sudo systemctl start mongodsudo 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-datasudo 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.tgzmv bundle Rocket.Chat
Перейдите в каталог Rocket.Chat/programs/server и установите все необходимые пакеты npm:
cd Rocket.Chat/programs/servernpm install
Чтобы протестировать нашу установку перед созданием модуля systemd и настройкой обратного прокси-сервера с Nginx, нам нужно установить необходимые переменные среды и запустить сервер Rocket.Chat.
export PORT=3000export 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-reloadsudo 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-уведомлений и многого другого.
В первом разделе мастера начальной настройки вам будет предложено настроить учетную запись администратора:

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

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

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

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

Нажмите кнопку Go to your workspace , и вы будете перенаправлены на панель управления Rocket.Chat, войдя в систему как администратор.
Заключение
В этом руководстве вы узнали, как установить Rocket.Chat в Ubuntu 18.04 и как настроить Nginx в качестве обратного прокси-сервера.
Теперь вам следует посетить страницу документации Rocket.Chat и узнать больше о вашей новой системе чата.
Если у вас возникли проблемы с установкой, не стесняйтесь оставлять комментарии.
rocketchat nodejs ubuntu mongodb Не используете Ubuntu 18.04?
Выберите другую ОС: центос 7
Связанные руководства