В SetRetail10 есть функциональность по отображению изображений в плитках продаж или показ медиаконтента в LCD-мониторах. Начиная с версии 10.2.92.0 появилась возможность по обеспечению синхронизации медиаконтента с кассами (Клавиатурные, SetTouch).
MinIO — это сервер хранения объектов с открытым исходным кодом. Служба может хранить неструктурированные данные, такие как фото, видео, файлы любых типов, и предоставляет один сервер хранения объектов, объединяющий в пул множество дисков, размещенных на разных серверах.
Компоненты MinIO и микросервис minio-forward-proxy устанавливаются на отдельной машине Linux |
В таблице указаны рекомендуемые системные требования для установки сервиса MinIO и микросервиса minio-forward-proxy.
Сервер | Процессор | RAM (GB) | Disk size (GB) | Пропускная способность канала |
---|---|---|---|---|
1 хост Linux для установки и MinIO и микросервиса | 4 ядра по 2,2 ГГц | 8 GB | SSD (объем SSD зависит от объема контента для синхронизации) | 1 Гигабит в секунду |
Проверка доступности портов от кассы к серверу
№ порта | Тип | Назначение |
---|---|---|
9001 | TCP | Порт должен быть открыт:
|
5678 | TCP | Отображение картинок в визуализации сервера Set10. Порт должен быть открыт между сервером Set10 и сервером MinIO. ⚠️Указан номер порта для примера при установке по данной инструкции. |
1. Выполните команду для проверки часового пояса:
timedatectl |
2. Чтобы вывести список зон для Европы выполните команду:
timedatectl list-timezones | grep Europe |
3. Чтобы вывести список зон для Азии выполните команду:
timedatectl list-timezones | grep Asia |
4. Найдите в списке регион с нужным часовым поясом. Например, для Москвы необходимо установить Europe/Moscow.
5. Выполните команду для установки часового пояса:
timedatectl set-timezone Europe/Moscow |
6. Командой timedatectl
проверьте правильность настройки часового пояса.
7. Для синхронизации времени на серверах воспользуйтесь рекомендациями из статьи.
Пример настройки на образе CentOS SetRetail. |
1. Создайте папку командой:
mkdir /home/minio |
2. Перейдите в созданную папку:
cd /home/minio/ |
3. Выполните команду для загрузки актуального программного пакета minio:
wget https://dl.min.io/server/minio/release/linux-amd64/minio |
4. Дождитесь окончания загрузки.
5. Выполните команду для установки необходимых разрешений:
chmod +x minio |
5. Выполните команду для проверки запуска сервиса minio, указав необходимый порт, через который будет происходить обмен.
nohup ./minio server --address :9001 /home/minio/data & |
6. Откройте любой веб-браузер в сети и наберите IP-адрес в формате http://XXX.XXX.XXX.XXX:ПОРТ → убедитесь, что запускается страница авторизации сервиса minio.
Добавьте на автозапуск сервис minio:
1. Скачайте и поместите скрипт d.sh в папку на сервере /home/minio.
2. Откройте файл d.sh для редактирования → если требуется, установите необходимый порт для работы сервиса → сохраните изменения.
3. Откройте на редактирование файл /etc/rc.d/rc.local.
4. Добавьте команду для выполнения при запуске ОС → сделайте пустую строку → сохраните файл.
sh /home/minio/d.sh |
5. В командной строке выполните команды:
chmod +x /home/minio/d.sh chmod +x /etc/rc.d/rc.local systemctl enable rc-local |
6. Перезагрузите сервер полностью. Проверьте работу сервиса через веб-браузер.
sudo reboot |
Пример настройки на образе CentOS SetRetail. |
|
1. Обязательно выполните команду для удаления старых версий Docker:
sudo yum remove docker \ docker-common \ docker-selinux \ docker-engine |
2. Установите необходимые пакеты, выполнив команду:
sudo yum check-update |
3. Установите Docker:
curl -fsSL https://get.docker.com/ | sh |
Дождитесь окончания процесса.
4. Выполните следующие команды:
sudo curl -L "https://github.com/docker/compose/releases/download/1.26.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo mv /usr/local/bin/docker-compose /usr/bin/docker-compose sudo chmod +x /usr/bin/docker-compose docker-compose --version |
5. Запустите Docker:
sudo systemctl start docker |
6. Проверьте, что служба Docker запускается, набрав команду:
sudo systemctl status docker |
7. Установите службу Docker на автозапуск:
sudo systemctl enable docker |
8. Произведите авторизацию для учетной записи, которая позволяет выполнить установку микросервиса minio-forward-proxy.
Выполните команду:
docker login artifactory.setmachine.ru:5000 |
|
Убедитесь, что появилось сообщение Login Succeeded
.
1. Создайте в домашней директории папку minio_forward_proxy
mkdir /home/minio_forward_proxy |
2. Скачайте архив minio_forward_proxy.zip → загрузите файлы из распакованного архива с помощью WinSCP или другим способом в папку /home/minio_forward_proxy
При копировании из ОС Windows файла .env, всегда обращайте внимание на его наименование. Название файла должно начинаться с точки. Обратите внимание, что в WinSCP файл с наименованием точки перед расширением отображаться перестанет. |
3. Для отображения скрытых файлов в WinSCP перейдите в меню Options → выберите Preferences → перейдите в раздел Panels → установите флажок Show hidden files (Ctrl + Alt + H) → кликните OK.
4. Файл .env отобразится в списке.
5. Настройте конфигурационные файлы:
5.1. Файл /home/minio_forward_proxy/consul/minio-forward-proxy.yml
application.port: 5678
- порт микросервиса, который будет слушать обращение на запрос изображения из сервера MinIO с нужными параметрами (в данном случае, это обращение от Retail или Centrum). Но это именно порт, с которым будет запущен микросервис в контейнере.minio.max.connections: 10000
- это одновременно возможные коннекты к микросервису. В данном примере к микросервису могут одновременно обращаться 10000 серверов SetRetail.5.2. Файл /home/minio_forward_proxy/.env
CONSUL_HOST=http://172.29.16.179
- IP-адрес (который будет доступен всем участникам сети) хоста, на котором разворачивается микросервис. Указывается строго в формате http://XXX.XXX.XXX.XXX.CONSUL_PORT=9889
- любой доступный порт для микросервиса consul.HEALTH_CHECK_PORT=5489
- любой доступный порт. По этому порту можно узнать состояние микросервиса minio_forward_proxy. Например, http://172.29.16.179:5489/health, в ответ получим OK, если микросервис запущен.IMAGE_TAG=minio-forward-proxy:1.0.0
- версия образа микросервиса. Меняться будет только цифровая часть - 1.0.05.3. Файл /home/minio_forward_proxy/docker-compose.yaml
Настраивается проброс портов наружу, то есть чтобы с локального хоста были доступны внутренние порты в контейнере.
ports:
-
5678:5678
- порт на локальном хосте : порт внутри контейнера
Порт внутри контейнера должен совпадать с портом, указанным в параметре application.port
в файле /home/minio_forward_proxy/consul/minio-forward-proxy.yml
6. Перейдите в папку /home/minio_forward_proxy
cd /home/minio_forward_proxy |
7. Выполните команду для выдачи необходимых разрешений:
chmod +x * |
8. Выполните команду:
./start_minio_forward_proxy.sh |
Дождитесь окончания установки.
9. Проверьте работу MinIO и микросервиса → в адресную строку браузера введите выражение:
http://{service_ip}:{service_port}/{bucket_name}?minio-url={minio_ip}%3A{minio_port}&minio-auth=Basic%20{auth_base64}%3D |
bWluaW9hZG1pbjptaW5pb2FkbWlu
это minioadmin:minioadmin
Пример адреса:
http://192.168.56.143:5678/images?minio-url=192.168.56.143%3A9001&minio-auth=Basic%20bWluaW9hZG1pbjptaW5pb2FkbWlu%3D |
В итоге будет выдан список всех файлов, которые есть в корзине {bucket_name}.
1. Скопируйте файл df.sh в папку /home/minio_forward_proxy
2. Откройте на редактирование файл /etc/rc.d/rc.local.
3. Добавьте команду sh /home/minio_forward_proxy/df.sh
для выполнения скрипта, а также сделайте пустую строку после неё клавишей ENTER.
4. В командной строке выполните команды:
chmod +x /home/minio_forward_proxy/df.sh chmod +x /etc/rc.d/rc.local systemctl enable rc-local |
5. Перезагрузите сервер полностью. Проверьте работу сервиса через веб-браузер.
sudo reboot |
1. Введите логин и пароль → нажмите .
2. Кликните .
3. Кликните Create bucket .
4. Введите название корзины (bucket), например: images → нажмите Enter.
5. Кликните .
6. Кликните Upload file .
7. Выберите медиа-файлы изображений и подтвердите их загрузку в сервис minio.
8. Файлы будут загружены на сервер.
Начиная с версии 10.2.93.0 полностью копировать пакет rclone не требуется. На кассе в командной строке выполните только команду для установки: |
1. С помощью SetConsole и WinSCP или другого средства распространения файлов на кассы скопируйте следующие файлы в папку /mnt/sda1/tce/optional.
В некоторых системных блоках, наименование диска может отличаться и быть: hda.
2. Откройте на редактирование файл в Midnight Commnder /mnt/sda1/tce/onboot.lst.
Этот шаг не нужно выполнять, начиная с версии 10.3.8.0 |
3. Добавьте следующие строки:
Этот шаг не нужно выполнять, начиная с версии 10.3.8.0 |
rclone.tcz bash.tcz |
4. В командной строке выполните команды:
Этот шаг не нужно выполнять, начиная с версии 10.3.8.0 |
tce-load -i bash tce-load -i rclone cash save |
1. Кликните Интеграция → Внешние процессинги → кликните кнопку добавления процессинга .
2. Наберите в строке поиска Set Sync → кликните Set Sync → установите флажок для включения процессинга Set Sync → кликните .
3. В списке внешних процессингов кликните на строке с процессингом Set Sync.
5. Установите необходимые настройки → нажмите .
|
Начиная с версии 10.3.10.0 настройки адресации разнесены по отдельным вкладкам для удобства настройки.
|
Название настройки | Описание | Пример значения |
---|---|---|
Путь синхронизации медиа-контента для товарных плиток POS-кассы | Путь загрузки изображений для отображения в плитках товарных групп, а также для загрузки изображений в карточку товара | /home/tc/storage/crystal-cash/images |
Путь синхронизации медиа-контента для второго монитора покупателя | Путь загрузки изображений и видео для отображения на втором LCD-мониторе покупателя. | /home/tc/storage/crystal-cash/modules/advertising/templates/content/default |
Наименование корзины | Наименование корзины (bucket), которая создана в сервисе. | images |
Название настройки | Описание | Пример значения |
---|---|---|
Путь синхронизации медиа-контента для товарных плиток Touch-кассы | Путь для загрузки изображений для отображения в плитках товарных групп SetTouch, а также в шаблоне пик-листа с типом устройства TOUCH | /home/tc/storage/crystal-cash/web/img/tile |
Путь синхронизации медиа-контента для экрана покупателя Touch-кассы | Путь для загрузки изображений для отображения на втором экране SetTouch | /home/tc/storage/crystal-cash/web/assets/clients/CSI/customerDisplay/slides |
Путь синхронизации с видео для экрана покупателя Touch-кассы | Путь для загрузки видео для отображения на втором экране SetTouch | /home/tc/storage/crystal-cash/web/assets/clients/CSI/customerDisplay/video |
Наименование корзины | Наименование корзины (bucket), которая создана в сервисе. | Buyer_images |
Название настройки | Описание | Пример значения |
---|---|---|
Путь синхронизации медиа-контента для товарных плиток CSI-K | Путь для загрузки изображений для отображения в плитках товарных групп CSI-K, а также в шаблоне пик-листа с типом устройства CSI-K | /home/tc/storage/crystal-cash/images/picklist |
Наименование корзины | Наименование корзины (bucket), которая создана в сервисе. | images |
Название настройки | Описание | Пример значения |
---|---|---|
Адрес Minio | Адрес сервиса minio в формате http://XXX.XXX.XXX.XXX:ПОРТ | http://172.29.16.179:9001 |
Access Key Ключ Секретный доступа к Minio | Логин доступа к сервису minio | minioadmin |
Secret Key Секретный ключ доступа к Minio | Пароль доступа к сервису minio | minioadmin |
Интервал синхронизации в минутах | Периодичность загрузки медиаконтента на кассы | 1 |
Загруженный контент для отображения на втором LCD-мониторе покупателя:
Загруженный контент для отображения в плитках товарных групп:
Начиная с версии 10.3.8.0. добавлена возможность отображения загруженных изображений товаров в шаблонах пик-листов на сервере SetRetail и SetCentrum, а также в карточке товара.
При наличии файла изображения в удаленном хранилище изображение загружается сразу после подтверждения добавления товара в плитку. Сохранение шаблона не требуется. |
Функциональность работает только при установленном микросервисе minio-forward-proxy/v1.0.0. |
1. Выполните скрипт по базе данных set сервера, установив в параметре property_value
IP-адрес микросервиса в формате ХХХ.ХХХ.ХХХ.ХХХ:ПОРТ:
UPDATE sales_management_properties SET property_value = '192.168.56.143:5678', transport_level = 20, priority = 2, send_status = 0 WHERE property_key = 'minio.forward.proxy.url' AND module_name = 'SET_ESB'; |
2. Перезапустите службу сервера:
service JBOSS_SVC restart |
При загрузке в MinIO изображений с одинаковым наименованием (артикулом), но с разным расширением, они будут показываться в следующем порядке:
png (если отсутствует, используется jpg).
jpg (если отсутствует, используется jpeg).
jpeg (последний приоритет).
В удаленном хранилище MinIO загружены файлы изображений для товаров: