Данная статья предназначена для тех, кто искал подробное и понятное руководство о том, как установить Rocket.Chat на Ubuntu Server.

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

В этом руководстве мы будем рассматривать тот случай, когда у вас уже есть сервер с установленной на нем операционной системой Ubuntu Server 20.04 LTS.

Подробно о том, как установить Ubuntu Server 20.04 LTS, вы можете прочитать в моем руководстве «Установка Ubuntu Server 20.04 LTS».

Кроме того, на сервер должен быть установлен OpenSSH, а также открыт 22 порт, чтобы иметь возможность подключаться к серверу по протоколу SSH.

Для установки OpenSSH на сервер вы можете воспользоваться командой:

sudo apt-get install openssh-server

Если вы планируете подключиться к серверу, используя операционную систему Windows, то можете воспользоваться PuTTY — свободно распространяемым клиентом для различных протоколов удаленного доступа, включая SSH, Telnet, rlogin.

В данном руководстве рассматривается подключение к серверу при помощи терминального эмулятора iTerm2, установленного на операционную систему macOS.

Обратите внимание, вам потребуется открыть следующие порты TCP для доступа к вашему серверу:

  • 80 — для получения бесплатного криптографического сертификата через центр сертификации Let’s Encrypt.
  • 443 — для доступа к веб-интерфейсу Rocket.Chat.

Подключаемся к серверу, на который планируется установить Rocket.Chat.

Для получения и последующего обновления бесплатного SSL-сертификата мы будем использовать центр сертификации Let’s Encrypt, а также программный клиент Certbot, который призван максимально упростить получение и обновление сертификата через центр сертификации Let’s Encrypt.

Обратите внимание, в данном руководстве в качестве системы для управления базами данных будет использоваться MongoDB, а в качестве веб-сервера — Nginx.

Для установки MongoDB нужно импортировать открытый ключ GPG MongoDB и добавить новый репозиторий.

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

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4

Добавим репозиторий MongoDB с помощью команды:

echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list

Обновим локальный индекс пакетов до последних изменений в репозиториях с помощью команды:

sudo apt update

Обеспечим возможность установки Node.js через менеджер пакетов с помощью команды:

curl -sL https://deb.nodesource.com/setup_12.x | sudo bash -

Теперь установим пакеты, необходимые для работы Rocket.Chat, с помощью команды:

sudo apt install -y nginx certbot python3-certbot-nginx nodejs build-essential mongodb-org graphicsmagick

Обратите внимание, в данном руководстве в качестве системы для управления базами данных будет использоваться MongoDB, а в качестве веб-сервера — Nginx.

Для корректной работы Rocket.Chat рекомендуется использовать Node.js версии 12.14.0.

Установим инструмент под названием «n», чтобы можно было изменить версию Node.js, с помощью команды:

sudo npm install -g inherits n

Далее установим Node.js версии 12.14.0 с помощью команды:

sudo n 12.14.0

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

Для получения и последующего обновления бесплатного SSL-сертификата мы будем использовать центр сертификации Let’s Encrypt, а также программный клиент Certbot, который призван максимально упростить получение и обновление сертификата через центр сертификации Let’s Encrypt.

В данном руководстве для доступа к панели управления Rocket.Chat из сети Интернет будет использоваться субдомен rocketchat.heyvaldemar.net. Вам нужно будет указать ваш домен или субдомен, по которому ваша панель управления Rocket.Chat будет доступна из сети Интернет.

Запросим криптографический сертификат с помощью команды:

sudo certbot --nginx -d rocketchat.heyvaldemar.net

Далее указываем адрес электронной почты, на который Let’s Encrypt будет присылать уведомления об истечении срока криптографического сертификата, и нажимаем на кнопку «Enter».

На следующем этапе необходимо прочитать и принять условия использования предоставляемых сервисов.

Нажимаем на кнопку «a», затем «Enter», если вы согласны с условиями использования предоставляемых сервисов.

На следующем этапе необходимо выбрать: хотите ли вы поделиться указанным ранее адресом электронной почты с Electronic Frontier Foundation для получения информационных рассылок.

Нажимаем на кнопку «n», затем «Enter».

На следующем этапе необходимо выбрать: хотите ли вы, чтобы в конфигурационный файл Nginx были автоматически добавлены параметры для автоматического перенаправления HTTP-трафика на HTTPS.

Нажимаем на кнопку «1», затем «Enter».

Обратите внимание, криптографические сертификаты, полученные через центр сертификации Let’s Encrypt, действительны в течение девяноста дней. Certbot автоматически добавляет скрипт для обновления сертификата в планировщик задач, и скрипт запускается два раза в день, автоматически обновляя любой криптографический сертификат, срок действия которого истекает в течение тридцати дней.

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

sudo certbot renew --dry-run

Теперь настроим Nginx для последующей работы с Rocket.Chat.

