Rocket.Chat – бесплатный, открытый источник, командный чат для Linux;

Rocket.Chat – это бесплатная, открытая для всех, масштабируемая, высококонфигурируемая и безопасная платформа, которая позволяет вам общаться и сотрудничать с вашей командой, обмениваться файлами и общаться в реальном времени. Она кросс-платформенная и работает на операционных системах Linux, Windows, macOS, Android и iOS.

Это похоже на Slack и предлагает онлайн-чат, бесплатные аудио- и видеоконференции, каналы, гостевой доступ, поделиться экраном и файлами. Для обеспечения безопасной коммуникации поддерживается синхронизация групп LDAP, двухфакторная аутентификация (2FA), конечное шифрование, единый вход и несколько провайдеров Oauth.

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

В этой статье вы узнаете, как установить и настроить сервер и клиент Rocket.Chat на системе Linux.

Шаг 1: Установка Snaps в Linux

1. Самый простой способ установить Rocket.Chat – использовать Snaps – они поддерживаются большинством, если не всеми, современными дистрибутивами Linux, и они безопасны, потому что выполняются в изолированном режиме под строгим безопасным песочницей. Кроме того, с помощью snaps вы также можете автоматически обновляться, когда доступна новая версия пакета.

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

$ sudo apt install snapd		#Ubuntu and Debian
$ sudo dnf install snapd		#Fedora 22+/CentOS/RHEL 8
$ sudo yum install snapd		#CentOS/RHEL 7

2. Когда установка завершена, вам нужно включить юнит systemd, управляющий основным сокетом связи snap, следующим образом. Обратите внимание, что эта команда запустит сокет и включит его для запуска при загрузке системы. На Ubuntu это должно произойти автоматически после завершения установки пакета.

$ sudo systemctl enable --now snapd.socket

Кроме того, вы можете включить поддержку классического snap, создав символическую ссылку между /var/lib/snapd/snap и /snap.

 
$ sudo ln -s /var/lib/snapd/snap /snap

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

3. Теперь, когда у вас установлен Snapd, выполните следующую команду, чтобы установить rocketchat-server.
$ sudo snap install rocketchat-server

4. После завершения установки snap ваш сервер rocket.chat начнет работу и будет прослушивать порт 3000 по умолчанию. Откройте веб-браузер и введите следующий адрес, чтобы настроить rocket.chat на системе.

http://SERVER_IP:3000

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

Enter Your Admin Info

6. Затем предоставьте организационную информацию (тип организации, название, отрасль, размер, страна и веб-сайт), затем нажмите «Продолжить».

Enter Organization Info

7. Затем укажите информацию о сервере (имя сайта, тип сервера по умолчанию, и также включите 2FA или нет). Затем нажмите «Продолжить».

Enter Server Info

На следующей странице зарегистрируйте сервер. Здесь есть два варианта, по умолчанию используются предварительно настроенные шлюзы и прокси, предоставляемые Rocket.Chat (рекомендуемый вариант).

Также вы можете выбрать автономный режим и создать учетные записи у поставщиков услуг, обновить предварительно настроенные параметры, а также перекомпилировать мобильные приложения с вашими личными сертификатами. И нажмите «Продолжить».

Register Rocket.Chat Server

Установка завершена, и ваше рабочее пространство готово. Нажмите Перейти в ваше рабочее пространство.

Use Work Space
Rocket.Chat Home Workspace

Шаг 3: Настройка обратного прокси для Rocket.Chat

