Rocket chat инструкция пользователя на русском

Введение

В этой статье мы расскажем, что такое Rocket Chat, установим и настроим его. Также выпустим бесплатный TLS-сертификат от Let’s Encrypt и немного опробуем Rocket Chat в действии.

Rocket Chat — это мессенджер с открытым исходным кодом. Пользователи могут создавать свои каналы и группы, обмениваться файлами, создавать видеоконференции. В отличие от Slack, Microsoft Teams и прочих корпоративных чатов, Rocket Chat можно установить на свой собственный сервер. Rocket Chat может интегрироваться с Active Directory, Twitter, GitHub, Trello и многими другими сервисами, есть поддержка разных языков.

Пользоваться чатом можно в браузере, также есть клиенты для всех популярных операционных систем: Windows, Linux, MacOS, Android, iOS.

Создание виртуальной машины

Мы будем устанавливать Rocket.Chat на виртуальную машину с Ubuntu 22.04. В консоли облачной платформы Selectel заходим в раздел Облачная платформа, далее Серверы и создаем новый сервер.

В разделе Источник выберем образ Ubuntu 22.04 LTS. Выбираем конфигурацию с 2 vCPU и 8 ГБ оперативной памяти, этого вполне хватит для небольшого сервера. Также выберем HDD-диск, достаточно будет объема 20 ГБ. Обязательно подключим внешний IP-адрес, чтобы сервер был доступен из интернета. Также выберите ваш SSH-ключ, чтобы вы смогли подключиться к серверу по SSH.

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

Облачные серверы Selectel

Виртуальные машины в Москве, Санкт-Петербурге, Новосибирске и Ташкенте с оплатой по потреблению и готовностью меньше минуты.

Узнать подробности

Установка и настройка MongoDB

Rocket Chat использует MongoDB для хранения данных. Поэтому прежде чем приступить к установке чата, нужно установить и запустить MongoDB.

Мы будем использовать пакет mongodb-org, который предоставляют разработчики MongoDB. Если у вас в системе уже установлен пакет mongodb, предоставляемый стандартными репозиториями Ubuntu, его придется удалить, т.к. эти пакеты конфликтуют.

Добавим официальный репозиторий MongoDB и затем обновим список доступных пакетов:

wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
sudo apt-get update

Теперь можно установить MongoDB командой:

sudo apt-get install -y mongodb-org

Теперь нам нужно внести изменения в конфигурационный файл /etc/mongod.conf. Для начала, добавим в раздел storage параметр engine: wiredTiger, чтобы в итоге получилось вот так:

storage:
  engine: wiredTiger

Затем включим репликацию, добавив такую запись:

replication:
  replSetName: rs01

Установка и настройка MongoDB завершена. Для начала запустим сам кластер:

sudo systemctl enable --now mongod

Далее инициализируем replicaset:

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

Установка Node.js

В зависимости от используемой версии Rocket Chat, нужно установить ту или иную версию NodeJS. Для этого перейдите на страницу релизов Rocket Chat и посмотрите, какая нужна версия NodeJS. На момент написания этой статьи нужна версия 14, поэтому мы установим NodeJS командой:

curl -fsSL https://deb.nodesource.com/setup_14.x | sudo -E bash - && sudo apt-get install -y nodejs

Если вам нужна другая версия, просто замените число 14 в команде выше на нужное вам.

Установка и настройка сервера Rocket Chat

Есть несколько способов установки Rocket Chat на Ubuntu: через контейнер docker compose, snap-пакет или классическая установка. Мы рассмотрим классическую установку через пакеты Ubuntu.

Для начала установим пакеты, которые необходимы для скачивания, распаковки и установки Rocket Chat:

sudo apt install -y curl build-essential graphicsmagick

Скачиваем самую последнюю версию Rocket Chat и распаковываем архив:

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

Переходим в каталог с распакованными файлами и устанавливаем необходимые NodeJS-пакеты:

cd /tmp/bundle/programs/server
npm install --production

Если вы выполняете установку от root-аккаунта (хотя так делать не рекомендуется), вместо последней команды используйте вот эту:

sudo npm install --unsafe-perm --production.

Перемещаем готовый дистрибутив Rocket Chat в каталог opt:

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

Теперь нужно создать в системе пользователя, из под которого будет запускаться сервер, и выдать ему необходимые полномочия на нужные каталоги:

