- Установка корпоративного чата Rocket.Chat на Linux
- Шаг 1. Установка Snap в Linux
- Шаг 2: Установка Rocket.Chat в Linux
- Шаг 3: Настройка обратного прокси для Rocket.Chat
- Обратный прокси Nginx для Rocket.Chat
- Обратный прокси Apache для Rocket.Chat
- Шаг 4: Установка клиентов Rocket.Chat
- Ручная установка Rocket.Chat
- Установка Node.js
- Установка MongoDB
- Создание нового системного пользователя
- Установка Rocket.Chat
- Создание модуль Systemd
- Итоги
Установка корпоративного чата Rocket.Chat на Linux
Rocket.Chat — это бесплатный масштабируемый open source корпоративный чат, разработанный с помощью Meteor. Rocket.Chat можно считать аналогом Slack, который можно развернуть на своем сервере, и подключаться к нему с клиентов на Linux, Windows, macOS, Android и iOS.
- Чат в реальном времени
- Аудиоконференции
- Видеоконференции
- Каналы
- Гостевой вход
- Трансляция экрана
- Передача файлов
- Полнофункциональный API
Для обеспечения безопасности используется:
- Групповая синхронизация LDAP
- Двухфакторная аутентификация 2FA
- Сквозное шифрование
- Единый вход SSO
- Несколько поставщиков Oauth аутентификации
Рассказываем как установить и настроить сервер и клиент Rocket.Chat в Linux.
Шаг 1. Установка Snap в Linux
Для простоты мы будем использовать систему управления пакетами Snaps . Первым делом надо установить пакет snapd c помощью диспетчера пакетов.
$ sudo apt install snapd #Ubuntu и Debian
$ sudo dnf install snapd #Fedora 22+/CentOS/RHEL 8
$ sudo yum install snapd #CentOS/RHEL 7
Далее необходимо включить модуль systemd, который управляет основным сокетом мгновенной связи. Эта команда запустит сокет и позволит ему запускаться при загрузке системы.
$ sudo systemctl enable —now snapd.socket
Шаг 2: Установка Rocket.Chat в Linux
Для установки rocketchat-server выполните:
$ sudo snap install rocketchat-server
Когда установка через snap будет завершена, rocket.chat сервер начнет работать и прослушивать порт 3000. Далее откройте веб-браузер и введите следующий адрес, чтобы настроить rocket.chat через GUI.
После загрузки мастера настройки укажите следующие параметры: полное имя администратора, имя пользователя, адрес электронной почты организации и пароль.
Далее надо указать информацию об организации: тип организации, название, отрасль, размер, страна и сайт.
Затем нужно указать информацию о сервере — имя сайта, язык, тип сервера, и включение или отключение двухфакторной аутентификации 2FA.
На следующей странице нужно зарегистрировать сервер. Здесь есть две опции. Первая — использовать предварительно настроенные шлюзы и прокси, предоставленные Rocket.Chat Вторая — сохранить автономность и создать учетные записи у поставщиков услуг, обновить предварительно настроенные параметры, а также перекомпилировать мобильные приложения с вашими частными сертификатами.
Настройка завершена, и ваше рабочее пространство готово, теперь надо нажать Go to your workspace (Перейти в рабочее пространство)
Шаг 3: Настройка обратного прокси для Rocket.Chat
Обратный прокси-сервер, например nginx или Apache , позволяет настроить приложение Rocket.Chat для доступа через домен или поддомен. Rocket.Chat является сервером приложений среднего уровня, который не поддерживает SSL / TLS . Обратный прокси-сервер позволит настраивать сертификаты SSL/TLS для включения HTTPS .
Обратный прокси Nginx для Rocket.Chat
$ sudo apt apt install nginx #Ubuntu/Debian
$ sudo dnf install nginx #Fedora 22+/CentOS/RHEL 8
$ sudo yum install nginx #CentOS/RHEL 7
Далее запустите службу Nginx, включите ее автоматический запуск при загрузке системы и проверьте ее статус
$ sudo systemctl enable —now nginx
$ sudo systemctl status nginx
Затем создайте block файл виртуального сервера для приложения Rocket.Chat, например, в каталоге /etc/nginx/conf.d/.
$ sudo vim /etc/nginx/conf.d/chat.merionet.com.conf
Далее вставьте конфигурацию в этот файл, заменив домен на свой и сохраните.
upstream backend server 127.0.0.1:3000;
>
server listen 80;
server_name chat.merionet.com;
# You can increase the limit if you need to.
client_max_body_size 200M;
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;
>
>
Наконец проверьте синтаксис и перезапустите службу Nginx.
$ sudo nginx -t
$ sudo systemctl restart nginx
Обратный прокси Apache для Rocket.Chat
$ sudo apt install apache2 #Ubuntu/Debian
$ sudo dnf install httpd #Fedora 22+/CentOS/RHEL 8
$ sudo yum install httpd #CentOS/RHEL 7
Далее запустите и включите службу apache и проверьте, запущена ли она и работает.
—— В Ubuntu/Debian ——
$ sudo systemctl enable —now apache2
$ sudo systemctl status apache2
—— В CentsOS/RHEL 7/8 ——
$ sudo systemctl enable —now httpd
$ sudo systemctl status httpd
Затем создайте файл виртуального хоста для приложения Rocket.Chat, например, в каталоге /etc/apache2/sites-available/ или /etc/httpd/conf.d/.
—— В Ubuntu/Debian ——
$ sudo vim /etc/apache2/sites-available/chat.merionet.com.conf
—— В CentsOS/RHEL 7/8 ——
$ sudo vim /etc/httpd/conf.d/chat.merionet.com.conf
Далее вставьте конфигурацию в этот файл, заменив домен на свой и сохраните.
ServerAdmin admin@merionet.ru
ServerName chat.merionet.com
LogLevel info
ErrorLog /var/log/chat.merionet.com_error.log
TransferLog /var/log/chat.merionet.com_access.log
RewriteEngine On
RewriteCond % =websocket [NC]
RewriteRule /(.*) ws://localhost:3000/$1 [P,L]
RewriteCond % !=websocket [NC]
RewriteRule /(.*) http://localhost:3000/$1 [P,L]
В Ubuntu и Debian включите необходимые модули apache2 и перезапустите службу.
$ sudo a2enmod proxy_http
$ sudo a2enmod proxy_wstunnel
$ sudo a2enmod rewrite
$ sudo systemctl restart apache2
В CentOS/RHEL и Fedora перезапустите службу apache.
Теперь откройте браузер и введите ваш настроенный адрес и приложение Rocket.Chat станет доступно через ваш домен, настроенный на прокси-сервере.
Шаг 4: Установка клиентов Rocket.Chat
Клиентские приложения можно скачать с официального сайта Rocket.Chat . Чтобы установить десктопное приложение в 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
$ wget -c https://github.com/RocketChat/Rocket.Chat.Electron/releases/download/2.17.7/rocketchat-2.17.7.x86_64.rpm
Затем установите пакет с помощью диспетчера пакетов 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
Ручная установка Rocket.Chat
Если вы не хотите устанавливать Rocket.Chat через Snaps, вы можете сделать это вручную.
Установка Node.js
Сначала обновите список системных пакетов:
Установите Node.js , npm и все другие зависимости, необходимые для сборки пакетов npm из исходного кода:
sudo apt install nodejs npm build-essential curl software-properties-common graphicsmagick
Мы будем использовать n, пакет npm, который позволяет интерактивно управлять версиями Node.js. Выполните команды ниже, чтобы установить n и Node.js:
sudo npm install -g inherits n
sudo n 8.11.3
Установка MongoDB
MongoDB — это документно-ориентированная база данных NoSQL , которая используется Rocket.Chat для хранения данных.
Импортируйте открытый ключ MongoDB и включите официальный репозиторий MongoDB:
sudo apt-key adv —keyserver hkp://keyserver.ubuntu.com:80 —recv 9DA31620334BD75D9DCB49F368818C72E52529D4
sudo add-apt-repository ‘deb [arch=amd64] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse’
После включения репозитория apt обновите список пакетов и установите MongoDB, набрав:
sudo apt update
sudo apt install mongodb-org
Затем включите и запустите службу MongoDB:
sudo systemctl start mongod
sudo systemctl enable mongod
Создание нового системного пользователя
Теперь необходимо создать нового пользователя и группу с именем rocket, которые будут запускать инстанс Rocket.Chat.
sudo useradd -m -U -r -d /opt/rocket rocket
Добавьте пользователя www-data в новую группу пользователей и измените права доступа к каталогу /opt/rocket, чтобы Nginx мог получить доступ к установке Rocket.Chat:
sudo usermod -a -G rocket www-data
sudo chmod 750 /opt/rocket
Установка Rocket.Chat
Переключитесь на пользователя rocket
Загрузите последнюю стабильную версию Rocket.Chat с помощью curl:
curl -L https://releases.rocket.chat/latest/download -o rocket.chat.tgz
После завершения загрузки извлеките архив и переименуйте каталог в Rocket.Chat:
tar zxf rocket.chat.tgz
mv bundle Rocket.Chat
Перейдите в каталог Rocket.Chat/programs/server и установите все необходимые пакеты npm:
cd Rocket.Chat/programs/server
npm install
Чтобы протестировать нашу установку перед созданием модуля systemd и настройкой обратного прокси с Nginx или Apache, мы установим необходимые переменные среды и запустим сервер Rocket.Chat
export PORT=3000
export ROOT_URL=http://0.0.0.0:3000/
export MONGO_URL=mongodb://localhost:27017/rocketchat
Вернитесь в каталог Rocket.Chat и запустите сервер Rocket.Chat, введя следующие команды:
Если ошибок нет, вы должны увидеть следующий вывод:
Остановите сервер Rocket.Chat с помощью Ctrl+C и вернитесь к своему пользователю sudo, набрав exit.
Создание модуль Systemd
Чтобы запустить Rocket.Chat как службу, нужно создать файл модуля rocketchat.service в каталоге /etc/systemd/system/.
sudo nano /etc/systemd/system/rocketchat.service
[Unit]
Description=Rocket.Chat server
After=network.target nss-lookup.target mongod.target
[Service]
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=rocketchat
User=rocket
Environment=MONGO_URL=mongodb://localhost:27017/rocketchat ROOT_URL=https://chat.merionet.com PORT=3000
ExecStart=/usr/local/bin/node /opt/rocket/Rocket.Chat/main.js
Сообщите systemd, что мы создали новый файл модуля, и запустите службу Rocket.Chat, выполнив:
sudo systemctl daemon-reload
sudo systemctl start rocketchat
sudo systemctl status rocketchat
* rocketchat.service — Rocket.Chat server
Loaded: loaded (/etc/systemd/system/rocketchat.service; disabled; vendor preset: enabled)
Active: active (running) since Wed 2018-11-07 14:36:24 PST; 5s ago
Main PID: 12693 (node)
Tasks: 10 (limit: 2319)
CGroup: /system.slice/rocketchat.service
`-12693 /usr/local/bin/node /opt/rocket/Rocket.Chat/main.js
Наконец, включите автоматический запуск службы Rocket.Chat во время загрузки:
sudo systemctl enable rocketchat
Готово, мы установили Rocket.Chat вручную, теперь можно переходить к настройке обратного прокси и инициализации системы, которые были описаны начиная с шага 3.
Итоги
В этом руководстве вы узнали, как установить Rocket.Chat в Linux и как настроить Nginx и Apache в качестве обратного прокси.
Чтобы узнать больше о Rocket.Chat посетите страницу документации .