9. Обратный прокси, такой как NGINX или Apache, позволяет настроить приложение Rocket.Chat для доступа через домен или поддомен (например, http://chat.tecmint.com) вместо ввода адреса сервера и порта приложения (например, http://10.42.0.247:3000).

Кроме того, Rocket.Chat является промежуточным сервером приложений, не обрабатывающим SSL/TLS. Обратный прокси также позволяет настроить сертификаты SSL/TLS для включения HTTPS.

Включение обратного прокси Nginx для Rocket.Chat

10. Сначала установите пакет NGINX, если его еще нет в вашей системе.

$ sudo apt apt install nginx		#Ubuntu/Debian 
$ sudo dnf install nginx		#Fedora 22+/CentOS/RHEL 8
$ sudo yum install nginx		#CentOS/RHEL 7

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

$ sudo systemctl enable --now nginx
$ sudo systemctl status nginx

12. Затем создайте файл блока виртуального сервера для приложения Rocket.Chat в каталоге /etc/nginx/conf.d/, например.

$ sudo vim /etc/nginx/conf.d/chat.tecmint.com.conf

Затем скопируйте и вставьте следующую конфигурацию в файл (замените chat.tecmint.com на свой действительный поддомен или домен).

upstream backend {
    server 127.0.0.1:3000;
}

server {
    listen 80;
    server_name chat.tecmint.com;

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

    error_log /var/log/nginx/chat.tecmint.com.log;

    location / {
        proxy_pass http://backend/;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $http_host;

        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forward-Proto http;
        proxy_set_header X-Nginx-Proxy true;
        proxy_redirect off;
    }
}

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

13. Затем проверьте конфигурацию NGINX на наличие синтаксических ошибок. Если все в порядке, перезапустите сервис Nginx, чтобы применить недавние изменения.

$ sudo nginx -t
$ sudo systemctl restart nginx

Включите обратный прокси Apache для Rocket.Chat

14. Начните с установки пакета Apache2, если он еще не установлен, на вашей системе.

$ sudo apt install apache2		#Ubuntu/Debian 
$ sudo dnf install httpd		#Fedora 22+/CentOS/RHEL 8
$ sudo yum install httpd		#CentOS/RHEL 7

15. Затем запустите и включите службу apache и проверьте, работает ли она, следующим образом.

----- On Ubuntu/Debian -----
$ sudo systemctl enable --now apache2 	
$ sudo systemctl status apache2

----- On CentsOS/RHEL 7/8 ----- 
$ sudo systemctl enable --now httpd
$ sudo systemctl status httpd

16. Затем создайте файл виртуального хоста для приложения Rocket.Chat в каталоге /etc/apache2/sites-available/ или /etc/httpd/conf.d/, например.

----- On Ubuntu/Debian -----
$ sudo vim /etc/apache2/sites-available/chat.tecmint.com.conf

----- On CentsOS/RHEL 7/8 ----- 
$ sudo vim /etc/httpd/conf.d/chat.tecmint.com.conf

17. Скопируйте и вставьте следующую конфигурацию в него, замените chat.tecmint.com на свой действительный домен.

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName chat.tecmint.com

    LogLevel info
    ErrorLog /var/log/chat.tecmint.com_error.log
    TransferLog /var/log/chat.tecmint.com_access.log

    <Location />
        Require all granted
    </Location>

    RewriteEngine On
    RewriteCond %{HTTP:Upgrade} =websocket [NC]
    RewriteRule /(.*)           ws://localhost:3000/$1 [P,L]
    RewriteCond %{HTTP:Upgrade} !=websocket [NC]
    RewriteRule /(.*)           http://localhost:3000/$1 [P,L]

    ProxyPassReverse /          http://localhost:3000/
</VirtualHost>

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

18. На Ubuntu и Debian включите необходимые модули apache2 и перезапустите службу, чтобы применить недавние изменения.

$ sudo a2enmod proxy_http
$ sudo a2enmod proxy_wstunnel
$ sudo a2enmod rewrite
$ sudo systemctl restart apache2

На CentOS/RHEL и Fedora просто перезапустите службу apache.

# systemctl restart httpd

19. Теперь всё настроено правильно, откройте свой браузер и введите следующий адрес. Приложение Rocket.Chat должно быть доступно с использованием вашего домена, настроенного в прокси-сервере.

http://chat.tecmint.com
Rocket.Chat Login Screen

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

Обратите внимание, что Let’s Encrypt автоматизирован: вы можете использовать certbot, бесплатный инструмент с открытым исходным кодом, чтобы автоматически получать и устанавливать, или просто получать и устанавливать сертификаты Let’s Encrypt в основных дистрибутивах Linux и веб-серверах.

Шаг 4: Установка клиентов Rocket.Chat на рабочих столах

21. Наконец, вы можете скачать и установить приложение Rocket.Chat для рабочего стола Linux, Mac или Windows с веб-сайта проекта Rocket.Chat. Также предоставляются мобильные приложения для Android и iOS.

Для установки приложения для рабочего стола на Linux вам необходимо скачать пакет deb (x64) или rpm (x64) в зависимости от вашего дистрибутива Linux.

$ wget -c https://github.com/RocketChat/Rocket.Chat.Electron/releases/download/2.17.7/rocketchat_2.17.7_amd64.deb
OR
$ wget -c https://github.com/RocketChat/Rocket.Chat.Electron/releases/download/2.17.7/rocketchat-2.17.7.x86_64.rpm

22. Затем установите пакет, используя менеджер пакетов dpkg или rpm, как показано.

$ sudo dpkg -i rocketchat_2.17.7_amd64.deb      #Ubuntu/Debian
$ sudo rpm -i rocketchat-2.17.7.x86_64.rpm      #CentOS/RedHat

23. После завершения установки пакета найдите rocket.chat в Меню системы и запустите его. После загрузки введите URL вашего сервера, чтобы подключиться к нему, как показано на следующем скриншоте.

Source:
https://www.tecmint.com/rocket-chat-open-source-team-chat-for-linux/