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
модуля rocketchat.service
каталоге /etc/systemd/system/
.
sudo nano /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
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 и узнать больше о вашей новой системе чата.
Если у вас возникли проблемы с установкой, не стесняйтесь оставлять комментарии.