sudo useradd -M rocketchat && sudo usermod -L rocketchat
sudo chown -R rocketchat:rocketchat /opt/Rocket.Chat

Теперь создадим файл службы для systemd. Обратите внимание, что для примера мы используем домен chat.my-domain.com — именно на нем будет работать сервер. Вам необходимо подставить свое имя домена.

cat << EOF | sudo tee -a /lib/systemd/system/rocketchat.service
[Unit]
Description=The Rocket.Chat server
After=network.target remote-fs.target nss-lookup.target nginx.service mongod.service

[Service]
Environment=ROOT_URL=https://chat.my-domain.com
Environment=PORT=3000
Environment=MONGO_URL=mongodb://localhost:27017/rocketchat?replicaSet=rs01
Environment=MONGO_OPLOG_URL=mongodb://localhost:27017/local?replicaSet=rs01
ExecStart=node /opt/Rocket.Chat/main.js
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=rocketchat
User=rocketchat

[Install]
WantedBy=multi-user.target
EOF

Теперь запустим Rocket Chat и сразу же добавим его в автозагрузку:

sudo systemctl enable --now rocketchat

Rocket Chat готов к работе, но пока он работает на протоколе http и не шифрует трафик. Далее мы получим бесплатный сертификат от сервиса Let’s Encrypt и добавим поддержку TLS в наш сервер.

Настройка SSL и обратного прокси nginx

Для получения TLS-сертификата мы будем использовать центр сертификации Let’s Encrypt.

Напоминаем, что мы для примера используем домен chat.my-domain.com, а вам нужно указывать свой.

Для начала установим утилиту certbot, которая автоматически выпускает и обновляет TLS-сертификаты.

sudo apt install -y certbot

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

sudo certbot --nginx -d chat.my-domain.com

Далее соглашаемся с условиями использования сервиса и указываем адрес электронной почты, на которой будут приходить уведомления об истечении срока действия сертификата. На следующем шаге certbot предложит автоматически добавить в конфигурационный файл nginx правила для перенаправления трафика с HTTP на HTTPS – согласитесь.

После этого certbot выпустит и скачает TLS-сертификат. Он будет находиться в каталоге /etc/letsencrypt/live/. Также certbot запланирует задачу по автоматическому обновлению истекающих сертификатов. Так что вам даже не нужно следить за сроком действия сертификатов, certbot сделает все сам.

Теперь настроим nginx в качестве обратного прокси, чтобы он перенаправлял трафик с порта 443 на порт 3000, где у нас запущен Rocket Chat. Отредактируем файл /etc/nginx/nginx.conf — раскомментируем параметр server_names_hash_bucket_size 64.

Далее настроим виртуальный хост. Открываем на редактирование файл /etc/nginx/sites-enabled/default и полностью заменяем его содержимое следующей конфигурацией:

    upstream backend {
	server 127.0.0.1:3000;
}

server {
	listen 443;
	server_name chat.my-domain.com;

	client_max_body_size 200M;

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

	ssl on;
	ssl_certificate /etc/letsencrypt/live/chat.my-domain.com/fullchain.pem;
	ssl_certificate_key /etc/letsencrypt/live/chat.my-domain.com/privkey.pem;
	ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # don’t use SSLv3 ref: POODLE

	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-Forwarded-For $proxy_add_x_forwarded_for;
    	proxy_set_header X-Forwarded-Proto https;
    	proxy_set_header X-Nginx-Proxy true;

    	proxy_redirect off;
	}
}

Перезапускаем nginx, чтобы применить новые настройки:

    sudo systemctl restart nginx

Наш сервер Rocket Chat установлен и готов к работе.

Нужна помощь с настройкой?

Запишитесь на бесплатную консультацию по Rocket.Chat .

Оставить заявку

Установка клиента

Теперь попробуем подключиться к серверу и отправить сообщение. Скачиваем клиент для своей платформы с официального сайта Rocket Chat. Для подключения нужно указать адрес вашего сервера.

Обратите внимание, что мы уже не указываем порт 3000, на котором на самом деле запущен Rocket Chat. Мы лишь указываем протокол https, который по умолчанию адресуется на порт 443, где у нас запущен прокси. И уже затем nginx сам перенаправит трафик на порт 3000.

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

Теперь попробуем добавление нового пользователя и отправку сообщений в общий чат. Для этого зайдем в меню Administration -> Workspace -> Users, и нажмем кнопку New. Укажем данные нового пользователя и отметим галочку Require password change, чтобы при первом ходе пользователь обязательно сменил пароль. Также не забудьте присвоить ему роль user, которая должна быть у всех пользователей.

Теперь вернемся в главное окно чата. После создания сервера, по умолчанию создается канал general, куда автоматически добавляются все пользователи. Давайте напишем туда сообщение от текущего аккаунта администратора.

Теперь логинимся от имени вновь созданного пользователя. Для этого в браузере переходим в веб-версию чата по адресу https://chat.my-domain.com. Залогинимся с данными нового пользователя и мы увидим этот же самый канал, в котором есть наше сообщение от другого аккаунта.

Заключение

Мы установили и настроили Rocket Chat. Также выпустили бесплатный TLS-сертификат и настроили обратный прокси. Установили клиентское приложение и показали создание нового пользователя RocketChat. 

Когда дело доходит до командного чата, большинство людей думают о Slack. Это позволяет членам команды легко взаимодействовать друг с другом и сотрудничать. Slack имеет множество преимуществ, таких как боты, видеочат, стикеры и простота использования. Тем не менее, это инструмент с закрытым исходным кодом и стоит денег. В результате это не всеобщее любимое приложение.

К счастью, есть отличные альтернативы, в том числе Rocket Chat, автономная альтернатива Slack с открытым исходным кодом и сопоставимыми функциями. В этом руководстве мы рассмотрим, как заставить Rocket Chat работать на вашем сервере Linux, как подключиться к нему, создать новые каналы и т. Д.

Требования к оборудованию

  • Дистрибутив сервера Linux, позволяющий запускать и устанавливать snapd
  • любой умеренно мощный старый настольный ПК (эпоха DDR-2 или выше), который может оставаться включенным в любое время и выступать в качестве сервера
  • VPS или любой другой тип сервера корпоративного уровня

Rocket Chat распространяется только в виде пакета snap. На сегодняшний день все основные дистрибутивы Linux имеют возможность запускать snapd на сервере и на рабочем столе (инструментарий пакета snap). В этом руководстве основное внимание будет уделено серверу Ubuntu, так как он имеет пакеты snapd и snap прямо из коробки. На официальной странице загрузки Rocket Chat есть ссылка, которая инструктирует пользователей, как заставить Snaps работать с несколькими дистрибутивами. Кроме того, может помочь это руководство.

Установите сервер Rocket Chat с помощью оснастки:

 sudo snap  установить rocketchat-сервер

После установки «rocketchat-server» пора приступить к настройке. Начните с использования ifconfig, а затем найдите локальный IP-адрес. Зная адрес, откройте его в веб-браузере на планшете, смартфоне или компьютере.

Например: ip-адрес: 3000.

rocket-chat-register

Использование Rocket Chat

Как и серверное приложение Rocket Chat, клиент рабочего стола чата имеет клиент Linux, распространяемый через оснастку. Для тех, кто работает на других платформах, доступны приложения. Поддерживаются Android, iOS, Windows и Mac, а также веб-интерфейс через IP-адрес сервера.

 sudo snap  установить rocketchat-рабочий стол

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

ракета-чат-регистрация-имя пользователя

По умолчанию Rocket Chat настраивать не нужно. Однако пользователи могут бесконечно настраивать его, чтобы сделать сервис уникальным. Чтобы получить доступ к огромному количеству параметров настройки, нажмите кнопку со стрелкой рядом с пользователем. На открывшейся панели выберите «Администрирование». Это показывает множество настроек. Давайте рассмотрим некоторые из наиболее важных настроек, которые можно изменить.

Импорт данных

У вас есть сервер Hipchat? Ваша команда сейчас работает в Slack? Те, кто переходит на Rocket Chat, могут легко импортировать данные через раздел Импорт. В настоящее время программное обеспечение поддерживает импорт данных из файлов Slack, Hipchat, Hipchat Enterprise и CSV.

ракета-чат-импорт

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

IRC

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

ракета-чат-irc

Включите IRC, найдя опцию IRC в Администрировании, и нажмите кнопку включения.

Видео чат

Как и Slack, Rocket Chat поддерживает видеоконференцсвязь. Чтобы включить эту функцию на своем сервере, перейдите в раздел «Администрирование» и прокрутите вниз до «видеоконференцсвязи».

Ракетно-чат-видеоконференция

Оказавшись там, нажмите «True». Отсюда начните видеоконференцию через личное сообщение. Просто выберите пользователя, затем щелкните значок видео.

Создание разных комнат

ракета-чат-новый-канал

Как и в Slack, можно создавать разные комнаты. Щелкните значок «+», затем заполните информацию, чтобы создать новый канал. Сделайте новый канал общедоступным или частным, щелкнув ползунок и только для чтения.

Другие настройки

настройки чат-ракеты

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

Заключение

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

Если вы ищете хорошую платформу для совместной работы, сделайте себе и своей команде одолжение и не используйте Slack. Вместо этого используйте собственное решение. Бросьте Rocket Chat на запасной сервер и сэкономьте при этом деньги!

Обновлено 4 августа 2020

Rocket.Chat

Содержание

  • Введение
  • Подготовка LXC-контейнера
  • Установка и настройка MongoDB
  • Получение сертификата Let’s Encrypt
  • Установка и настройка Nginx
  • Установка и настройка Rocket.Chat
  • Установка сервера
    • Использование собранного релизного сервера
    • Сборка сервера из исходного кода
  • Запуск Rocket.Chat
  • Обновление Rocket.Chat

Введение

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

Подготовка LXC-контейнера

Мы рекомендуем выполнить установку Rocket.Chat в отдельном контейнере, настроив его согласно инструкции.

Установка и настройка MongoDB

Установите пакет MongoDB:

emerge -a dev-db/mongodb

Настройте MongoDB для работы с Rocket.Chat:

/etc/mongodb.conf

storage:
  dbPath: "/var/lib/mongodb"
  engine: mmapv1

replication:
  replSetName: rs01

Запустите MongoDB:

/etc/init.d/mongodb start

Добавьте MongoDB в автозагрузку:

rc-update add mongodb

Выполните инициализацию базы данных:

mongo —eval «printjson(rs.initiate())»

Получение сертификата Let’s Encrypt

Получите сертификат домена rocketchat.example.org для Nginx согласно руководству.

Установка и настройка Nginx

Установите и настройте веб-сервер Nginx в качестве обратного прокси согласно руководству. Добавьте следующую настройку для rocketchat.example.org:

/etc/nginx/sites-enabled/rocketchat.conf

server {
    listen 443 ssl;
    server_name rocketchat.example.org;

    include ssl.conf;
    ssl_certificate /etc/nginx/ssl/rocketchat.example.org/fullchain.pem;
    ssl_certificate_key /etc/nginx/ssl/rocketchat.example.org/privkey.pem;
    client_max_body_size 200M;

    location / {
        proxy_pass http://localhost:3000;
        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-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto https;
        proxy_set_header X-Nginx-Proxy true;

        proxy_redirect off;
    }
}

Установка и настройка Rocket.Chat

Установите вспомогательное программное обеспечение:

emerge -a dev-python/nodeenv media-gfx/graphicsmagick

Создайте пользователя rocketchat в системе:

useradd -m -d /var/calculate/www/rocketchat -s /bin/bash rocketchat

Установите Node.js в директорию пользователя:

su — rocketchat

nodeenv —node=12.18.0 .node-12

ln -sfT .node-12 .node-live

source .node-live/bin/activate

echo ‘source ~/.node-live/bin/activate’ >> ~/.bash_profile

Установка сервера

Использование собранного релизного сервера

Скачайте и распакуйте сервер Rocket.Chat:

curl -L https://releases.rocket.chat/latest/download -o Rocket.Chat.tar.gz

tar xf Rocket.Chat.tar.gz

Установите необходимые библиотеки для NodeJS и завершите сеанс пользователя rocketchat:

cd ~/bundle/programs/server

npm install && exit

Сборка сервера из исходного кода

Установите для пользователя web фреймворк Meteor:

curl https://install.meteor.com/ | sh

echo ‘PATH=»${PATH}:${HOME}/.meteor»‘ >>.bash_profile

PATH=»${PATH}:${HOME}/.meteor»

Скачайте исходный код сервера Rocket.Chat:

git clone https://github.com/RocketChat/Rocket.Chat.git Rocket.Chat.Source

Перейдите в каталог с исходным кодом и выполните сборку архива:

cd Rocket.Chat.Source

meteor npm install

meteor build —directory ~

Установите необходимые библиотеки для NodeJS и завершите сеанс пользователя rocketchat:

cd ~/bundle/programs/server

npm install && exit

Запуск Rocket.Chat

