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

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

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

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

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

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

sudo apt install openssh-server

Если вы планируете подключиться к серверу, используя операционную систему Windows, то можете воспользоваться PuTTY или MobaXterm.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

sudo apt update

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

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

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

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

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

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

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

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

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

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

sudo npm install -g inherits n

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

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

sudo n 14.18.3

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

sudo certbot renew --dry-run

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

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

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

sudo vim /etc/nginx/nginx.conf

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

sudo nginx -t

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

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

sudo systemctl restart nginx

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

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

sudo systemctl status nginx

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

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

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

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

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

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

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

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

rm -f /tmp/rocket.chat.tgz

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

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

cd /tmp/bundle/programs/server

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

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

npm install

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

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

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

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

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

sudo useradd -M rocketchat

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

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

sudo usermod -L rocketchat

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

sudo systemctl enable mongod

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

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

sudo systemctl start mongod

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

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

sudo systemctl status mongod

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

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

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

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

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

sudo systemctl enable rocketchat

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

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

sudo systemctl start rocketchat

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

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

sudo systemctl status rocketchat

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

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

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

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

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

В поле “Full name” введите имя и фамилию нового пользователя Rocket.Chat.

В поле “Username” укажите логин для нового пользователя Rocket.Chat.

В поле “Email” укажите текущий адрес электронной почты для нового пользователя Rocket.Chat.

В поле “Password” установите надежный пароль для нового пользователя Rocket.Chat.

Нажмите кнопку “Next”.

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

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

В поле “Organization name” введите название вашей организации.

В поле “Organization industry” укажите профиль или сектор вашей организации.

В поле “Organization size” укажите количество сотрудников в вашей организации.

В поле “Country” укажите страну, в которой работает ваша организация.

Нажмите кнопку “Next”.

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

Теперь вам нужно зарегистрировать ваш сервер, чтобы использовать такие услуги, как мобильные push-уведомления, интеграция с внешними поставщиками и многое другое.

В поле “Cloud account email” укажите текущий адрес электронной почты.

Далее вы должны прочитать и принять условия использования предоставляемых услуг.

Нажмите кнопку “Register”.

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

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

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

Найдите письмо и нажмите на кнопку “Verify registration”.

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

Ваш сервер был успешно зарегистрирован.

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

Добро пожаловать в панель управления Rocket.Chat.

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

Мои услуги

💼 Загляните в мой каталог услуг и узнайте, как мы можем сделать вашу технологическую жизнь лучше. Будь то повышение эффективности вашей IT-инфраструктуры, развитие вашей карьеры или расширение технологических горизонтов — я здесь, чтобы помочь вам достичь ваших целей. От DevOps-трансформаций до сборки игровых компьютеров — давайте сделаем ваши технологии непревзойденными!

Пополнить запасы кофе автора

💡 Telegram | Boost
💖 PayPal
🏆 Patreon
💎 GitHub
🥤 BuyMeaCoffee
🍪 Ko-fi

Владимир Михалев
Я - Владимир Михалев, Капитан Docker, но друзья могут называть меня Вальдемарыч.

DevOps комьюнити

Привет! 👋 Если у тебя есть вопросы по установке или настройке, то задайте их мне и другим ИТ-экспертам нашего сообщества: