Не отправляются файлы rocket chat
Требования
1: Установка зависимостей
Чтобы установить MongoDB, нужно сначала добавить сервер ключей:
Затеем нужно задать репозиторий:
echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list
Обновите список пакетов:
sudo apt-get update
sudo apt-get install -y npm mongodb-org curl graphicsmagick
Примечание: Аргумент –y автоматически подтверждает установку.
Теперь установите пакет при помощи NPM:
sudo npm install -g n
Измените версию NodeJS:
Эта команда извлечет архив в каталог bundle. Переместите содержимое этого каталога в каталог с более описательным названием:
В переменной ROOT_URL нужно указать свой URL-адрес:
Затем нужно задать URL-адрес MongoDB в переменной MONGO_URL:
Задайте порт 3000:
3: Настройка обратного прокси-сервера Nginx
sudo apt-get install -y nginx
Переместите закрытый ключ сертификата в /etc/nginx/certificate.key:
sudo cp /path/to/your/key /etc/nginx/certificate.key
sudo cp /etc/letsencrypt/live/your_domain_name/privkey.pem /etc/nginx/certificate.key
Измените права на ключ, чтобы заблокировать доступ несанкционированных пользователей.
sudo chmod 400 /etc/nginx/certificate.key
Теперь скопируйте сертификат в /etc/nginx/certificate.crt:
sudo cp /path/to/your/cert /etc/nginx/certificate.crt
sudo cp /etc/letsencrypt/live/your_domain_name/cert.pem /etc/nginx/certificate.crt
sudo rm /etc/nginx/sites-enabled/default
Если в дальнейшем вам понадобится этот файл, его можно найти в каталоге /etc/nginx/sites-available/default.
Создайте /etc/nginx/sites-enabled/default в nano:
sudo nano /etc/nginx/sites-enabled/default
Сначала добавьте блок upstream:
После этого создайте блок server. Первая его часть указывает имя хоста и порт, который прослушивает Nginx (в данном случае :443).
После этого нужно добавить блок location.
В результате /etc/nginx/sites-enabled/default выглядит так:
Сохраните и закройте файл.
sudo service nginx restart
Чтобы убедиться, что Nginx работает, проверьте состояние сервера:
sudo service nginx status
Команда должна вернуть:
* nginx is running
Если же команда вернула ошибку:
* nginx is not running
проверьте логи /var/log/nginx/rocketchat.access.log и /var/log/nginx/access.log или лог ошибок /var/log/nginx/error.log. Также можно проверить конфигурационный файл на наличие ошибок:
Сначала установите forever (зависимость forever-service):
sudo npm install -g forever
Теперь можно установить forever-service:
sudo npm install -g forever-service
Создайте сервис при помощи forever-service:
sudo forever-service install -s main.js -e "ROOT_URL=https://example.com/ MONGO_URL=mongodb://localhost:27017/rocketchat PORT=3000" rocketchat
Примечание: Чтобы получить справку по синтаксису forever-service, запустите команду:
sudo start rocketchat
Эта команда инициализирует сервис rocketchat, созданный модулем forever-service.
- Запустить:
sudo start rocketchat
- Остановить:
sudo stop rocketchat
- Проверить состояние:
sudo status rocketchat
- Перезапустить:
sudo restart rocketchat
Примечание: Проверьте лог-файл /var/log/rocketchat.log, чтобы узнать подробности запуска приложения.
Выберите Register a new account и введите данные о новом пользователе. Нажмите Submit, а затем выберите имя пользователя. Нажмите Use this username. На экране появится домашняя страница приложения.
- Чтобы выделить текст полужирным, поместите его между звёздочками: *this is bold!*
- Чтобы написать текст курсивом, используйте символы подчёркивания:
- Чтобы использовать блоки встроенного кода, введите обратные кавычки:
Теперь рассмотрим интерфейс приложения. Попробуйте создать новый канал. Для этого нажмите кнопку с плюсом возле Channels.
Выберите название канала. Нажмите Save. Приложение откроет новый канал.
Чтобы получить доступ к интерфейсу администратора, нажмите кнопку со стрелочкой рядом с именем пользователя. Это переведёт вас в новое меню. Выберите Administration. На экране появится меню администратора.
Установка компонентов
Установка необходимых пакетов
apt-get install curl build-essential graphicsmagick nodejs
- curl — служебная программа для взаимодействия с сервисами по различным протоколам с синтаксисом URL. Нам понадобиться для скачивания файлов.
- build-essential — пакет, необходимый для сборки других пакетов.
- graphicsmagick — набор программ для чтения и редактирования файлов различных графических форматов.
- nodejs — программная платформа, которая делает код javascript в язык общего назначения.
Устанавливаем inherits и node версии 12.14.0:
npm install -g inherits n && sudo n 12.14.0
Установка MongoDB
Конфигурируем репозиторий для MongoDB:
Импортируем ключ из репозитория для проверки пакетов от подделки:
Обновляем список пакетов:
И устанавливаем mongodb-org:
apt-get install mongodb-org
Вносим изменения в конфигурационный файл:
Разрешаем автозапуск mongodb и стартуем его:
systemctl enable mongod
systemctl start mongod
Инициализируем базу данных:
mongo --eval "printjson(rs.initiate())"
Установка
Для установки скачиваем пакет:
* обязательно сохраняем архив в каталог /tmp.
Распаковываем скачанный пакет:
Переходим в распакованный каталог:
. и переносим его в каталог /opt:
Настройка
Создаем пользователя для rocketchat:
useradd -M rocketchat
usermod -L rocketchat
* где первая команда создаст пользователя rocketchat без домашнего каталога; вторая — блокирует пароль пользователя.
Задаем владельца для каталога с rocketchat:
Создаем файл для нового юнита в systemd:
* в данном примере сервис будет запущен на порту 3000.
Применяем изменения в systemd:
Разрешаем сервис для rocketchat и запускаем сервер для чата:
systemctl enable rocketchat
systemctl start rocketchat
Ждем около 20 секунд — запуск выполняется не сразу.
Если используется брандмауэр, открываем порт:
iptables -A INPUT -p tcp --dport 3000 -j ACCEPT
. и сохраняем настройки:
apt-get install iptables-persistent
Установка и настройка клиента
* клиент может быть установлен на Windows, Mac OS, Linux. В данном примере скачиваем для Windows.
Устанавливаем и запускаем программу — откроется окно для подключения. Вводим IP-адрес и порт нашего сервера:
. система проверит подключение к серверу и предложит подключиться к серверу.
При первом входе клиент потребует зарегистрировать учетную запись администратора. Заполняем поля и регистрируемся.
Создание нового пользователя
Переходим к администрированию сервера. Кликаем по иконки меню (с тремя точками) и выбираем Administration:
Переходим в раздел Users:
Кликаем по «плюсику» для создания нового пользователя:
Заполняем поля и кликаем по Save.
Настройка языка
Выбор языка в клиенте
Открываем клиентскую программу - кликаем по значку пользователя - выбираем My Account:
Кликаем по Preferences:
Выбираем язык и сохраняем настройки:
Настройка языка по умолчанию
Переходим к администрированию сервера. Кликаем по иконки меню (с тремя точками) и выбираем Administration:
Выбираем пункт меню General:
Выбираем язык по умолчанию:
. и сохраняем настройки.
Установка NGINX и получение сертификата
В качестве веб-сервера удобнее всего использовать NGINX. Установим его командой:
apt-get install nginx
Сразу разрешим автозапуск nginx:
systemctl enable nginx
Игаче, создадим конфигурационный файл с настройками для домена:
systemctl restart nginx
Если мы используем брандмауэр, создаем правила:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
apt-get install certbot
Получаем сертификат командой:
Если все сделано правильно, мы увидим:
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
.
Создаем задание для автоматического обновления сертификата:
И добавляем строку:
0 0 * * 1,4 /usr/bin/certbot renew && systemctl reload nginx
Открываем наш конфигурационный файл для nginx:
В поисках хорошего корпоративного чата некоторое время назад я наткнулся на mattermost. При ближайшем знакомстве оказалось, что это бесплатная альтернатива Slack. Я знаком с разными бесплатными корпоративными мессенджерами, но mattermost понравился больше всего. В этой статье я хочу рассказать, как установить и настроить mattermost на Centos 7.
Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с онлайн-курсом «DevOps практики и инструменты» в OTUS. Курс не для новичков, для поступления нужно пройти .Введение
Посмотреть подробно, что такое mattermost можно на официальном сайте. Если кратко, то это форк платного мессенджера Slack. Я не очень знаком с историей развития последнего, поэтому не знаю, когда и при каких условиях от него отпочковался бесплатный аналог. Похоже, исходники слака в какое-то время были доступны, и благодаря этому у него появились бесплатные аналоги.
Так же я подробно знакомился с сервером MyChat. По ссылке подробная статья и мой личный отзыв и впечатления после тестирования. В целом, продукт неплохой при цене ниже, чем платная версия mattermost, а функционал шире.
Рассмотрю еще один момент - зачем, собственно, нужны какие-то мессенджеры, когда есть skype, telegram, viber и другие бесплатные и популярные программы для общения. Тот, кто использовал указанные выше аналоги в реальной работе коллектива в 20-30 человек, думаю прекрасно себе представляет, в чем тут могут быть проблемы. Пройдусь по основным моментам:
Этот список на основе моего опыта работы небольших коллективов с различными мессенджерами. Кстати, наиболее простым и функциональным решением для корпоративного чата мне долгое время казалось решение на основе openfire. И только после знакомства с mattermost я стал потихоньку его внедрять в работу. Кратко расскажу о его достоинствах и недостатках, которые заметил я. Сначала достоинства:
- Сервер mattermost представляет из себя приложение, которое вы устанавливаете на своем сервере. То есть это закрытое решение, которое полностью под вашим контролем. Вы можете как угодно ограничивать к нему доступ на уровне сервера.
- Централизованное управление учетными записями. Администратор без проблем управляет всеми учетками - создает, блокирует, меняет пароли, выдает доступы и т.д.
- Централизованное хранение истории на вашем личном сервере в базе данных mysql. Можете ее хранить сколько угодно долго, бэкапить, восстанавливать, читать при необходимости.
- Удобная передача файлов прямо в чате. При этом файлы хранятся у вас на сервере сколь угодно долго.
- Приятный и понятный дизайн. Чат выглядит абсолютно одинаково через отдельное приложение, либо через браузер. Где пользоваться чатом каждый выбирает на свое усмотрение.
Теперь недостатки mattermost:
Вот пожалуй и все. Если с мобильной версией еще можно смириться, лично мне она не нужна, то списка юзеров и подтверждения прочтения мне не хватает. Тем не менее, что-то лучше, чем mattermost за бесплатно я не знаю. Буду рад, если кто-то поделится информацией на эту тему. Возможно, какой-то интересный и функциональный корпоративный мессенджер прошел мимо меня.
Подготовка к установке
Устанавливать mattermost будем на сервер под управлением CentOS 7. Если у вас еще нет готового сервера, можете воспользоваться моими руководствами по установке и настройке centos.
Далее нам понадобится web сервер с mysql. Я предпочитаю управлять базой данной mysql с помощью phpmyadmin, поэтому рекомендую мою статью на эту тему - установка phpmyadmin на CentOS 7. Там я подробно рассмотрел момент подготовки web сервера и установки непосредственно phpmyadmin. Далее я кратко выполню необходимые команды, а вы сами можете более подробно ознакомиться с процессом настройки по указанной выше ссылке.
Запускаем все это хозяйство и добавляем в автозагрузку.
Устанавливаем пароль root для mariadb.
Теперь установим phpmyadmin, предварительно подключив epel репозиторий. Подробнее о репозиториях читайте отдельно.
Заменяем параметры директории /usr/share/phpMyAdmin/ на следующие значения.
Установка mattermost
Идем в phpmyadmin и создаем там пользователя mattermost, указав также создать одноименную базу и выставить новому пользователю полные права на нее.
Распаковываем архив и переносим его в директорию /opt.
Создаем директорию для хранения файлов, которые будут передавать пользователи через чат.
Создаем отдельного пользователя для запуска сервера и доступа к папкам.
Редактируем конфигурационный файл, указывая там доступ к базе данных mysql.
Находим строку с DataSource и изменяем параметры подключения.
mattermost | Имя пользователя и базы данных mysql. В моем случае это одно и то же слово. |
12345678 | Пароль пользователя mysql mattermost. |
localhost | IP адрес mysql сервера. В данном случае это тот же сервер, где я выполняю установку. |
По идее все готово. Пробуем запустить сервер.
Я стабильно в этот момент получаю ошибку:
При этом делаю все в соответствии с инструкцией на сайте. Ошибка понятна и легко исправляется. Mattermost при создании таблиц в базе данных создает их типа Innodb, а ему надо MyISAM. Я не вдавался в подробности, почему так происходит. Возможно это как-то связано с настройками базы данных по-умолчанию. Мы просто изменим тип уже созданных таблиц. Для этого идем в phpmyadmin, открываем там базу данных mattermost и выполняем sql запрос.
Этот запрос сформирует нам список команд для изменения каждой таблицы. Я это сделал, чтобы не вручную менять тип каждой таблицы по отдельности. Отображаем полные строки получившихся команд и копируем их все.
Должен получиться такой набор SQL команд.
Выполняем их все сразу так же в базе mattermost. После этого все таблицы должны стать MyISAM.
Снова запускаем сервер.
Если все в порядке, то должны увидеть такой вывод. Сервер успешно стартовал на порту 8065. Создадим файл для управления и запуска сервера как службы через systemctl. Останавливаем сервер по ctrl+c в консоли и создаем файл.
Делаем его исполняемым.
Перезапускаем службу systemd.
Разрешаем запуск службы mattermost, добавляем ее в автозагрузку и запускаем.
Проверяем, запустился ли сервер.
Настройка mattermost
При первом заходе в чат по указанному ранее адресу, вы попадаете на страницу создания учетной записи администратора. Указывайте ваш емейл, имя пользователя и пароль. Далее вам предлагают создать команду - team. В данном случае это что-то вроде отдельного изолированного чата. На сервере может быть несколько независимых друг от друга тимов со своими пользователями и комнатами. Можно создать team позже, а сначала перейти в консоль и сделать несколько полезных настроек.
Так что идем в раздел NOTIFICATIONS -> Email , указываем там Enable Email Notifications - true и дальше заполняем необходимые настройки, которые будут отличаться в зависимости от того, каким почтовым сервером вы будете пользоваться.
Далее укажите язык по-умолчанию для всех пользователей, чтобы не пришлось его потом менять у каждого по отдельности. Для этого идем в раздел GENERAL -> Localization и выбираем нужные языки.
Так же рекомендую обратить внимание на настройку подтверждения email адреса. Она по-умолчанию выключена. Лично мне так удобнее, я ее не включаю. Когда сервер закрытый и все учетные записи создает администратор, подтверждение email не нужно. Но если у вас пользователи сами создают свои учетки, то лучше включить подтверждение, иначе при ошибке в указании почтового адреса, уведомления приходить не будут.
Не забудьте в разделе FILES-> Storage указать путь к каталогу хранения файлов - /opt/mattermost/data.
Теперь создадим одну team. Для этого нажимаем на ссылку Team Selection.
Нажимаем на ссылку Create a new team , указываем название и ссылку для входа в данную команду.
После этого мы попадаем в только что созданную команду. Если вы решили отключить публичную регистрацию, то для регистрации пользователя вам надо получить ссылку. Она находится в меню пользователя администратора.
Перевод адекватный, ляпов я не заметил, можно пользоваться.
Остальные настройки можете сами пробежать, просмотреть. Их не много, все достаточно понятно. Создавайте пользователей, каналы для них, приватные комнаты и т.д. В общем, изучайте самостоятельно функционал, ничего особенного там нет. Упомяну еще несколько настроек, которые я делаю пользователям. На мой взгляд, с ими удобнее. Все параметры указываются в настройках аккаунта.
Вот в общем и все, что я обычно делаю. Настройка сервера и учетной записи закончена. Можно добавлять юзеров и начинать пользоваться.
Установка приложения mattermost на компьютер
После установки необходимо подключиться к нужной команде. Для этого надо использовать свою учетную запись и ссылку на конкретную команду, которая формируется в момент создания. В моем случае подключение настраивается так.
Дальше вводите логин и пароль и начинаете пользоваться.
В процессе эксплуатации я встречал мелкие баги, поэтому рекомендую следить за выходом новых версий. Проект активно развивается и периодически выходят новые версии как клиента, так и сервера. Не забывайте обновляться.
Все основные моменты рассказал. Сервер мы настроили, пользователей добавили. Корпоративным чатом можно пользоваться. Но если вы хотите опубликовать его в интернете и использовать публичный доступ, то я расскажу вам как это красиво и аккуратно сделать. До кучи добавим сертификат на доменное имя.
Проксирование чата mattermost через nginx
Вместо него установим nginx. По большому счету, это можно было сделать сразу, но я поленился, так как phpmyadmin под апачем настроить проще и быстрее. Добавляем репозиторий nginx.
Запускаем и добавляем в автозагрузку.
Убеждаемся, что он работает, перейдя по ip адресу сервера в браузере. Рисуем файл конфигурации для проксирования mattermost.
Удалим стандартную конфигурацию nginx. Вместо нее будет использоваться наша.
Проверяем конфигурацию nginx и перезапускаем его.
На этом все, установка и настройка бесплатного мессенджера mattermost завершена. Получилось вполне функциональное и законченное решение.
Обновление mattermost
С момента написания статьи прошло некоторое время, и вышла новая 4-я версия сервера. Я расскажу, как обновить сервер 3-й версии до последней на текущий момент версии mattermost 4.5.0. При обновлении любого продукта необходимо делать резервные копии. Сделаем и мы, отдельно директорию с самим сервером и базу данных.
Копируем директорию с файлами.
Бэкапим mysql базу.
Теперь можно смело обновляться. Если что-то пойдет не так, можем быстро откатиться на старую версию. Скачиваем и распаковываем свежую версию сервера.
Удаляем старую папку с сервером и копируем на ее место новую.
Копируем из бэкапа конфиг, загруженные файлы и логи.
Делаем владельцем директории с новой версией системного пользователя mattermost.
Запускаем сервер и проверяем работу.
С обновлением mattermost все. Можно заходить и проверять изменения. Не забудьте обновить версию клиента. Хотя старая все равно будет работать, но в новой будет расширен функционал и исправлены баги.
Заключение
Не понравилась статья и хочешь научить меня администрировать? Пожалуйста, я люблю учиться. Комментарии в твоем распоряжении. Расскажи, как сделать правильно!Я привел реальный пример использования бесплатного корпоративного чата в своей практике. Чат удобный, функциональный, легко и быстро настраивается. Можно без проблем передать администрирование чата после настройки обычному сотруднику, который через админку будет управлять командами и пользователями. Внимание к себе чат почти не просит, работает надежно и стабильно. В общем, получился неплохой продукт. Рекомендую обратить на него внимание и попробовать. Если у кого есть еще удачные примеры подобных чатов, делитесь информацией в комментариях.
- Чат в реальном времени
- Аудиоконференции
- Видеоконференции
- Каналы
- Гостевой вход
- Трансляция экрана
- Передача файлов
- Полнофункциональный API
Для обеспечения безопасности используется:
- Групповая синхронизация LDAP
- Двухфакторная аутентификация 2FA
- Сквозное шифрование
- Единый вход SSO
- Несколько поставщиков Oauth аутентификации
Шаг 1. Установка Snap в Linux
Для простоты мы будем использовать систему управления пакетами Snaps . Первым делом надо установить пакет snapd c помощью диспетчера пакетов.
Далее необходимо включить модуль systemd, который управляет основным сокетом мгновенной связи. Эта команда запустит сокет и позволит ему запускаться при загрузке системы.
$ sudo systemctl enable --now snapd.socket
Для установки rocketchat-server выполните:
$ sudo snap install rocketchat-server
После загрузки мастера настройки укажите следующие параметры: полное имя администратора, имя пользователя, адрес электронной почты организации и пароль.
Далее надо указать информацию об организации: тип организации, название, отрасль, размер, страна и сайт.
Затем нужно указать информацию о сервере - имя сайта, язык, тип сервера, и включение или отключение двухфакторной аутентификации 2FA.
Настройка завершена, и ваше рабочее пространство готово, теперь надо нажать Go to your workspace (Перейти в рабочее пространство)
Вот так оно выглядит.
Сначала установите Nginx.
Далее запустите службу Nginx, включите ее автоматический запуск при загрузке системы и проверьте ее статус
$ sudo systemctl enable --now nginx
$ sudo systemctl status nginx
Далее вставьте конфигурацию в этот файл, заменив домен на свой и сохраните.
upstream backend server 127.0.0.1:3000;
>
Наконец проверьте синтаксис и перезапустите службу Nginx.
$ sudo nginx -t
$ sudo systemctl restart nginx
Установите пакет Apache2
Далее запустите и включите службу apache и проверьте, запущена ли она и работает.
----- В Ubuntu/Debian -----
$ sudo systemctl enable --now apache2
$ sudo systemctl status apache2
Далее вставьте конфигурацию в этот файл, заменив домен на свой и сохраните.
<Location />
Require all granted
</Location>
В Ubuntu и Debian включите необходимые модули apache2 и перезапустите службу.
В CentOS/RHEL и Fedora перезапустите службу apache.
Затем установите пакет с помощью диспетчера пакетов 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
Установка 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 и включите официальный репозиторий MongoDB:
После включения репозитория apt обновите список пакетов и установите MongoDB, набрав:
Читайте также: