Rocket.Chat - це безкоштовний масштабований open source корпоративний чат, розроблений за допомогою Meteor. Rocket.Chat можна вважати аналогом Slack, який можна розгорнути на своєму сервері, і підключатися до нього з клієнтів на Linux, Windows, macOS, Android і iOS.
![Установка корпоративного чату Rocket.Chat на Linux 18002_1](/userfiles/21/18002_1.webp)
функції 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](/userfiles/21/18002_2.webp)
Далі треба вказати інформацію про організацію: тип організації, назва, галузь, розмір, країна і сайт.
![Установка корпоративного чату Rocket.Chat на Linux 18002_3](/userfiles/21/18002_3.webp)
Потім потрібно вказати інформацію про сервер - ім'я сайту, мову, тип сервера, і включення або відключення двофакторної аутентифікації 2FA.
![Установка корпоративного чату Rocket.Chat на Linux 18002_4](/userfiles/21/18002_4.webp)
На наступній сторінці потрібно зареєструвати сервер. Тут є дві опції. Перша - використовувати попередньо налаштовані шлюзи і проксі, надані Rocket.Chat Друга - зберегти автономність і створити облікові записи у постачальників послуг, оновити попередньо налаштовані параметри, а також перекомпіліровать мобільні додатки з вашими приватними сертифікатами.
![Установка корпоративного чату Rocket.Chat на Linux 18002_5](/userfiles/21/18002_5.webp)
Налаштування завершено, і ваш робочий простір готове, тепер треба натиснути Go to your workspace (Перейти в робочий простір)
![Установка корпоративного чату Rocket.Chat на Linux 18002_6](/userfiles/21/18002_6.webp)
Ось так воно виглядає.
![Установка корпоративного чату Rocket.Chat на Linux 18002_7](/userfiles/21/18002_7.webp)
Зворотний проксі-сервер, наприклад 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](/userfiles/21/18002_8.webp)
Клієнтські програми можна завантажити з офіційного сайту 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
установка MongoDBMongoDB - це документно-орієнтована база даних 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 відвідайте сторінку документації.