Данный гайд по шагам описывает процесс запуска корпоративного мессенджера с открытым исходным кодом MatterMost на виртуальной машине Ubuntu.
Ссылка на официальную документацию
Для обеспечения безопасного удаленного доступа к серверу необходимо сгенерировать SSH-ключи.
- Для Смартфона - воспользуйтесь Termius
- Для MacOS - откройте терминал
- Для Windows 10/11 - откройте PowerShell
Введите в консоли команду создания папки для ключей
mkdir -p /Users/<пользователь>/.sshkeys/mmvm7/
Сгенерируйте ключи по указанной директории
ssh-keygen
Вывод консоли на команду ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/pyshkovni/.ssh/id_rsa):
--> укажите путь /Users/<пользователь>/.sshkeys/mmvm7/id_rsa --> нажмите Return
Enter passphrase (empty for no passphrase): --> введите n12345 (пример)
Виртуальная машина создавалась в облачном сервисе Yandex Cloud. Виртуальную машину можно создать в рамках бесплатного гранда от Yandex Cloud. Для этого зарегистрируйтесь в сервисе и прикрепите платежную карту.
- Перейдите в сервисах в Compute Cloud
- Создайте VM со следующими параметрами:
- Ubuntu 20.04 (данная версия обязательна)
- Загрузочный диск SSD - 15 Гб (затем можно добавить дополнительный диск для хранения данных)
- Платформа Intel Icelake
- vCPU 2 ядра
- RAM 4 Гб
- Введите логин
- Вставьте скопированный ssh-ключ
- Включите доступ к серийной консоли
- Нажмите создать
Купить доменное имя без хостинга (например, в reg.ru).
В терминале введите команду
ssh -i /Users/<пользователь>/.sshkeys/mmvm7/id_rsa <login>@<public ip>
Перейдите в пользователя root
sudo -i
Обновите ссылки репозитории
apt update
Обновите пакеты
apt upgrade
MySQL - это система управления базам данных MySQL
Введите команду, чтобы установить пакет
apt install mysql-server
Проверьте статус сервиса. Должно быть active
service mysql status
Зайдите в MySQL
mysql
Появится приветствие и командная строка SQL
Создайте пользователя mmuser
create user 'mmuser'@'%' identified by '<ваш_пароль>';
Создайте базу данных mattermost
create database mattermost;
Определите для него полные права
grant all privileges on mattermost.* to 'mmuser'@'%';
Предоставьте доступ ко всем командам
GRANT ALTER, CREATE, DELETE, DROP, INDEX, INSERT, SELECT, UPDATE, REFERENCES ON mattermost.* TO 'mmuser'@'%';
Закройте MySQL
exit
Скачайте архив с программой по ссылке (версия mattermost 7.4.0)
wget https://releases.mattermost.com/7.4.0/mattermost-7.4.0-linux-amd64.tar.gz
Распакуйте архив
tar -xvzf mattermost*.gz
Перенесите распакованную папку mattermost в папку /opt
mv mattermost /opt
Создайте папку /opt/mattermost/data
mkdir /opt/mattermost/data
Создайте пользователя mattermost
useradd --system --user-group mattermost
Задайте владельца каталога /opt/mattermost
chown -R mattermost:mattermost /opt/mattermost
Определите права владения каталогом /opt/mattermost
chmod -R g+w /opt/mattermost
Откройте файл config.json в редакторе vim
vim /opt/mattermost/config/config.json
С помощью команды поиска в vim (нажмите /) найдите и отредактируйте следующие строки.
Проверьте наличие символа & между utf8 и writeTimeout!!!
=================================================================
...
"DriverName": "mysql",
"DataSource": "mmuser:<ваш пароль>@tcp(localhost:3306)/mattermost?charset=utf8mb4,utf8&writeTimeout=30s",
...
=================================================================
Найдите строку SiteURL и добавьте доменное имя. Сохраните файл и закройте его с помощью :wq
=================================================================
...
"SiteURL": "http://www.<имя>.<домен>",
...
:wq
=================================================================
Выйдите из пользователя root
exit
Перейдите в папку /opt/mattermost
cd /opt/mattermost
Запустите mattermost
sudo -u mattermost ./bin/mattermost
Откройте браузер и перейдите по адресу
http://<Публичный IP-адрес>:8065
По завершению проверки вернитесь терминал и прекратите процесс
Нажмите сочетание клавиш Ctrl C
Для запуска в фоновом режиме необходимо прописать её в systemd
Перейдите в пользователя root
sudo -i
Создайте файл mattermost.service
touch /lib/systemd/system/mattermost.service
Откройте файл в vim
vim /lib/systemd/system/mattermost.service
Скопируйте настройки ниже и вставьте их в файл
[Unit]
Description=Mattermost
After=network.target
After=mysql.service
BindsTo=mysql.service
[Service]
Type=notify
ExecStart=/opt/mattermost/bin/mattermost
TimeoutStartSec=3600
KillMode=mixed
Restart=always
RestartSec=10
WorkingDirectory=/opt/mattermost
User=mattermost
Group=mattermost
LimitNOFILE=49152
[Install]
WantedBy=mysql.service
Перезапустите systemd
systemctl daemon-reload
Проверьте статус mattermost.service. Должен быть dead
systemctl status mattermost.service
Запустите mattermost.service
systemctl start mattermost.service
Установите автоматический запуск mattermost.service при запуске ВМ
systemctl enable mattermost.service
В браузере перейдите по домену в mattermost либо воспользуйтесь публичным ip-адресом
http://www.<имя>.<домен>:8065
http://<Публичный IP-адрес>:8065
раздел в разработке
раздел в разработке
раздел в разработке
Docker используется для упрощения процесса разработки, тестирования и развертывания приложений. Он позволяет разработчикам упаковывать свое приложение и все необходимые зависимости в один компактный образ, который можно легко переносить между разными средами и операционными системами. Образы Docker могут быть использованы многократно, что снижает затраты на разработку и тестирование.
Оффициальная документация
Подготовить виртуальную машину к работе с docker и docker-compose.
sudo apt update
sudo apt install docker.io
sudo apt install docker-compose
Запустить docker в фоновом режиме
sudo systemctl start docker
Создать группу пользователей docker
sudo groupadd docker
Добавить текущего пользователя в группу docker
sudo usermod -aG docker ${USER}
Как только Docker и пользователи будут настроены, запустите следующую команду:
docker run --name mattermost-preview -d --publish 8065:8065 mattermost/mattermost-preview
Запускаем клонирование репозитория git
git clone https://github.com/mattermost/docker && cd docker
Скопируем файл конфигурации
cp env.example .env
Заходим в скопированный файл и редактируем его
nano env.example .env
В строчке DOMAIN меняем значение mm.example.com
на публичный ip-адрес виртуальной машины. Делаем это дважды!
Настраиваем нужные директории
mkdir -p ./volumes/app/mattermost/{config,data,logs,plugins,client/plugins,bleve-indexes} && sudo chown -R 2000:2000 ./volumes/app/mattermost
Запуск сборка образа mattermost через docker-compose (без NGINX)
sudo docker-compose -f docker-compose.yml -f docker-compose.without-nginx.yml up -d
В браузере перейдите по ссылке http://<публичный ip-адрес>:8065
.
Процесс запуска с docker завершен!