Что такое rocket chat

Как мы сменили платный Slack на опенсорсный Rocket.Chat

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

Что такое rocket chat. Смотреть фото Что такое rocket chat. Смотреть картинку Что такое rocket chat. Картинка про Что такое rocket chat. Фото Что такое rocket chat

Наши отношения с мессенджерами сложные. Сначала мы все общались в Skype — это было неудобно (особенно с мобильного), громоздко и, честно говоря, очень глючно. Несмотря на эти недостатки, в скайпе мы провели больше 3 лет, после чего задумались о смене платформы — количество сотрудников росло, личные контакты начали перемешиваться с рабочими, а стабильнее скайп не становился.

Тем не менее мы пользовались им еще долго — около года. При постоянном росте числа сотрудников объем переписок растет в геометрической прогрессии, а ограничения бесплатной версии — 10 тысяч сообщений — становятся всё более критичны: при общении 30 сотрудников история пропадает уже через 5-6 дней, и каждый раз сохранять важную информацию куда-то в отдельные заметки просто нереально. При этом стоимость платной версии будет постоянно увеличиваться пропорционально растущему числу сотрудников.

Мы снова задумались о смене платформы. Началось глобальное тестирование: мы прошлись по всем возможным вариантам, перепробовали не менее 20 различных приложений. Некоторые устанавливали и сразу удаляли, поняв, что не подходят, другие тестировали неделю. Среди них — Stride, Flock, Hangouts, Яндекс.Ямб, даже Telegram. У одних кривой интерфейс, у других баг на баге, третьи были платными и, как и Slack, не предлагали идеального для нас решения. Телеграм не подошел из-за того, что многие сотрудники уже пользовались им, и было неудобно мешать личные и рабочие переписки — все просто терялось в одном сплошном потоке.

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

И совсем недавно мы нашли, кажется, оптимальный мессенджер — Rocket.Chat. История его внедрения интересна: еще в ноябре 2017 года, когда мы первый раз увидели его в списке аналогов Slack, Рокет был совершенно сырым и непригодным для использования, мы даже не рассматривали его как рабочий вариант. А к январю 2018-го разработчики выкатили обновление, в котором множество багов пофиксили, изменили дизайн, добавили много крутых фишек вроде информации о том, кто из чата прочитал сообщение. В общем, тогда мы и обратили на него пристальное внимание и начали тестировать.

Что такое rocket chat. Смотреть фото Что такое rocket chat. Смотреть картинку Что такое rocket chat. Картинка про Что такое rocket chat. Фото Что такое rocket chat

Вот так выглядит окошко с информацией о прочтении сообщения:

Что такое rocket chat. Смотреть фото Что такое rocket chat. Смотреть картинку Что такое rocket chat. Картинка про Что такое rocket chat. Фото Что такое rocket chat

А так выглядит мобильный клиент:

Что такое rocket chat. Смотреть фото Что такое rocket chat. Смотреть картинку Что такое rocket chat. Картинка про Что такое rocket chat. Фото Что такое rocket chat

На скриншоте видна системная информация:

Что такое rocket chat. Смотреть фото Что такое rocket chat. Смотреть картинку Что такое rocket chat. Картинка про Что такое rocket chat. Фото Что такое rocket chat

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

После недели открытого тестирования всеми сотрудниками Пазла мы решили окончательно остановиться на нем. Кстати, на наш сервер были перенесены и все сохранившиеся (последние) переписки из Slack.

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

Если вы хотите прокачать английский, приходите к нам

Читателям блога дарим купон на 700 рублей для покупки абонемента, в который входит 8 видов тренировок и еженедельные рассылки про английскую грамматику и лексику.

А для безлимитного и вечного доступа ко всем возможностям сайта есть тариф «Всё включено» (скидка не действует).

Источник

Обзор корпоративного мессенджера RocketChat

Многие компании в качестве корпоративного мессенджера используют распространенные бесплатные продукты: Skype, Telegram, Viber и другие. Но не всем такие решения подходят, например, против часто выступает служба безопасности компании.

Основные недостатки публичных мессенджеров:

Тестовый стенд

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

Характеристики тестового стенда:

Продукт не требователен к ресурсам, поэтому характеристики сервера указывать смысла нет.

Результаты тестирования

Результаты тестирования предоставляем в виде 3-х блоков:

Таблица 1. Функция при тестировании которых замечаний не обнаружено

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

Что такое rocket chat. Смотреть фото Что такое rocket chat. Смотреть картинку Что такое rocket chat. Картинка про Что такое rocket chat. Фото Что такое rocket chat

Рисунок 1. Мобильное приложение RocketChat

Что такое rocket chat. Смотреть фото Что такое rocket chat. Смотреть картинку Что такое rocket chat. Картинка про Что такое rocket chat. Фото Что такое rocket chat

Рисунок 2. Push-сообщения в мобильной версии чата

Что такое rocket chat. Смотреть фото Что такое rocket chat. Смотреть картинку Что такое rocket chat. Картинка про Что такое rocket chat. Фото Что такое rocket chat

Рисунок 3. Web-интерфейс программы и передача файла

Что такое rocket chat. Смотреть фото Что такое rocket chat. Смотреть картинку Что такое rocket chat. Картинка про Что такое rocket chat. Фото Что такое rocket chat

Рисунок 4. Настройка передачи файлов, а также их типа и размера

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

Таблица 2. Функции, при тестировании которых возникли замечания

ФункцияКомментарий
1Чтение переписки сотрудников администратором или сотрудником службы безопасностиДоступ к логам переписки осуществляется только при обращении к БД непосредственно на сервере. Других возможностей извлечь логи нет. Как следствие, вопрос получения записей трудозатратный и выполняется в ручном режиме.
2Шифрованное подключениеРеализуется через https, но требуется покупка и подключение SSL-сертификата.
3Запись аудиосообщений в чате и их отправкаПри использовании мобильных устройств функция работает только в Web-браузере, а в приложении не работает.

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

Что такое rocket chat. Смотреть фото Что такое rocket chat. Смотреть картинку Что такое rocket chat. Картинка про Что такое rocket chat. Фото Что такое rocket chat

Рисунок 5. Запрос администратора к базе данных и вывод в консоль переписки пользователей

Запись и отправка аудиосообщений работает аналогично, как и у других мессенджеров, но только из Web-версии. В приложении функционал не работает.

Что такое rocket chat. Смотреть фото Что такое rocket chat. Смотреть картинку Что такое rocket chat. Картинка про Что такое rocket chat. Фото Что такое rocket chat

Рисунок 6. Запись и отправка аудиосообщения. Работает только в Web-браузере

В следующей таблице указан функционал, который пока не работает в мессенджере.

Таблица 3. Функции, работоспособности которых не удалось добиться

ФункцияКомментарий
1Запретить клиенту подключение к другому серверу RocketChatДанная функция необходима для избежания утечки информации через чат. Пользователь, имея установленный клиент, может без каких-либо дополнительных прав подключится к своему серверу RocketChat и передать данные или файлы. Проблема решается только сетевым экраном, который запрещает все соединения изнутри сети, кроме разрешенных. Блокировка только стандартного порта RocketChat проблему не решает, поскольку сервер может быть настроен на нестандартный порт.
2Отслеживание передачи файловОтследить передачу файлов в логах RocketChat нет возможности. Логирование передаваемых файлов не ведется.
3Создание видеоконференций и показа во время них своего экранаФункционал заявлен как экспериментальный и пока не гарантируется разработчиком, по факту не работает.
4Аудио- и видеозвонкиФункционал заявлен как экспериментальный и пока не гарантируется разработчиком, по факту не работает.

Выводы

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

Источник

Как мы сэкономили 3 млн рублей в год, заменив Slack на Rocket.Chat

Google Talk, Jabber, Slack, WhatsApp, Telegram, Zulip, Rocket.Chat, Selectel Chat, — мы не собрали рейтинг мессенджеров, но описали свой путь к идеальному для нас корпоративному инструменту. Опыт может быть полезен и вам: мы несколько раз меняли ориентиры и успешно перестраивались на новые технологичные волны.

Первыми корпоративными мессенджерами в Selectel были Google Talk и Jabber. C момента основания компании мы использовали экосистему Googlе для работы с электронной почтой и документами, а GTalk был тесно интегрирован с почтовым сервисом и позволял обмениваться сообщениями прямо из интерфейса Gmail. Однако большими недостатками GTalk было отсутствие групповых чатов и каких-либо интеграций. Поэтому очень скоро мы завели Jabber для общения в группах. Также на базе Jabber был реализован ряд интеграций с системами мониторинга. *Хотя все они были не очень эффективными, так как требовали большого объема работы для их реализации и поддержки.

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

