Ўстаноўка карпаратыўнага чата 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 наведайце старонку дакументацыі.

Чытаць далей