Сделайте ранее полученный каталог серевером Rocket.Chat текущим:

mv /var/calculate/www/rocketchat/{bundle,Rocket.Chat}

Создайте сценарий OpenRC для управления демоном Rocket.Chat, указав https://rocketchat.example.org в качестве ROOT_URL:

/etc/init.d/rocketchat

#!/sbin/openrc-run
# Copyright 2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

name="Rocketchat daemon"
description=""
pidfile=/run/rocketchat.pid
command_user=rocketchat
output_log=/var/log/rocketchat.log
error_log=/var/log/rocketchat.log
directory=/var/calculate/www/rocketchat/Rocket.Chat
ROOT_URL="https://rocketchat.example.org"
start_stop_daemon_args="-e ROOT_URL=$ROOT_URL -e MONGO_OPLOG_URL=mongodb://localhost:27017/local?replicaSet=rs01 -e PORT=3000 -e MONGO_URL=mongodb://localhost:27017/rocketchat?replicaSet=rs01 -e PATH=/var/calculate/www/rocketchat/.node-live/lib/node_modules/.bin:/var/calculate/www/rocketchat/.node-live/bin:"$PATH""
command="/var/calculate/www/rocketchat/.node-live/bin/node"
command_args="main.js"
command_background=true

depend() {
        need nginx mongodb
}

start_pre() {
    checkpath -f -o rocketchat -m 0600 /var/log/rocketchat.log
}

Установите права на запуск:

chmod 755 /etc/init.d/rocketchat

Запустите демон Rocket.Chat:

/etc/init.d/rocketchat start

Добавьте Rocket.Chat в автозагрузку:

rc-update add rocketchat

Откройте в браузере сайт https://rocketchat.example.org и выполните заключительную настройку Rocket.Chat.

Обновление Rocket.Chat

Выполните вход в сеанс пользователя rocketchat:

su — rocketchat

Получите каталог bundle Rocket.Chat сервера одиним из способов, описанных выше в главе Установка сервера.

Остановите старый сервер Rocket.Chat:

/etc/init.d/rocketchat stop

Замените старый сервер на новый:

mv /var/calculate/www/rocketchat/Rocket.Chat{,.$(date +%Y%m%d%H%M)}

mv /var/calculate/www/rocketchat/{bundle,Rocket.Chat}

Запустите новый сервер Rocket.Chat:

/etc/init.d/rocketchat start

Обновлено Обновлено: 19.05.2020
Опубликовано Опубликовано: 04.04.2020

В данной инструкции мы рассмотрим установку и настройку сервиса Rocket.Chat на своем собственном сервере с Ubuntu.

Необходимые для Rocket.Chat компоненты
    Установка пакетов
    Установка MongoDB
Rocket.Chat
    Установка
    Настройка
Клиент для подключения к серверу
Создание пользователя
Настройка языка
    Настройка для пользователя
    Настройка языка по умолчанию
Настройка SSL
Установка как snap пакета

Установка компонентов

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

Установка необходимых пакетов

Выполняем команды:

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

apt-get install curl build-essential graphicsmagick nodejs

* где:

  • curl — служебная программа для взаимодействия с сервисами по различным протоколам с синтаксисом URL. Нам понадобиться для скачивания файлов.
  • build-essential — пакет, необходимый для сборки других пакетов.
  • graphicsmagick — набор программ для чтения и редактирования файлов различных графических форматов.
  • nodejs — программная платформа, которая делает код javascript в язык общего назначения.

Устанавливаем inherits и node версии 12.14.0:

npm install -g inherits n && sudo n 12.14.0

Установка MongoDB

Конфигурируем репозиторий для MongoDB:

vi /etc/apt/sources.list.d/mongodb-org.list

deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse

Импортируем ключ из репозитория для проверки пакетов от подделки:

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

Обновляем список пакетов:

apt-get update

И устанавливаем mongodb-org:

apt-get install mongodb-org

Вносим изменения в конфигурационный файл:

sed -i «s/^#  engine:/  engine: mmapv1/»  /etc/mongod.conf

sed -i «s/^#replication:/replication:n  replSetName: rs01/» /etc/mongod.conf

Разрешаем автозапуск mongodb и стартуем его:

systemctl enable mongod

systemctl start mongod

Инициализируем базу данных:

mongo —eval «printjson(rs.initiate())»

Установка и настройка Rocket.Chat

Установка

Для установки скачиваем пакет:

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

