Тонкости установки Rocket.Chat на Ubuntu 24.04
- С установкой нет ничего сложного т.к. она производится из Snap пакета вместе с установкой ОС (просто отмечаем соответствующий пакет при установке, возможно потребуется соединение с интернетом).
- На этом этапе возможно сразу выбрать 1 из доступных версий 4.**/5.**/6.** если провалиться в подменю
- Т.к. установка производилась на Hyper-V (возможно AVX не поддерживает сама Hyper-V или процессор который стоял) после установке по адресу http://localhost:3000 ничего не открылось. Исследовав журнал загрузки
journalctl -b
было выяснено, что не стартует MongoDB из-за того, что начиная с версии 5.** требуется поддержка процессором AVX(которая отсутствовала) из-за чего потребовалась переустановка Rocket.Chat на более старую версию 4.** со старой версией MongoDB - После переустановки перед заведением всех пользователей рекомендуется первым делом настроить либо отправку почты SMTP, либо отключить двухфакторную авторизацию т.к. можно как я угодить в петлю (для внесения изменений требуется ввести код из письма, а отправка писем ещё не настроена) как из неё выбраться написано в конце статьи.
- По умолчанию люди не могут скачивать файлы с сервера т.к. открывается страница с сообщением, что пользователю не достаточно прав пока не разобрался почему победил следующим образом:
Сначала сменим каталог хранения файлов
Администрирование -> Настройки -> Загрузка файлов-> File system
/var/snap/rocketchat-server/common/upload
Далее отключаем параметр Защищать загруженные файлы он и не дает
скачивать файлы
Подключаемся по SSH и под root создадим соответствующий каталог:
sudo su
mkdir /var/snap/rocketchat-server/common/upload
переходим в каталог common
cd /var/snap/rocketchat-server/common/
выдаем права на папку upload
chmod -R 777 upload
- Т.к. версия сервера у меня установлена 4.** то клиент последней версии жалуется на неподдерживаемую версию сервера. Это легко решается установкой старой версии клиента из архива:
https://wingetgui.com/apps/RocketChat-RocketChat
с версией сервера 4.** хорошо работает версия клиента 3.8.5 - Всё на этом установка и настройка закончена далее вводим всех пользователей с паролями и отключаем так же обновления клиента в пункте Справка -> О Rocket.Chat
- Из дополнительных настроек я только отключал доступ к страничке регистрации новых пользователей
Если всё же угодить в петлю то выбраться из неё можно следующим образом. Для этого потребуется установить Mongo-sh:
curl -fsSL https://www.mongodb.org/static/pgp/server-7.0.asc | sudo gpg --dearmor -o /usr/share/keyrings/mongodb-server-7.0.gpg
Создадим список файлов MongoDB
echo
"deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0 multiverse"
| sudo
tee
/etc/apt/sources.list.d/mongodb-org-7.0.list
Установим пакет консоли MongoDB:
sudo apt install mongodb-mongosh
Далее всё просто запускаем MongoSH она автоматически подключится к серверу баз данных:
Откроем нужную БД и изменим записи ответственные за двухфакторную авторизацию:
db.rocketchat_settings.update({"_id" : "Accounts_TwoFactorAuthentication_Enabled"},{$set: {"packageValue" : false}});
db.rocketchat_settings.update({"_id" : "Accounts_TwoFactorAuthentication_Enabled"},{$set: {"value" : false}});
db.rocketchat_settings.update({"_id" : "Accounts_TwoFactorAuthentication_By_Email_Enabled"},{$set: {"packageValue" : false}});
db.rocketchat_settings.update({"_id" : "Accounts_TwoFactorAuthentication_By_Email_Enabled"},{$set: {"value" : false}});
db.rocketchat_settings.update({"_id" : "Accounts_TwoFactorAuthentication_Enforce_Password_Fallback"},{$set: {"packageValue" : false}});
db.rocketchat_settings.update({"_id" : "Accounts_TwoFactorAuthentication_Enforce_Password_Fallback"},{$set: {"value" : false}});
Мне хватило смены первых двух параметров чтоб выйти из петли.
Так же добавлю что были проблемы со скачиванием файлов потому, в основных настройках адрес хоста постоянно менялся на "localhost:3000" из-за чего файлы не скачивались т.к. localhost подставлялся в адресе на скачивание решается это следующей командой:
snap set rocketchat-server siteurl=http://yourdomainname.com:3000
Ну в моем случае т.к. установка производилась из snap пакета. Так же не забываем обращаться к серверу именно по доменному имени, а не по IP адресу (для этого возможно придется внести соответствующие настройки в ваш маршрутизатор, если сервер локальный).
А посмотреть текущие настройки можно командой:
snap get rocketchat-server