Rocket.Chat - гэта бясплатны які маштабуецца open source карпаратыўны чат, распрацаваны з дапамогай Meteor. Rocket.Chat можна лічыць аналагам Slack, які можна разгарнуць на сваім сэрвэры, і падлучацца да яго з кліентаў на Linux, Windows, macOS, Android і iOS.
функцыі 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
Пасля загрузкі майстры налады пакажыце наступныя параметры: поўнае імя адміністратара, імя карыстальніка, адрас электроннай пошты арганізацыі і пароль.
Далей трэба пазначыць інфармацыю пра арганізацыю: тып арганізацыі, назву, галіна, памер, краіна і сайт.
Затым трэба паказаць інфармацыю аб серверы - імя сайта, мова, тып сервера, і ўключэнне або адключэнне двухфакторную аўтэнтыфікацыі 2FA.
На наступным старонцы трэба зарэгістраваць сервер. Тут ёсць дзве опцыі. Першая - выкарыстоўваць папярэдне настроеныя шлюзы і проксі, прадастаўленыя Rocket.Chat Другая - захаваць аўтаномнасць і стварыць уліковыя запісы ў пастаўшчыкоў паслуг, абнавіць папярэдне настроеныя параметры, а таксама перакампіляваць мабільныя прыкладання з вашымі прыватнымі сертыфікатамі.
Налада завершана, і ваша працоўная прастора гатова, цяпер трэба націснуць Go to your workspace (Перайсці ў працоўную прастору)
Вось так яно выглядае.
Крок 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
Крок 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
ўстаноўка 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 наведайце старонку дакументацыі.