* обязательно сохраняем архив в каталог /tmp.

Распаковываем скачанный пакет:

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

Переходим в распакованный каталог:

cd /tmp/bundle/programs/server

Выполним установку rocket.chat:

npm install

… и переносим его в каталог /opt:

mv /tmp/bundle /opt/Rocket.Chat

Настройка

Создаем пользователя для rocketchat:

useradd -M rocketchat

usermod -L rocketchat

* где первая команда создаст пользователя rocketchat без домашнего каталога; вторая — блокирует пароль пользователя.

Задаем владельца для каталога с rocketchat:

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

Создаем файл для нового юнита в systemd:

vi /lib/systemd/system/rocketchat.service

[Unit]
Description=The 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?replicaSet=rs01 MONGO_OPLOG_URL=mongodb://localhost:27017/local?replicaSet=rs01 ROOT_URL=http://localhost:3000/ PORT=3000

[Install]
WantedBy=multi-user.target

* в данном примере сервис будет запущен на порту 3000.

Применяем изменения в systemd:

systemctl daemon-reload

Разрешаем сервис для rocketchat и запускаем сервер для чата:

systemctl enable rocketchat

systemctl start rocketchat

Ждем около 20 секунд — запуск выполняется не сразу.

Если используется брандмауэр, открываем порт:

iptables -A INPUT -p tcp —dport 3000 -j ACCEPT

… и сохраняем настройки:

apt-get install iptables-persistent

netfilter-persistent save

Установка и настройка клиента

Переходим на страницу загрузки Rocket.Chat и скачиваем клиента для нужной операционной системы:

Скачиваем клиента для rocketchat

* клиент может быть установлен на Windows, Mac OS, Linux. В данном примере скачиваем для Windows.

Устанавливаем и запускаем программу — откроется окно для подключения. Вводим IP-адрес и порт нашего сервера:

Подключение к серверу rocketchat

… система проверит подключение к серверу и предложит подключиться к серверу.

При первом входе клиент потребует зарегистрировать учетную запись администратора. Заполняем поля и регистрируемся.

Можно пользоваться.

Создание нового пользователя

Переходим к администрированию сервера. Кликаем по иконки меню (с тремя точками) и выбираем Administration:

Переходим к администрированию rocketchat

Переходим в раздел Users:

Переходим к управлению учетными записями

Кликаем по «плюсику» для создания нового пользователя:

Добавляем нового пользователя

Заполняем поля и кликаем по Save.

Настройка языка

Выбор языка в клиенте

Открываем клиентскую программу — кликаем по значку пользователя — выбираем My Account:

Переходим в настройку My Account

Кликаем по Preferences:

Переходим в Preferences

Выбираем язык и сохраняем настройки:

Выбор языка

Настройка языка по умолчанию

Переходим к администрированию сервера. Кликаем по иконки меню (с тремя точками) и выбираем Administration:

Переходим к администрированию rocketchat

Выбираем пункт меню General:

Переходим в настройки General

Выбираем язык по умолчанию:

Выбираем язык по умолчанию

… и сохраняем настройки.

Настройка SSL (Let’s Encrypt)

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

Установка NGINX и получение сертификата

В качестве веб-сервера удобнее всего использовать NGINX. Установим его командой:

apt-get install nginx

Сразу разрешим автозапуск nginx:

systemctl enable nginx

Если мы не планируем использовать сертификат от Let’s Encrypt, то переходим к настройке nginx для Rocket.Chat.

Игаче, создадим конфигурационный файл с настройками для домена:

vi /etc/nginx/sites-enabled/rocket.dmosk.ru.conf

server {
    listen       80;
    server_name  rocket.dmosk.ru;
    root   /usr/share/nginx/html;
}

* в данном примере мы создали виртуальный домен для rocket.dmosk.ru, который слушает запросы только по http. Это нужно, чтобы получить сертификат.

Перезапускаем nginx:

systemctl restart nginx

Если мы используем брандмауэр, создаем правила:

iptables -A INPUT -p tcp —dport 80 -j ACCEPT

iptables -A INPUT -p tcp —dport 443 -j ACCEPT

netfilter-persistent save

Устанавливаем certbot:

apt-get install certbot

Получаем сертификат командой:

certbot certonly —webroot —agree-tos —email postmaster@dmosk.ru —webroot-path /usr/share/nginx/html/ -d rocket.dmosk.ru

