Rocket.chat

Видео обзор

Watch this video on YouTube

Онлайн курс «Сетевой инженер»

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные сети, рекомендую познакомиться с онлайн-курсом «Сетевой инженер» в OTUS. Это авторская программа в сочетании с удалённой практикой на реальном оборудовании и академическим сертификатом Cisco! Студенты получают практические навыки работы на оборудовании при помощи удалённой онлайн-лаборатории, работающей на базе партнёра по обучению — РТУ МИРЭА: маршрутизаторы Cisco 1921, Cisco 2801, Cisco 2811; коммутаторы Cisco 2950, Cisco 2960.

Особенности курса:

  • Курс содержит две проектные работы.;
  • Студенты зачисляются в официальную академию Cisco (OTUS, Cisco Academy, ID 400051208) и получают доступ ко всем частям курса «CCNA Routing and Switching»;
  • Студенты могут сдать экзамен и получить вместе с сертификатом OTUS ещё сертификат курса «CCNA Routing and Switching: Scaling Networks»;

Проверьте себя на вступительном тесте и смотрите программу детальнее по .

Start a stream

Note: Depending on the settings of the server, you might be only able to link live streams from Youtube. In doubt always ask your server’s admin.

  1. Press the Broadcast my Camera button.

  2. Login with a Google account. Remember that streaming must be activated through your Youtube account. For more information, see Introduction to live streaming Google guide).

To add a different Livestream, get the URL (must be from Youtube) for the stream, enter it into the Livestream source field and hit save.

You can also add a message for whenever the stream is unavailable in the Livestream not available message field.

To add a stream with no video and only audio, use the Enable audio only button.

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

Выполним установку компонентов, необходимых для работы 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 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())»

Установка и настройка 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;
    }
}

METHOD CACHE

Set the instance to call methods on, with cached results

  • Accepts an Asteroid instance (or possibly other classes)
  • Returns nothing

Setup a cache for a method call

  • Accepts method name and cache options object, such as:
    • Maximum size of cache
    • Maximum age of cache

Get results of a prior method call or call and cache

  • Accepts method name to call and key as single param
  • Only methods with a single string argument can be cached (currently) due to
    the usage of this argument as the index for the cached results.

Checking if method has been cached

  • Accepts method name
  • Returns bool

Get results of a prior method call

  • Accepts method name and key (argument method called with)
  • Returns results at key

Reset a cached method call’s results

  • Accepts a method name, optional key
  • If key given, clears only that result set
  • Returns bool

Reset cached results for all methods

Returns nothing

API CLIENT

By default, it will attempt to login with the same defaults or env config as
the driver, but the method could be used manually prior to requests to
use different credentials.

If a request is made to an endpoint requiring authentication, before login is
called, it will attempt to login first and keep the response token for later.

Bots and apps should manually call the API method on shutdown if they
have used the API.

Returns boolean status of existing login

Make a POST request to the REST API

  • — The API resource ID, e.g.
  • — Request payload object to send, e.g. { roomName: ‘general’ }
  • — If authorisation is required (defaults to true)
  • Returns promise

Make a GET request to the REST API

  • — The API endpoint resource ID, e.g.
  • — Params (converted to query string), e.g. { fields: { ‘username’: 1 } }
  • — If authorisation is required (defaults to true)
  • Returns promise

Perform login with default or given credentials

  • object with and properties.
  • Returns promise, resolves with login result

Logout the current user. Returns promise

Exported property with details of the current API session

  • — The login request result
  • — The logged in user’s username
  • — The logged in user’s ID
  • — The current auth token

Exported property for user query helper default fields

  • Defaults to

Helper for querying all users

  • Optional fields object (see fields docs link above)
  • Returns promise, resolves with array of user objects

Helper for querying all usernames

Returns promise, resolves with array of usernames

Helper for querying all user IDs

Returns promise, resolves with array of IDs

Helper for querying online users

  • Optional fields object (see fields docs link above)
  • Returns promise, resolves with array of user objects

Helper for querying online usernames

Returns promise, resolves with array of usernames

Helper for querying online user IDs

Returns promise, resolves with array of IDs

Тестирование Rocket.Chat на Android, IOS, Web

По регистрации оборудования в сети половина клиентов это смартфоны. Поэтому тестирование крутилось в основном на возможности доставки push-сообщение и одновременной работы нескольких клиентов под одной учётной записью. В админ-панели есть переключать именно этого режима, когда сообщения одновременно приходят и на смартфон и на ПК. Отдельное спасибо за работу внешнего сервера для push(иначе нужно иметь свой).

Во второй день работы в системе было зарегистрировано 26 пользователей, больше заниматься презентацией не было сил и я написал инструкцию)) Это ещё одна палочка-выручалочка в подобных делах.

Спустя месяц…Все это время меня беспокоило отсутствие сертификата, в воздухе витало правило о том, что корпоративные сервисы должны иметь максимально доступный уровень защиты\шифрования. Самый доступный выбор – LetsEncrypt. Начиналось все в тестовой среде, т.к. выбор между Nginx и Apache не был сделан. На старте у меня Centos и Rocket.Chat на 80-ом порту по официальной инструкции.Последующие цели самые обычные – сделать доступ по https.

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

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

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

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

tar xf Rocket.Chat.tar.gz

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

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 и завершите сеанс пользователя :

cd ~/bundle/programs/server

npm install && exit

Docs

Full documentation can be generated locally using .
This isn’t in a format we can publish yet, but can be useful for development.

Below is just a summary:

The following modules are exported by the SDK:

  • — Handles connection, method calls, room subscriptions (via Asteroid)
  • — Manages results cache for calls to server (via LRU cache)
  • — Provides a client for making requests with Rocket.Chat’s REST API

Access these modules by importing them from SDK, e.g:

For Node 8 / ES5

const { driver, methodCache, api } = require('@rocket.chat/sdk')

For ES6 supporting platforms

import { driver, methodCache, api } from '@rocket.chat/sdk'

Any Rocket.Chat server method can be called via ,
or . Server methods are not fully
documented, most require searching the Rocket.Chat codebase.

Some common requests for user queries are made available as simple helpers under
, such as which returns the user IDs of all
online users. Run for a demo of user query outputs.

Базовая настройка

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

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

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

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

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

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

В Управлении правами наглядно отображены права доступа различных групп к сервисам и настройкам. Таких гибких и удобных настроек я не видел ни в одном чате.

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

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

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

Настроек на сервере не очень много. Они хорошо структурированы. Посмотрите их все, прочитайте документацию — https://nsoft-s.com/mcserverhelp/. Для того, чтобы получить первоначальное впечатление потребуется не много времени. Буквально час-два, чтобы во всем разобраться. Если продукт покажется интересным, можете уже плотнее изучать — настраивать интеграцию с AD, web чат, доступ гостей, интеграцию с Телеграмм и др.

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

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

Adblock
detector