Установка корпоративного чату Rocket.Chat на Linux

Anonim

Rocket.Chat - це безкоштовний масштабований open source корпоративний чат, розроблений за допомогою Meteor. Rocket.Chat можна вважати аналогом Slack, який можна розгорнути на своєму сервері, і підключатися до нього з клієнтів на Linux, Windows, macOS, Android і iOS.

Установка корпоративного чату Rocket.Chat на Linux 18002_1

функції Rocket.Chat

  • Чат в реальному часі
  • аудіоконференції
  • відеоконференції
  • канали
  • гостьовий вхід
  • трансляція екрану
  • передача файлів
  • повнофункціональний 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.

http: // SERVER_IP 3000

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

Установка корпоративного чату Rocket.Chat на Linux 18002_2

Далі треба вказати інформацію про організацію: тип організації, назва, галузь, розмір, країна і сайт.

Установка корпоративного чату Rocket.Chat на Linux 18002_3

Потім потрібно вказати інформацію про сервер - ім'я сайту, мову, тип сервера, і включення або відключення двофакторної аутентифікації 2FA.

Установка корпоративного чату Rocket.Chat на Linux 18002_4

На наступній сторінці потрібно зареєструвати сервер. Тут є дві опції. Перша - використовувати попередньо налаштовані шлюзи і проксі, надані Rocket.Chat Друга - зберегти автономність і створити облікові записи у постачальників послуг, оновити попередньо налаштовані параметри, а також перекомпіліровать мобільні додатки з вашими приватними сертифікатами.

Установка корпоративного чату Rocket.Chat на Linux 18002_5

Налаштування завершено, і ваш робочий простір готове, тепер треба натиснути Go to your workspace (Перейти в робочий простір)

Установка корпоративного чату Rocket.Chat на Linux 18002_6

Ось так воно виглядає.

Установка корпоративного чату Rocket.Chat на Linux 18002_7
Крок 3: Налаштування зворотного проксі для Rocket.Chat

Зворотний проксі-сервер, наприклад nginx або Apache, дозволяє настроїти програму Rocket.Chat для доступу через домен або піддомен. Rocket.Chat є сервером додатків середнього рівня, який не підтримує SSL / TLS. Зворотний проксі-сервер дозволить налаштовувати сертифікати SSL / TLS для включення HTTPS.

Зворотний проксі Nginx для Rocket.Chat

Спочатку встановіть Nginx.

$ 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; error_log /var/log/nginx/chat.merionet.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; }}

Нарешті перевірте синтаксис і перезапустіть службу Nginx.

$ Sudo nginx -t $ sudo systemctl restart nginx

Зворотний проксі Apache для Rocket.Chat

Встановіть пакет Apache2

$ 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 [email protected] ServerName chat.merionet.com LogLevel info ErrorLog /var/log/chat.merionet.com_error.log TransferLog /var/log/chat.merionet.com_access.log Require all granted 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 /

В 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

Тепер відкрийте браузер і введіть ваш налаштований адресу і додаток Rocket.Chat стане доступним через ваш домен, налаштований на проксі-сервері.

http://chat.merionet.com

Установка корпоративного чату Rocket.Chat на Linux 18002_8
Крок 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

Спочатку треба оновити системних пакетів:

sudo apt update

Встановіть 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

sudo su - 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, ввівши наступні команди:

cd ../../ node main.js

Якщо помилок немає, ви повинні побачити наступний висновок:

? + --------------------------------------------- +? | SERVER RUNNING | ? + --------------------------------------------- +? | | ? | Rocket.Chat Version: 0.71.1 | ? | NodeJS Version: 8.11.3 - x64 | ? | Platform: linux | ? | Process Port: 3000 | ? | Site URL: http://0.0.0.0:3000/ | ? | ReplicaSet OpLog: Disabled | ? | Commit Hash: e73dc78ffd | ? | Commit Branch: HEAD | ? | | ? + --------------------------------------------- +

Зупиніть сервер 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 [Install] WantedBy = multi-user.target

Повідомте 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 відвідайте сторінку документації.

Читати далі