* данной командой мы создаем запрос на получение сертификата для узла rocket.dmosk.ru, который вы должны заменить своим. Подробнее, процесс описан в инструкции Получение бесплатного SSL сертификата Let’s Encrypt.

Если все сделано правильно, мы увидим:

IMPORTANT NOTES:
 — Congratulations! Your certificate and chain have been saved at:

Создаем задание для автоматического обновления сертификата:

crontab -e

И добавляем строку:

0 0 * * 1,4 /usr/bin/certbot renew && systemctl reload nginx

Настройка NGINX для Rocket.Chat

Открываем наш конфигурационный файл для nginx:

vi /etc/nginx/sites-enabled/rocket.dmosk.ru.conf

… и добавляем:

server {
    listen 443;
    server_name rocket.dmosk.ru;

    client_max_body_size 200M;

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

    ssl on;
    ssl_certificate /etc/letsencrypt/live/rocket.dmosk.ru/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/rocket.dmosk.ru/privkey.pem;
    ssl_protocols TLSv1.2;

    location / {
        proxy_pass http://127.0.0.1:3000/;
        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-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forward-Proto http;
        proxy_set_header X-Nginx-Proxy true;

        proxy_redirect off;
    }
}

* в данном примере мы добавляем настройку для прослушивания 443 порта; в качестве сертификата мы используем /etc/letsencrypt/live/rocket.dmosk.ru/fullchain.pem, которые вы должны заменить своими. Все запросы перенаправляются на локальный сервер порт 3000 (Rocket.Chat).

Перезапускаем nginx:

systemctl restart nginx

Пробуем подключиться к серверу по адресу https:<наш домен>.

Установка как snap пакета

Rocket.Chat поддерживает установку через пакеты snap. Ставим сам snap:

apt-get install snapd

Устанавливаем rocketchat-server:

snap install rocketchat-server

Сервер установлен и запрещен, статус можно посмотреть командой:

systemctl status snap.rocketchat-server.rocketchat-server

В каталог с установленным сервером можно перейти командой:

cd /snap/rocketchat-server/current

Для начала давайте разберемся, что вообще такое мессенджер и для чего он используется. Мессенджер – программа, предназначенная для мгновенного обмена сообщениями. Это могут быть текстовые и голосовые сообщения, поддерживаются видеозвонки и файлообмен.

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

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

Персональные мессенджеры представляют из себя открытую экосистему: любой пользователь при желании может связаться с любым другим. Чаще всего персональные мессенджеры привязываются к номеру вашего телефона или адресу электронной почты. Они отлично подходят для личного общения либо качестве публичной платформы для индивидуальных предпринимателей, фрилансеров или малого бизнеса. Но такие решения предлагают меньше возможностей, отслеживают и хранят всю вашу переписку, чаще подвергаются взлому.

Популярные программы вроде WhatsApp, Skype, Telegram и Viber хорошо справляются со своими задачами, но не подходят для общения внутри крупных компаний, так как попросту спроектированы для других целей. Впрочем, если сотрудников мало, мессенджер для компании – второстепенное средство коммуникации, а переписка не содержит ничего важного, можно вполне обойтись и ими. Тем более, что все они совершенно бесплатны.

Корпоративные мессенджеры предназначены для делового общения между сотрудниками внутри компании. Они предлагают вам выделенное, закрытое от посторонних пространство для взаимодействия. Все контактные лица – ваши коллеги, а значит, личная переписка не помешает деловой, к вам не просочится спам и реклама. Уровень приватности корпоративных мессенджеров гораздо выше, круг возможностей шире, а настройки – глубже, но за удовольствие приходится платить, так как бесплатные версии, как правило, обладают урезанным функционалом.

Популярные решения – MS Teams, Google Hangouts, Slack, Rocket.Chat. Все перечисленные сервисы также отлично справляются со своими задачами, но на этот раз эти задачи сосредоточены вокруг корпоративного общения. Однако мы все же отдали свое предпочтение одному из них, и дальше вы узнаете причину.

В этом списке — наиболее распространенные и востребованные функции мессенджеров, этот «суповой набор» поддерживается большинством из них вне зависимости от типа:

+ Текстовый чат
+ Голосовой чат
+ Видеозвонки
+ Файлообмен
+ Push-уведомления
+ Конференц-звонки
+ Звонки на телефонные номера
+ Создание каналов и групп
+ Поддержка чат-ботов

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

Но с увеличением числа сотрудников ограничение по поиску среди десять тысяч последних сообщений стало для нас критичным. Приходилось постоянно выгружать данные и хранить их отдельно, чтобы пользоваться поисковыми алгоритмами.

Эта проблема решалась переходом на платную версию, но абонентка показалась нам довольно высокой. К тому же она взимается за каждого отдельного пользователя, а значит, будет расти со временем. И в этих раздумьях мы принялись за поиск более дешевой, а еще лучше – бесплатной альтернативы.

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

Платные решения предлагали плюс-минус то же самое, что и Slack, сохраняя при этом главный недостаток: прогрессивный рост стоимости подписки. А бесплатные оказались в основном сырыми, некоторые – на грани работоспособности.

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

При внимательном изучении выяснилось, что все необходимые нам функции присутствуют, при этом профессиональное сообщество постоянно публикует обновления, в которых устраняются ошибки и добавляются новые фичи.

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

Мы, конечно же, пошли по пути установки мессенджера на собственные серверы. Это дало нам возможность более глубокой настройки и интеграции с остальными приложениями, которыми мы пользуемся, а также значительно удешевило эксплуатацию сервиса.

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

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

ПЛЮСЫ:
+ Возможность установки Rocket.Chat на собственные серверы, что делает его бесплатным и дает вам инструменты для тонкой настройки. А еще наши западные партнеры не смогут отключить вас за неуплату или, например, с вводом новых санкций.
+ Конфиденциальность. Ваша переписка не утечет непонятно куда, даже если вы арендуете серверы. Rocket.Chat не предоставляет ваши данные и сообщения третьим лицам и не хранит удаленные сообщения.
+ Защищенность. Статистика по взлому аккаунтов говорит не в пользу персональных мессенджеров, их компрометируют гораздо чаще. Дополнительную безопасность дает вышеупомянутая возможность установки Rocket.Chat на собственные серверы.
+ Приватность. Благодаря тому, что круг контактов ограничен вашими коллегами, личные дела, реклама и спам не будут отвлекать вас. А вы, в свою очередь, не сможете «случайно поделиться» вашей перепиской с людьми, которым она не предназначается.
+ Открытость Rocket.Chat. Будучи open source проектом, Rocket.Chat позволяет нам самостоятельно исправлять ошибки и публиковать обновления. При желании можно модифицировать приложение более, чем полностью.
+ Поддержка всех базовых функций. Rocket.Chat обеспечивает стабильную работу всех основных функций, используемых мессенджерами. Этим закрываются потребности подавляющего большинства пользователей.
+ Возможность модификации для расширения функционала. Например, нам позарез нужны была поддержка видеоконференций, и мы ее получили!
+ Постоянное развитие. Rocket.Chat регулярно обновляется, становясь все удобнее и приятнее в использовании.

МИНУСЫ:
— Баги. Они все еще есть, хоть и не распространяются на базовый функционал. Из-за ограниченной популярности Rocket.Chat база тестировщиков не такая уж и обширная. В основном ошибки связаны с новыми инструментами и быстро исправляются.
— Необходимость первичной настройки. Другие мессенджеры, особенно если речь идет о персональных, гораздо дружелюбнее к новичкам. Особенно если хотите развернуть свой собственный сервер. Но такая настройка – одноразовое мероприятие, которое быстро окупит себя.
— Слишком большой стек решений. Для того, чтобы установить нужные надстройки, придется покопаться в обширной библиотеке, чтобы выбрать подходящие. А если вы используете специфические, узконаправленные модификации, они могут перестать работать или заглючить после обновления.
— Частые обновления — так себе минус, скорее даже плюс, но некоторых раздражает всплывающее раз в неделю окно с предложением обновиться.

Суммируя все плюсы и минусы, мы получаем не самый простой в настройке, зато самый открытый и модифицируемый мессенджер. И чуть ли не единственный, который можно (и при этом хочется) развернуть на своих серверах, обеспечив полный контроль и беспрецедентную конфиденциальность.

Понравилась статья? Поделить с друзьями:

А вот и еще наши интересные статьи:

  • Кофеварка philips hd7459 20 инструкция по применению
  • Офтолик капсулы инструкция по применению взрослым аналоги
  • Олиджим таблетки инструкция по применению цена диабете 2 типа отзывы
  • Увлажнитель воздуха борк инструкция по применению q710
  • Можно ли не подписывать должностную инструкцию если не согласен

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии