Что такое rocket chat
Как мы сменили платный Slack на опенсорсный Rocket.Chat
Недавно мы писали о том, как организуем работу с удаленными сотрудниками, и упомянули всем известный мессенджер Slack. Почти сразу после выхода статьи мы нашли его пока не очень идеальный аналог, который обещает стать лучшим среди рабочих мессенджеров в ближайшие пару лет. Сегодня расскажем, почему мы так думаем.
Наши отношения с мессенджерами сложные. Сначала мы все общались в Skype — это было неудобно (особенно с мобильного), громоздко и, честно говоря, очень глючно. Несмотря на эти недостатки, в скайпе мы провели больше 3 лет, после чего задумались о смене платформы — количество сотрудников росло, личные контакты начали перемешиваться с рабочими, а стабильнее скайп не становился.
Тем не менее мы пользовались им еще долго — около года. При постоянном росте числа сотрудников объем переписок растет в геометрической прогрессии, а ограничения бесплатной версии — 10 тысяч сообщений — становятся всё более критичны: при общении 30 сотрудников история пропадает уже через 5-6 дней, и каждый раз сохранять важную информацию куда-то в отдельные заметки просто нереально. При этом стоимость платной версии будет постоянно увеличиваться пропорционально растущему числу сотрудников.
Мы снова задумались о смене платформы. Началось глобальное тестирование: мы прошлись по всем возможным вариантам, перепробовали не менее 20 различных приложений. Некоторые устанавливали и сразу удаляли, поняв, что не подходят, другие тестировали неделю. Среди них — Stride, Flock, Hangouts, Яндекс.Ямб, даже Telegram. У одних кривой интерфейс, у других баг на баге, третьи были платными и, как и Slack, не предлагали идеального для нас решения. Телеграм не подошел из-за того, что многие сотрудники уже пользовались им, и было неудобно мешать личные и рабочие переписки — все просто терялось в одном сплошном потоке.
Мессенджеры мы выбирали по собственным критериям вплоть до наличия реакций на сообщения, (к ним сотрудники уже привыкли в Слаке, к тому же, они существенно ускоряют коммуникацию) и привычного дизайна, поэтому то, что было важно для нас, может быть совершенно непринципиально для других. Тут, пожалуй, стоит выбирать сначала по внешним критериям, — нужен вам опенсорный проект или нет, какие функции необходимы в первую очередь, удобен ли дизайн, — а затем тестировать платформу в работе и на основе личного опыта выбирать то или иное решение.
И совсем недавно мы нашли, кажется, оптимальный мессенджер — Rocket.Chat. История его внедрения интересна: еще в ноябре 2017 года, когда мы первый раз увидели его в списке аналогов Slack, Рокет был совершенно сырым и непригодным для использования, мы даже не рассматривали его как рабочий вариант. А к январю 2018-го разработчики выкатили обновление, в котором множество багов пофиксили, изменили дизайн, добавили много крутых фишек вроде информации о том, кто из чата прочитал сообщение. В общем, тогда мы и обратили на него пристальное внимание и начали тестировать.
Вот так выглядит окошко с информацией о прочтении сообщения:
А так выглядит мобильный клиент:
На скриншоте видна системная информация:
Собственно, из недостатков — это большое количество багов, которые, впрочем, не критичны для работы. С каждым обновлением приложения их становится меньше, к тому же, мы установили его на свой сервер, и гибкости у нас больше.
После недели открытого тестирования всеми сотрудниками Пазла мы решили окончательно остановиться на нем. Кстати, на наш сервер были перенесены и все сохранившиеся (последние) переписки из Slack.
Если ищете рабочее приложение для общения внутри команды, очень рекомендуем обратить внимание на Rocket.Chat. Не повторяйте наших ошибок, не тратьте время на кривые мессенджеры! И пишите в комментариях, какую платформу используете вы — возможно, мы что-то упустили.
Если вы хотите прокачать английский, приходите к нам
Читателям блога дарим купон на 700 рублей для покупки абонемента, в который входит 8 видов тренировок и еженедельные рассылки про английскую грамматику и лексику.
А для безлимитного и вечного доступа ко всем возможностям сайта есть тариф «Всё включено» (скидка не действует).
Обзор корпоративного мессенджера RocketChat
Многие компании в качестве корпоративного мессенджера используют распространенные бесплатные продукты: Skype, Telegram, Viber и другие. Но не всем такие решения подходят, например, против часто выступает служба безопасности компании.
Основные недостатки публичных мессенджеров:
Тестовый стенд
Соответственно, чтобы решить вышеописанные проблемы, необходим мессенджер, который можно разместить на собственных серверах. Наше внимание привлек внимание продукт RocketChat по таким основным параметрам: он бесплатный, активно развивается и обладает приемлемым дизайном. В результате было решено выполнить его тестирование и проверить насколько удобно реализованы интересующие нас заявленные в нем функции.
Характеристики тестового стенда:
Продукт не требователен к ресурсам, поэтому характеристики сервера указывать смысла нет.
Результаты тестирования
Результаты тестирования предоставляем в виде 3-х блоков:
Таблица 1. Функция при тестировании которых замечаний не обнаружено
Данный блок комментировать не будем, так как заявленный функционал работает в полной мере и никаких проблем или замечаний по ним не обнаружили, ниже приведены скриншоты, иллюстрирующие дизайн и функционал продукта.
Рисунок 1. Мобильное приложение RocketChat
Рисунок 2. Push-сообщения в мобильной версии чата
Рисунок 3. Web-интерфейс программы и передача файла
Рисунок 4. Настройка передачи файлов, а также их типа и размера
В следующей таблице указан функционал, при тестировании которого возникли замечания.
Таблица 2. Функции, при тестировании которых возникли замечания
№ | Функция | Комментарий |
1 | Чтение переписки сотрудников администратором или сотрудником службы безопасности | Доступ к логам переписки осуществляется только при обращении к БД непосредственно на сервере. Других возможностей извлечь логи нет. Как следствие, вопрос получения записей трудозатратный и выполняется в ручном режиме. |
2 | Шифрованное подключение | Реализуется через https, но требуется покупка и подключение SSL-сертификата. |
3 | Запись аудиосообщений в чате и их отправка | При использовании мобильных устройств функция работает только в Web-браузере, а в приложении не работает. |
Чтение переписки сотрудников возможно, но сама переписка выводится в консоль и при большом количестве сотрудников и комнат это не удобно. Также сам синтаксис запроса относительно сложный. Было бы хорошо иметь какую-то оболочку, которая извлекала бы данные из базы и формировала наглядные отчеты.
Рисунок 5. Запрос администратора к базе данных и вывод в консоль переписки пользователей
Запись и отправка аудиосообщений работает аналогично, как и у других мессенджеров, но только из Web-версии. В приложении функционал не работает.
Рисунок 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 и скачиваем клиента для нужной операционной системы:
* клиент может быть установлен на Windows, Mac OS, Linux. В данном примере скачиваем для Windows.
Устанавливаем и запускаем программу — откроется окно для подключения. Вводим IP-адрес и порт нашего сервера:
. система проверит подключение к серверу и предложит подключиться к серверу.
При первом входе клиент потребует зарегистрировать учетную запись администратора. Заполняем поля и регистрируемся.
Создание нового пользователя
Переходим к администрированию сервера. Кликаем по иконки меню (с тремя точками) и выбираем Administration:
Переходим в раздел Users:
Кликаем по «плюсику» для создания нового пользователя:
Заполняем поля и кликаем по Save.
Настройка языка
Выбор языка в клиенте
Кликаем по Preferences:
Выбираем язык и сохраняем настройки:
Настройка языка по умолчанию
Переходим к администрированию сервера. Кликаем по иконки меню (с тремя точками) и выбираем Administration:
Выбираем пункт меню General:
Выбираем язык по умолчанию:
. и сохраняем настройки.
Настройка 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. На экране появится меню администратора.