Статья успешно отправлена на почту

Установка платформы Mobile SMARTS на ПК с ОС Linux

Применимо к продуктам: Mobile SMARTS платформа
Последние изменения: 2025-02-10

Выделите текст или фото, с замеченной ошибкой > нажмите карандаш для редактирования

Заметили ошибку в тексте?
Напишите нам, мы исправим!

Ниже указаны версии ОС и параметры ПК/ виртуальных машин, на которых тестировалась работоспособность сервера Mobile SMARTS при средней (до 10 подключенных устройств) нагрузке.

Версии Linux:

  • Astra Linux
  • Ubuntu
  • Debian

Требования к ПК:

Процессор Двухъядерный с тактовой частотой ядра 2 ГГц и выше (x64)
ОЗУ 8 ГБ
Тип диска SSD
Свободное пространство на диске 10 Гб и более

Версии Linux, с которыми работа сервера не тестировалась, но должна поддерживаться:

  • Alpine
  • CentOS
  • Fedora
  • OpenSUSE
  • Red Hat Enterprise Linux
  • SLES

Какой функционал Mobile SMARTS не поддерживается Linux:

  1. Серверная печать.
  2. Любые дополнительные коннекторы к учетным системам.
  3. Сервис подписи документов («Кировка»)
  4. Коннектор Axapta
  5. Коннектор 1С работает только в режиме Web (пример строки для подключения к http-сервисам 1С: http://127.0.0.1/ut114demo/ws/CleverenceWebExtension.1cws).

Все пути и имена файлов в Linux регистрочувствительны. 

Установка Docker

В Linux все действия с Mobile SMARTS выполняются через Docker, поэтому в первую очередь необходимо проверить, установлен ли у вас Docker.

docker --version

Если Docker установлен, команда выведет информацию о версии, например:

Docker version 24.0.2, build cb74dfc

Если Docker не установлен, нужно обязательно установить его на ПК. 

Официальная инструкция по установке Docker для Ubuntu

Официальная инструкция по установке Docker для  Debian

Не рекомендуется устанавливать Docker через snap!

При использовании snap, пакеты работают в изолированном окружении (sandbox), поэтому Docker через snap ограничен в доступе к системным ресурсам и файлам вне стандартных путей.

Если у вас уже установлен docker через snap обязательно удалите перед обычной установкой!


snap remove docker

Перенос базы с Windows сервера

Если у вас уже ранее была развернута база Mobile SMARTS, например, под Windows версией сервера, и вы хотите перенести её под Linux, то следуйте шагам, описанным ниже.

  1. Остановите существующий сервер под Windows, чтобы избежать изменений в папке базы.
  2. Заархивируйте содержимое папки базы в ZIP-архив, и переименуйте полученный архив в default.mstmpl.

Шаблон должен быть ОБЯЗАТЕЛЬНО в виде ZIP-архива. Никаких tar, rar и тем более 7z не поддерживается.

Шаблон должен содержать в себе только файлы базы, без подпапок.


image2024-11-27_11-25-21.png

Далее создайте новую базу из шаблона по инструкции ниже. В качестве шаблона используйте полученный вами файл default.mstmpl.

Создание сервера с новой базой из шаблона

Если вы разворачиваете абсолютно новую базу, то вы можете сделать это из шаблона продукта (файла с расширением .mstmpl).

Подготовка

Выберите какой-нибудь уникальный идентификатор для вашей будущей базы (например, CleverenceDB).

Создайте папки:

  • /opt/CleverenceDB
  • /opt/CleverenceDB/Templates
  • /opt/CleverenceDB/Database

В папку Templates положите шаблон базы, который вы хотите развернуть под именем default.mstmpl.

Дайте права на папку /opt/CleverenceDB для пользователя, под которым запущен процесс docker.

Чтобы определить, под каким пользователем запущена служба Docker на вашей системе, выполните команду:

ps aux | grep dockerd

Вы увидите строку, содержащую информацию о процессе dockerd (демон Docker). Первый столбец результата указывает имя пользователя, от которого запущен процесс.

root 1234 0.1 0.2 123456 7890 ? Ssl 10:00 0:01 /usr/bin/dockerd

Теперь используйте команду chown, чтобы сделать пользователя владельцем папки, и команду chmod, чтобы установить полные права для владельца и его группы.

sudo chown -R root /opt/CleverenceDB
sudo chmod -R 770 /opt/CleverenceDB

Создание контейнера сервера

Образ самой актуальной версии сервера — cleverence1/platform4:latest

Список доступных образов по ссылке.


image2024-12-23_19-0-24.png

Для установки и запуска контейнера из реестра dockerhub необходимо выполнить следующие команды:

sudo docker pull cleverence1/platform4:latest

Эта команда скачивает последнюю версию образа платформы (ключ latest).

Если вы хотите установить какую-то конкретную версию сервера, то следует использовать вместо latest номер этой версии, например, cleverence1/platform4:4.0.0.44180.

Далее, создание контейнера:

sudo docker run -dit --name CleverenceDBContainer1 --restart unless-stopped -p 10501:80 -v /opt/CleverenceDB/Templates/default.mstmpl:/app/AppData/Templates/default.mstmpl   -v /opt/CleverenceDB/Database:/app/AppData/Database -e InstanceId=CleverenceDB -e DataService__ExternalServerUrl= http://X.X.X.X:10501/CleverenceDB cleverence1/platform4:latest

Выделенное красным — править нельзя ни в коем случае! Это фиксированные параметры, их изменение гарантированно приведет к нерабочему результату!

Выделенное фиолетовым — пользователь обязательно должен проверить и задать этот параметр в соответствии со своей конфигурацией.

Какие параметры можно менять:

  • CleverenceDBContainer1 — уникальное имя контейнера на данной машине, с которым создастся новый контейнер, если необходимо запустить несколько инстансов на одной машине, то это имя нужно менять для каждого экземпляра.

  • 10501 — означает открыть порт 10501 и связать его с портом 80 контейнера, если необходимо запустить несколько баз на одной машине, то порт нужно изменять, например: 10502:80, 10503:80, 10504:80 и т.д. Главное чтобы этот порт был свободен.

    Чтобы проверить, свободен ли порт можно использовать команду ниже:

     sudo netstat -tuln | grep ':10501'
    

    Если порт используется, будет показан процесс, связанный с ним.
    Если вывод пустой, порт свободен.

  • InstanceId=CleverenceDB — выставление уникального идентификатора базы, с которым создастся новый контейнер, в данном случае CleverenceDB

  • /opt/CleverenceDB/Templates/default.mstmpl — указание шаблона, из которого будет развернута новая база и запущена под этим конкретным экземпляром контейнера.

  • DataService__ExternalServerUrl=http://X.X.X.X:10501/CleverenceDB — адрес для доступа к серверу. Поскольку контейнер изолирован от внешней среды, то ему необходимо передать его фактический внешний адрес(или несколько). Адрес должен иметь ту же схему(http или https) что и база, в качестве хоста надо указать адрес компьютера на котором запущен контейнер, а в качестве порта указать порт, который был назначен в пункте 2 (если указано 10501:80, то указываем 10501). Если необходимо указать несколько адресов, то их нужно разделить ;. Например: http://10.2.1.170:10501;https://myserveraddressexample.com:10502.

    Если не указать данный параметр или указать его неправильно. то сервер будет формировать некорректные строки подключения и QR код

Остановка, запуск, перезапуск контейнера

Остановка docker stop CleverenceDBContainer1 
Запуск docker start CleverenceDBContainer1 
Перезапуск docker restart CleverenceDBContainer1 
Удаление (удалится только контейнер, папка с базой останется неизменной)

docker rm CleverenceDBContainer1 


CleverenceDBContainer1 — уникальное имя контейнера

Просмотр текущих логов в консоли

docker logs -f CleverenceDBContainer1

CleverenceDBContainer1 — уникальное имя контейнера

Обновление сервера на новую версию

Чтобы сервер на новую версию, необходимо удалить текущий контейнер и создать его заново.

docker stop CleverenceDBContainer1 
 
docker rm CleverenceDBContainer1
 
docker pull cleverence1/platform4:latest

Папка в базой при этом не удалится, только сам контейнер.

Запуск сервера с https

Если вы планируете опубликовать ваш сервер в публичную сеть, то в обязательном порядке рекомендуется настраивать https подключение.

Сгенерируйте бесплатный, или купите сертификат для вашего домена, для примера мы будем использовать домен https://myserveraddressexample.com.

Следуйте инструкции выше до момента создания контейнера.

Создание контейнера

Измените команду создания и запуска контейнера как указано ниже:

	 sudo docker run -dit --name CleverenceDBContainer1 --restart unless-stopped  -p 10502:443 -v /opt/CleverenceDB/Templates/default.mstmpl:/app/AppData/Templates/default.mstmpl   -v /opt/CleverenceDB/Database:/app/AppData/Database -e InstanceId=CleverenceDB -e DataService__ExternalServerUrl=https://myserveraddressexample.com:10502/CleverenceDB cleverence1/platform4:latest

  • -p 10502:443 — устанавливаем связь внешнего порта 10502 с типовым https портом 443 внутри контейнера

  • DataService__ExternalServerUrl=https://myserveraddressexample.com:10502/CleverenceDB —указываем внешний адрес для построения адресов подключения

Изменение файла настроек

Остановите запустившийся контейнер:

docker stop CleverenceDBContainer1

В файле /opt/CleverenceDB/appSettings.json необходимо указать параметры сертификата.

Если сертификат в виде pfx файла:

{
...
...
"ASPNETCORE":
    {
    "Kestrel":
        {
        "Certificates":
            {
            "Default":
                {
                        "Path": "pathToPFX",                
                        "Password": "somePassword"
                }
            }
        }
    }
...
...
}

Если сертификат в виде pem файлов:

{
...
...
"ASPNETCORE":
    {
    "Kestrel":
        {
        "Certificates":
            {
            "Default":
                {        
                    "Path": "PathToCertPem",
                    "KeyPath": "PathToKeyPem"
                }
            }
        }
    }
...
...
}

Запустите контейнер:

docker start CleverenceDBContainer1

Включение аутентификации

Если мы публикуем наш сервер в публичную сеть, то обязательно необходимо включить режим работы с обязательной аутентификацией.

Если у вас еще не создан ни один пользователь кроме пользователя по умолчанию, то обязательно создайте необходимых пользователей, в том числе пользователя с правами Администратора.

Остановите запущенный контейнер:

docker stop CleverenceDBContainer1

В конфигурационном файле добавьте параметр

{
...
...
"Authentication":
    {
    "Enabled":"True"
    }
...
...
}

Запустите контейнер:

docker start CleverenceDBContainer1

Была ли статья полезна?
Спасибо за ваш отзыв!
Отзыв
Заполните, пожалуйста, данную форму, что конкретно вы не нашли, оставьте свои комментарии о работе сайта / полезности / сложности с навигацией
0/500