Установка Rocket.Chat на Ubuntu Server | Информационные технологии от Вальдемарыча

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

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

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

Подробно о том, как установить Ubuntu Server 18.04 LTS, вы можете прочитать в моем руководстве «Установка Ubuntu Server 18.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.

Далее необходимо подтвердить, что мы доверяем серверу, к которому подключаемся.

Вводим “yes” и нажимаем на кнопку «Enter».

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

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

sudo add-apt-repository ppa:certbot/certbot

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

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

Для установки MongoDB нужно импортировать открытый ключ GPG MongoDB из «https://www.mongodb.org/static/pgp/server-4.2.asc» и добавить новый репозиторий.

Импортируем открытый ключ GPG MongoDB из «https://www.mongodb.org/static/pgp/server-4.2.asc» с помощью команды:

sudo wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -

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

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

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

sudo apt-get update

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

sudo apt install -y nginx certbot python-certbot-nginx gnupg curl nodejs npm build-essential mongodb-org graphicsmagick

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

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

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

sudo npm install -g inherits n

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

sudo n 8.11.4

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

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

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

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

Далее добавим нового пользователя в группу «www-data» с помощью команды:

sudo usermod -a -G rocket www-data

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

sudo chmod 750 /opt/rocket

Теперь переключаемся на ранее созданного пользователя «rocket» с помощью команды:

sudo su - rocket

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

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

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

tar -xzf rocket.chat.tgz

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

rm -f rocket.chat.tgz

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

mv bundle Rocket.Chat

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

cd Rocket.Chat/programs/server

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

npm install

Выходим из-под пользователя «rocket» с помощью команды:

exit

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

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

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

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

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

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

Перезапустим «systemd» для поиска измененных или новых юнитов с помощью команды:

sudo systemctl daemon-reload

Rocket.Chat использует набор реплик MongoDB для повышения производительности.

Настроим набор реплик с помощью команды:

sudo echo -e "replication:\n replSetName: \"rs01\"" | sudo tee -a /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 являться публичным или приватным.

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

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

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

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

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

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

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

Нажимаем на кнопку «Click here to finish registering your workspace».

Указываем логин и пароль от ранее созданной учетной записи и нажимаем на кнопку «Login».

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

Теперь необходимо создать новую учетную запись на https://cloud.rocket.chat для получения дополнительных возможностей по управлению вашим рабочим пространством Rocket.Chat.

На адрес электронной почты, указанный при создании новой учетной записи, созданной ранее, придет письмо, содержащее ссылку для регистрации новой учетной записи на https://cloud.rocket.chat.

В открывшемся окне необходимо два раза указать надежный пароль для создания новой учетной записи на https://cloud.rocket.chat.

В разделе «Workspaces» вы увидите ваш зарегистрированный сервер Rocket.Chat.

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

Автор

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

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

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