Параллельно появился сначала WhatsApp, а потом и Telegram, которые были на порядок удобнее своих предшественников, поэтому очень скоро мы обнаружили что по факту вся переписка сотрудников идет в Telegram, а официальный корпоративный Jabber пришел в полное запустение. Этого ли мы хотели? 🤔

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

Мы пользовались Slack около 5 лет, но постепенно осознали, что пора менять и его. Пытаясь проанализировать причины, которые нас к этому привели, мы для себя сформулировали следующее:

По совокупности этих факторов, мы решили, что нам нужен мессенджер на своих серверах в России. Писать новый — смысла не было, тем более, что сейчас есть множество Open Source решений, которые при необходимости могут быть изменены и улучшены нашими разработчиками.

Прежде всего наше внимание привлекла к себе платформа Zulip, которая является средством корпоративной коммуникации в Dropbox. Платформа стала доступна под свободной лицензией Apache 2.0 после того как Dropbox выкупил Zulip в 2014 году и опубликовал исходный код приложения на Github. Написанный на Python и использующий PostgreSQL в качестве базы данных, Zulip легко интегрируется практически со всеми популярными системами и поддерживает множество разных сервисов, а клиенты Zulip есть под все популярные мобильные и десктопные платформы. Но в процессе тестирования мы отметили низкую скорость работы решения, а также непривычную и сложную структуру интерфейса: потоки делятся на темы, темы содержат в себе чаты. А нам хотелось сделать переход со Slack максимально простым и бесшовным.

Вторым рассматриваемым вариантом стал Rocket.Chat, выпущенный по лицензии MIT. Что нам больше всего понравилось — по функциональным возможностям и интерфейсу Rocket.Chat максимально схож со Slack: также позволяет создавать публичные каналы, закрытые группы и обсуждения, обмениваться файлами, аудио- и видеосообщениями. Работа над улучшением Rocket.Chat ведется постоянно, о чем свидетельствует множество коммитов на Github.

Оценив плюсы и минусы разных платформ, мы приняли решение: переходим на Rocket.Chat, а в случае выявления серьезных проблем в его работе запасным вариантом оставляем Zulip.

Серверное приложение Rocket.Chat написано на JavaScript и использует MongoDB в качестве хранилища сообщений. Поэтому в первую очередь нам следовало обеспечить отказоустойчивость базы данных. MongoDB «из коробки» поддерживает аварийное переключение (Failover) при помощи механизма репликации, поэтому мы развернули 3 небольшие виртуальные машины в разных регионах и настроили механизм Replica Set. Приложение архитектурно построено таким образом, что мы передаем ему данные обо всех репликах в наборе и оно само распределяет нагрузку между ними (с какой реплики читать и в какую писать).

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

Следует отметить, что Rocket.Chat имеет важную особенность. Все пересылаемые в чатах файлы приложение по умолчанию хранит локально, а не в БД. Поэтому, когда требуется работа нескольких экземпляров приложения, нужно общее хранилище. В нашем случае мы воспользовались собственным S3-совместимым Облачным хранилищем, доступ к которому организовали для всех экземпляров приложения. Это позволило всем экземплярам приложения хранить файлы в едином месте, но это не стало потенциальной точкой отказа, так как все данные, размещенные в облачном хранилище, реплицируются N+2.

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

После тестирования в реальных условиях (на себе) нам настолько понравилась получившаяся система, что мы решили сделать из нее доступный клиентам сервис Selectel Chat. За первый квартал им заинтересовались более 20 компаний, мы зафиксировали спрос и продолжаем экспериментировать над продуктом — недавно добавили в него видеоконференции (с перспективой отказаться еще и от Zoom).

Сейчас мы открываем Selectel Chat на более широкую аудиторию. Он доступен клиентам на особых условиях — цена за 1 пользователя в 40 раз дешевле, чем в Slack.

Оставить заявку на тестирование мессенджера можно уже сейчас.

Источник

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

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

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

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

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

apt-get install curl build-essential graphicsmagick nodejs

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

Установка MongoDB

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

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

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

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

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

apt-get install mongodb-org

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

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

systemctl enable mongod

systemctl start mongod

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

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

Установка

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

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

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

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

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

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

mv /tmp/bundle /opt/Rocket.Chat

Настройка

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

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

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

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

