Как установить сервер Rocket.Chat в Debian 10

Rocket.Chat - это бесплатное программное обеспечение для командного чата с открытым исходным кодом. Он предоставляет такие функции, как аудио- и видеоконференции, гостевой доступ, совместное использование экрана, общий доступ к файлам, LiveChat, синхронизация групп LDAP, двухфакторная аутентификация (2FA), шифрование E2E, SSO и многое другое. Инструмент использует MongoDB в качестве базы данных и JavaScript runtime Node.js.

Требования: У вас есть привилегии sudo или доступ к пользователю root.

Подготовка к установке

1. Перед установкой Rocket.Chat обязательно обновите кеш пакетов APT и программное обеспечение, уже установленное на сервере:

apt update && apt upgrade -y

2. Из терминала введите следующую команду для импорта открытого ключа GPG MongoDB

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

3. Операция должна ответить с OK. Однако, если вы получите сообщение об ошибке, указывающее, что gnupg не установлен, установите пакет выполнив следующую команду

sudo apt-get install gnupg

4. После установки повторите попытку импорта ключа

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

5. Создайте файл списка с помощью команды

echo "deb http://repo.mongodb.org/apt/debian buster / mongodb-org / 4.2 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list

5. Подготовьте установку Node.js с помощью следующей команды:

apt install -y curl && curl -sL https://deb.nodesource.com/setup_12.x | bash -

6. Обновите кэш пакетов apt и установите MongoDB и Node.js:

apt update && apt install build-essential mongodb-org nodejs graphicsmagick -y

7. Установка наследуется через npm, менеджер пакетов Node.js и версию узла, необходимую для Rocket.Chat:

npm install -g inherits n && n 12.14.0

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

1 Загрузите последнюю версию Rocket.Chat:

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

2. Извлеките загруженный файл:

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

3. Запустите установку приложения:

cd /tmp/bundle/programs/server && npm install

4. Переместите приложение в конечный пункт назначения:

mv /tmp/bundle /opt/Rocket.Chat
Важное замечание: Не выполняйте команду  npm install  из под root пользователя чтоб не вызвать ошибку при компиляции. Скачайте файл  https://releases.rocket.chat/latest/download  и извлеките файлы из архива в домашнюю папку для последующей компиляции, установив права на папку bundle для чтения и записи. Перейдите в каталог  home/ваш_user/ bundle/programs/server  Выполните команду  npm install . После компиляции скопируйте из под root пользователя содержимое папки bundle в домашнем каталоге в папку расположенном по адресу  /opt/Rocket.Chat  предварительно создав папку Rocket.Chat

Настройка службы Rocket.Chat

1. Создайте пользователя, под которым будет запускаться приложение:

useradd -M rocketchat && usermod -L rocketchat

2. Установите права собственности и разрешения для приложения:

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

3. Создайте файл /lib/systemd/system/rocketchat.service и откройте его в своем любимом текстовом редакторе. Скопируйте в него следующее содержимое, чтобы создать служебный файл для Rocket.chat:

[Unit]

Description=Rocket.Chat Server
After=network.target remote-fs.target nss-lookup.target nginx.target mongod.target

[Service]

ExecStart=/usr/local/bin/node /opt/Rocket.Chat/main.js
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=rocketchat
User=rocketchat
Environment=MONGO_URL=mongodb://localhost:27017/rocketchat ROOT_URL=http://rocketchat.example.com/ MONGO_OPLOG_URL=mongodb://localhost:27017/local?replSet=rs01 PORT=3000

[Install]

WantedBy=multi-user.target

Важно: замените  rocketchat.example.com  домен своим экземпляром Rocket.Chat.

Настройка набора реплик MongoDB

1. Запустите следующий код, чтобы добавить набор реплик в конфигурацию MongoDB:

echo -e "replication:\n replSetName: \"rs01\"" | tee -a /etc/mongod.conf

2. Включите и запустите службу MongoDB:

systemctl enable mongod && systemctl start mongod

Настройка обратного прокси-сервера Nginx

Rocket.Chat может функционировать как сервер самостоятельно, но использование обратного прокси-сервера Nginx добавляет уровень безопасности, расширенные функции балансировки нагрузки и ускорения, которые само приложение не предоставляет.
1. Установите Nginx:

apt install nginx

2. Создайте и откройте файл /etc/nginx/sites-available/rocketchat.example.com и вставьте в него следующее содержимое, чтобы создать блок прокси-сервера для Rocket.Chat:

# Upstreams
upstream backend {
server 127.0.0.1:3000;
}

# Proxy Server
server {
listen 80;
server_name rocketchat.example.com;

# You can increase the limit if your need to.
client_max_body_size 200M;

error_log /var/log/nginx/rocketchat.access.log;

location / {
proxy_pass http://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;
}
}

Важное замечание: замените  rocketchat.example.com  доменное имя, под которым будет доступен ваш экземпляр Rocket Chat.

3. Создайте символическую ссылку для активации прокси в Nginx:

ln -s /etc/nginx/sites-available/rocketchat.example.com /etc/nginx/sites-enabled/rocketchat.example.com

4. Проверьте конфигурацию на наличие синтаксических ошибок, запустив  nginx -t . Вы должны увидеть результат, подобный следующему:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Настройка сервиса Rocket.Chat

1. Запустите и включите сервис Rocket.Chat:

systemctl enable rocketchat && systemctl start rocketchat

2. Перезапустите веб-прокси Nginx:

service nginx restart

3. Откройте веб - браузер и введите имя домена, например:  http://rocketchat.example.com/ . Мастер настройки Rocket.Chat появится в вашем браузере:

Введите вашу личную информацию:

  • Ваше имя
  • Ваше имя администратора
  • Ваша электронная почта
  • Ваш пароль.

Нажмите «Продолжить», чтобы перейти к следующему шагу.

На следующей странице вас попросят предоставить информацию о вашей организации. Заполните необходимую информацию и нажмите «Продолжить» .

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

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

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

5. Нажмите кнопку меню, затем Администрирование, чтобы получить доступ к интерфейсу администратора вашего чата. Здесь вы можете настроить внешний вид вашего чата, а также дополнительные сервисы, такие как IRC-мост, боты или сервисы OAuth:

Чтобы использовать Rocket.Chat непосредственно на своем ПК или Mac или с мобильного телефона, загрузите бесплатное приложение прямо с веб-сайта Rocket.Chat. Для получения дополнительной информации и дополнительных настроек конфигурации вашего сообщества, обратитесь к официальной документации