В начале необходимо внести изменения в конфигурационный файл Nginx, открыв его в текстовом редакторе, с помощью команды:

sudo vim /etc/nginx/nginx.conf

Нажимаем на кнопку «i», чтобы перейти в режим редактирования, находим параметр «server_names_hash_bucket_size 64;» и раскомментируем его, удалив символ «#».

Теперь нажмите на кнопку «Esc», чтобы выйти из режима редактирования, а затем введите «:x» и нажмите на кнопку «Enter», чтобы сохранить изменения и выйти из редактора.

Теперь нужно создать блок (в Apache называется виртуальных хост), с которым в дальнейшем будет работать Rocket.Chat.

Создадим файл виртуального хоста, воспользовавшись текстовым редактором, с помощью команды:

sudo vim /etc/nginx/sites-available/rocketchat.heyvaldemar.net

В данном руководстве для доступа к Rocket.Chat из сети Интернет будет использоваться субдомен rocketchat.heyvaldemar.net. Вам нужно будет указать ваш домен или субдомен, по которому ваш Rocket.Chat будет доступен из сети Интернет.

Нажимаем на кнопку «i», чтобы перейти в режим редактирования, затем вставляем следующую конфигурацию для работы веб-сервера:

В данном руководстве для доступа к Rocket.Chat из сети Интернет будет использоваться субдомен rocketchat.heyvaldemar.net. Вам нужно будет указать ваш домен или субдомен, по которому ваш Rocket.Chat будет доступен из сети Интернет.

Теперь нажмите на кнопку «Esc», чтобы выйти из режима редактирования, а затем введите «:x» и нажмите на кнопку «Enter», чтобы сохранить изменения и выйти из редактора.

Активируем созданный блок с помощью команды:

sudo ln -s /etc/nginx/sites-available/rocketchat.heyvaldemar.net /etc/nginx/sites-enabled/

Деактивируем блок, созданный по умолчанию, с помощью команды:

sudo unlink /etc/nginx/sites-enabled/default

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

sudo nginx -t

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

sudo systemctl restart nginx

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

sudo systemctl status nginx

Теперь загрузим архив «rocket.chat.tgz», содержащий файлы для установки Rocket.Chat, с помощью команды:

curl -L https://releases.rocket.chat/latest/download -o /tmp/rocket.chat.tgz

Распакуем загруженный архив «rocket.chat.tgz» с помощью команды:

tar -xzf /tmp/rocket.chat.tgz -C /tmp

Удалим ранее загруженный архив «rocket.chat.tgz», содержащий файлы для установки Rocket.Chat, с помощью команды:

rm -f /tmp/rocket.chat.tgz

Перейдем в папку «server» с помощью команды:

cd /tmp/bundle/programs/server

Теперь запустим установку Rocket.Chat с помощью команды:

npm install

Переименуем папку «bundle» в «Rocket.Chat» с помощью команды:

sudo mv /tmp/bundle /opt/Rocket.Chat

Теперь создадим пользователя «rocket», который будет использоваться для запуска Rocket.Chat, с помощью команды:

sudo useradd -M rocketchat

Заблокируем пользователя с помощью команды:

sudo usermod -L rocketchat

Назначим корректные права на каталог «/opt/Rocket.Chat» с помощью команды:

sudo chown -R rocketchat:rocketchat /opt/Rocket.Chat

Далее необходимо настроить автозапуск сервиса Rocket.Chat при запуске операционной системы.

Создадим юнит, который будет содержать необходимую конфигурацию для сервиса Rocket.Chat в каталоге «/etc/systemd/system/», с помощью команды:

sudo vim /lib/systemd/system/rocketchat.service

Нажимаем на кнопку «i», чтобы перейти в режим редактирования, затем вставляем следующую конфигурацию:

В данном руководстве для доступа к Rocket.Chat из сети Интернет будет использоваться субдомен rocketchat.heyvaldemar.net. Вам нужно будет указать ваш домен или субдомен, по которому ваш Rocket.Chat будет доступен из сети Интернет.

Теперь нажмите на кнопку «Esc», чтобы выйти из режима редактирования, а затем введите «:x» и нажмите на кнопку «Enter», чтобы сохранить изменения и выйти из редактора.

Теперь внесем изменения в конфигурацию MongoDB с помощью команды:

sudo sed -i "s/^# engine:/ engine: mmapv1/" /etc/mongod.conf

Далее внесем еще одно изменение в конфигурацию MongoDB с помощью команды:

sudo sed -i "s/^#replication:/replication:\n replSetName: rs01/" /etc/mongod.conf

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

sudo systemctl enable mongod

Запускаем MongoDB с помощью команды:

sudo systemctl start mongod

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

sudo systemctl status mongod

Проверим, что MongoDB корректно работает с помощью команды:

mongo --eval "printjson(rs.initiate())"

Включаем автозапуск сервиса Rocket.Chat при запуске операционной системы с помощью команды:

sudo systemctl enable rocketchat

Запускаем Rocket.Chat с помощью команды:

sudo systemctl start rocketchat

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

sudo systemctl status rocketchat

Все необходимые сервисы успешно запущены.

Теперь нужно подождать несколько минут, затем для продолжения процесса установки Rocket.Chat необходимо с рабочей станции перейти по ссылке https://rocketchat.heyvaldemar.net, где rocketchat.heyvaldemar.net — имя моего сервера. Соответственно, вам необходимо указать имя или IP-адрес вашего сервера с установленным Rocket.Chat.

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

В поле «Name» указываем имя для нового пользователя Rocket.Chat.

В поле «Username» указываем логин для нового пользователя Rocket.Chat.

В поле «Organization Email» указываем актуальный адрес электронной почты для нового пользователя Rocket.Chat.

В поле «Password» указываем надежный пароль для нового пользователя Rocket.Chat.

Нажимаем на кнопку «Continue».

Теперь необходимо заполнить информацию о вашей организации.

В поле «Organization Type» указываем тип вашей организации.

В поле «Organization Name» указываем название вашей организации.

В поле «Industry» указываем профиль вашей организации.

В поле «Size» указываем количество сотрудников в вашей организации.

В поле «Country» указываем страну, в которой ваша организация осуществляет деятельность.

В поле «Website» указываем адрес веб-сайта вашей организации.

Нажимаем на кнопку «Continue».

Далее необходимо заполнить информацию о вашем сервере Rocket.Chat.

В поле «Site Name» указываем желаемое имя сайта Rocket.Chat.

В поле «Language» указываем язык для вашего сервера Rocket.Chat.

В поле «Server Type» указываем будет ли ваш сервер Rocket.Chat являться публичным или приватным.

В поле «Auto opt in new users for Two Factor via Email» указываем будет включена двухфакторная аутентификация для пользователей Rocket.Chat

Нажимаем на кнопку «Continue».

Выбираем «Register to access», чтобы использовать сервисы, такие как мобильные push-уведомления и прочие от Rocket.Chat Technologies Corp.

Нажимаем на кнопку «Continue».

Установка Rocket.Chat успешно завершена.

Нажимаем на кнопку «Go to your workspace».

Добро пожаловать в Rocket.Chat.

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

На адрес электронной почты, указанный при создании новой учетной записи (созданной ранее), придет письмо с сылкой для регистрации вашего сервера Rocket.Chat.

Нажимаем на кнопку «Login or Create an Account to get started!».

Если у вас еще нет учетной записи на веб-сайте https://cloud.rocket.chat, то зарегистрируйтесь, нажав на кнопку «Register now», для получения дополнительных возможностей по управлению вашим рабочим пространством Rocket.Chat.

Если у вас уже есть учетная запись на веб-сайте https://cloud.rocket.chat, то в поле “E-mail Address” указываем адрес электронной почты, привязанной к учетной записи Rocket.Chat Cloud.

Затем указываем пароль от учетной записи и нажимаем на кнопку “Log in”.

В разделе «Workspaces» нажимаем на кнопку «Register self-managed».

Далее необходимо выбрать: подключен ли ваш сервер к сети Интернет.

В данном руководстве рассматривается сервер Rocket.Chat, подключенный к сети Интернет.

Выбираем «Internet access» и нажимаем на кнопку «Continue».

Сохраняем полученный код регистрации и нажимаем на кнопку «Close».

Возвращаемся в панель управления Rocket.Chat.

Нажимаем на значок с изображением трех точек в левом верхнем углу экрана и выбираем “Administration”.

Переходим в раздел «Connectivity Services», в поле «Token» указываем ранее полученный код регистрации и нажимаем на кнопку «Connect».

Сервер успешно зарегистрирован.

Теперь необходимо войти под учетной записью Rocket.Chat Cloud, чтобы получить доступ к магазину приложений и другим сервисам Rocket.Chat.

Нажимаем на кнопку «Login to Rocket.Chat Cloud».

В поле “E-mail Address” указываем адрес электронной почты, привязанной к учетной записи Rocket.Chat Cloud.

Затем указываем пароль от учетной записи и нажимаем на кнопку “Log in”.

Далее нажимаем на кнопку «Authorization».

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

Вход под учетной записью Rocket.Chat Cloud успешно осуществлен.

Также в разделе «Workspaces» на веб-сайте https://cloud.rocket.chat вы увидите ваш зарегистрированный сервер Rocket.Chat.

Ссылки для загрузки клиента Rocket.Chat вы можете найти на официальном сайте https://rocket.chat/install.

Author

Привет, я Владимир Михалев, но друзья зовут меня Вальдемарыч. Я обладаю практическим опытом проектирования и сопровождения различных информационных систем. На моем веб-сайте ты найдешь подробные и понятные руководства по настройке ИТ-решений. Окунись в океан, полный позитива и технологий! По вопросам сотрудничества: callvaldemar@gmail.com

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.