[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

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

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

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

systemctl enable rocketchat

systemctl start rocketchat

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

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

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

apt-get install iptables-persistent

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

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

Что такое rocket chat. Смотреть фото Что такое rocket chat. Смотреть картинку Что такое rocket chat. Картинка про Что такое rocket chat. Фото Что такое rocket chat

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

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

Что такое rocket chat. Смотреть фото Что такое rocket chat. Смотреть картинку Что такое rocket chat. Картинка про Что такое rocket chat. Фото Что такое rocket chat

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

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

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

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

Что такое rocket chat. Смотреть фото Что такое rocket chat. Смотреть картинку Что такое rocket chat. Картинка про Что такое rocket chat. Фото Что такое rocket chat

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

Что такое rocket chat. Смотреть фото Что такое rocket chat. Смотреть картинку Что такое rocket chat. Картинка про Что такое rocket chat. Фото Что такое rocket chat

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

Что такое rocket chat. Смотреть фото Что такое rocket chat. Смотреть картинку Что такое rocket chat. Картинка про Что такое rocket chat. Фото Что такое rocket chat

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

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

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

Что такое rocket chat. Смотреть фото Что такое rocket chat. Смотреть картинку Что такое rocket chat. Картинка про Что такое rocket chat. Фото Что такое rocket chat

Кликаем по Preferences:

Что такое rocket chat. Смотреть фото Что такое rocket chat. Смотреть картинку Что такое rocket chat. Картинка про Что такое rocket chat. Фото Что такое rocket chat

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

Что такое rocket chat. Смотреть фото Что такое rocket chat. Смотреть картинку Что такое rocket chat. Картинка про Что такое rocket chat. Фото Что такое rocket chat

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

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

Что такое rocket chat. Смотреть фото Что такое rocket chat. Смотреть картинку Что такое rocket chat. Картинка про Что такое rocket chat. Фото Что такое rocket chat

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

Что такое rocket chat. Смотреть фото Что такое rocket chat. Смотреть картинку Что такое rocket chat. Картинка про Что такое rocket chat. Фото Что такое rocket chat

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

Что такое rocket chat. Смотреть фото Что такое rocket chat. Смотреть картинку Что такое rocket chat. Картинка про Что такое rocket chat. Фото Что такое rocket chat

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

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

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

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

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

apt-get install nginx

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

systemctl enable nginx

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

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

server <
listen 80;
server_name rocket.dmosk.ru;
root /usr/share/nginx/html;
>

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

systemctl restart nginx

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

apt-get install certbot

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

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

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

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

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

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

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

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

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

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

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;

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

systemctl restart nginx

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

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

apt-get install snapd

snap install rocketchat-server

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

systemctl status snap.rocketchat-server.rocketchat-server

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

Источник

Установка, настройка и развёртывание Rocket.Chat на сервере Ubuntu 14.04

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

Данное руководство поможет установить и настроить Rocket.Chat на свежем сервере Ubuntu и настроить обратный прокси-сервер Nginx (чтобы повысить безопасность и упростить доступ к Rocket.Chat).

Требования

1: Установка зависимостей

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

Чтобы установить MongoDB, нужно сначала добавить сервер ключей:

Затеем нужно задать репозиторий:

echo «deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.0 multiverse» | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list

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

sudo apt-get update

Теперь можно установить пакеты npm, mongodb-org, curl и graphicsmagick; все они являются зависимостями Rocket.Chat.

Примечание: Аргумент –y автоматически подтверждает установку.

Теперь установите пакет при помощи NPM:

Измените версию NodeJS:

Все зависимости установлены. Теперь можно установить Rocket.Chat.

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

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

tar zxvf rocket.chat.tgz

Эта команда извлечет архив в каталог bundle. Переместите содержимое этого каталога в каталог с более описательным названием:

mv bundle Rocket.Chat

Перейдите в каталог, в который нужно становить Rocket.Chat при помощи NPM:

Вернитесь в родительский каталог Rocket.Chat:

Установите переменные среды, чтобы приложение Rocket.Chat могло отслеживать порты, URL-адреса и т.п.

В переменной ROOT_URL нужно указать свой URL-адрес:

Затем нужно задать URL-адрес MongoDB в переменной MONGO_URL:

Теперь запустите Rocket.Chat:

Остановите Rocket.Chat при помощи клавиш CTRL-C.

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

Теперь нужно настроить Nginx для проксирования трафика, благодаря чему приложение Rocket.Chat сможет работать быстрее, а SSL-сертификат начнёт шифровать данные.

Переместите закрытый ключ сертификата в /etc/nginx/certificate.key:

sudo cp /path/to/your/key /etc/nginx/certificate.key

К примеру, если вы используете сертификат Let’s Encrypt:

sudo cp /etc/letsencrypt/live/your_domain_name/privkey.pem /etc/nginx/certificate.key

Измените права на ключ, чтобы заблокировать доступ несанкционированных пользователей.

sudo chmod 400 /etc/nginx/certificate.key

Теперь скопируйте сертификат в /etc/nginx/certificate.crt:

sudo cp /path/to/your/cert /etc/nginx/certificate.crt

Для сертификата Let’s Encrypt команда будет выглядеть так:

sudo cp /etc/letsencrypt/live/your_domain_name/cert.pem /etc/nginx/certificate.crt

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

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

Если в дальнейшем вам понадобится этот файл, его можно найти в каталоге /etc/nginx/sites-available/default.

Создайте /etc/nginx/sites-enabled/default в nano:

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

Сначала добавьте блок upstream:

# Upstreams
upstream backend <
server 127.0.0.1:3000;
>

После этого создайте блок server. Первая его часть указывает имя хоста и порт, который прослушивает Nginx (в данном случае :443).

server <
listen 443;
server_name example.com;

Примечание: Замените example.com своим доменом.

После этого нужно указать, где Nginx будет хранить логи Rocket.Chat, и подключить SSL-сертификат:

error_log /var/log/nginx/rocketchat.access.log;
ssl on;
ssl_certificate /etc/nginx/certificate.crt;
ssl_certificate_key /etc/nginx/certificate.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # don’t use SSLv3 ref: POODLE

После этого нужно добавить блок location.

В результате /etc/nginx/sites-enabled/default выглядит так:

Сохраните и закройте файл.

sudo service nginx restart

Чтобы убедиться, что Nginx работает, проверьте состояние сервера:

sudo service nginx status

Команда должна вернуть:

Если же команда вернула ошибку:

* nginx is not running

проверьте логи /var/log/nginx/rocketchat.access.log и /var/log/nginx/access.log или лог ошибок /var/log/nginx/error.log. Также можно проверить конфигурационный файл на наличие ошибок:

Перейдите в каталог Rocket.Chat:

Снова запустите приложение Rocket.Chat:

Теперь приложение Rocket.Chat доступно по ссылке:

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

Теперь нужно настроить автозапуск модуля Rocket.Chat по имени forever-service. Модуль forever-service автоматически генерирует init-скрипты для приложений типа Rocket.Chat.

Сначала установите forever (зависимость forever-service):

Теперь можно установить forever-service:

Вернитесь в каталог Rocket.Chat:

Создайте сервис при помощи forever-service:

Примечание: Чтобы получить справку по синтаксису forever-service, запустите команду:

sudo start rocketchat

Эта команда инициализирует сервис rocketchat, созданный модулем forever-service.

Команды для управления Rocket.Chat:

Если настройки выполнены правильно, Rocket.Chat запустится вместе с сервером.

Примечание: Проверьте лог-файл /var/log/rocketchat.log, чтобы узнать подробности запуска приложения.

5: Настройка Rocket.Chat

Теперь попробуйте добавить первого пользователя – администратора Rocket.Chat.

Откройте Rocket.Chat в браузере. На экране появится форма входа.

Выберите Register a new account и введите данные о новом пользователе. Нажмите Submit, а затем выберите имя пользователя. Нажмите Use this username. На экране появится домашняя страница приложения.

По умолчанию приложение создаёт канал #general.

Rocket.Chat предлагает множество удобных вариантов форматирования (курсив, полужирный, зачеркнутый и т.п.). Ниже вы найдёте советы по работе с Rocket.Chat:

Теперь рассмотрим интерфейс приложения. Попробуйте создать новый канал. Для этого нажмите кнопку с плюсом возле Channels.

Выберите название канала. Нажмите Save. Приложение откроет новый канал.

Чтобы получить доступ к интерфейсу администратора, нажмите кнопку со стрелочкой рядом с именем пользователя. Это переведёт вас в новое меню. Выберите Administration. На экране появится меню администратора.

Источник

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *