Set Sync ◾️ Синхронизация медиаконтента (загрузка изображений и видео на кассы)

Публичное пространство

Set Sync ◾️ Синхронизация медиаконтента (загрузка изображений и видео на кассы)

https://crystals.atlassian.net/browse/CR-4122

https://crystals.atlassian.net/browse/SRTE-3039

https://crystals.atlassian.net/browse/SRTE-3054

https://crystals.atlassian.net/browse/SRTE-3055

https://crystals.atlassian.net/browse/SRTE-3061

10.2.92.0

Описание

В SetRetail10 есть функциональность по отображению изображений в плитках продаж или показ медиаконтента в LCD-мониторах. Начиная с версии 10.2.92.0 появилась возможность по обеспечению синхронизации медиаконтента с кассами (Клавиатурные, SetTouch, кассы самообслуживания).

Компоненты

  • MinIO — это сервер хранения объектов с открытым исходным кодом. Служба может хранить неструктурированные данные, такие как фото, видео, файлы любых типов, и предоставляет один сервер хранения объектов, объединяющий в пул множество дисков, размещенных на разных серверах. 

  • minio-forward-proxy - компонент отвечает за отображение контента (изображений) в визуализации сервера - плитках пик-листов и карточках товаров.

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

Системные требования

Компоненты MinIO и микросервис minio-forward-proxy устанавливаются на отдельной машине Linux

В таблице указаны рекомендуемые системные требования для установки сервиса MinIO и микросервиса minio-forward-proxy.

Сервер

Процессор

RAM (GB)

Disk size (GB)

Пропускная способность канала

Сервер

Процессор

RAM (GB)

Disk size (GB)

Пропускная способность канала

1 хост Linux для установки и MinIO и микросервиса

4 ядра по 2,2 ГГц

8 GB

SSD (объем SSD зависит от объема контента для синхронизации)

1 Гигабит в секунду

Список необходимых портов

Проверка доступности портов от кассы к серверу

№ порта

Тип

Назначение

№ порта

Тип

Назначение

9001

TCP

Порт должен быть открыт:

  • между кассой и сервером MinIO

  • между сервером Set10 и сервером MinIO

5678

TCP

Отображение картинок в визуализации сервера Set10.

Порт должен быть открыт между сервером Set10 и сервером MinIO.

⚠️Указан номер порта для примера при установке по данной инструкции.

Настройка

Подготовка 

Настройка часового пояса

1. Выполните команду для проверки часового пояса:

Ubuntu и CentOS
timedatectl



2. Чтобы вывести список зон для Европы выполните команду:

Ubuntu и CentOS
timedatectl list-timezones | grep Europe



3. Чтобы вывести список зон для Азии выполните команду:

Ubuntu и CentOS
timedatectl list-timezones | grep Asia



4. Найдите в списке регион с нужным часовым поясом. Например, для Москвы необходимо установить Europe/Moscow. 



5. Выполните команду для установки часового пояса:

Ubuntu
sudo timedatectl set-timezone Europe/Moscow



CentOS
timedatectl set-timezone Europe/Moscow



6. Командой timedatectl проверьте правильность настройки часового пояса.

7. Для синхронизации времени на серверах воспользуйтесь рекомендациями из статьи.

MinIO

Пример настройки на образе CentOS SetRetail.



1. Создайте каталог:

Ubuntu + CentOS
sudo mkdir /home/minio



2. Перейдите в созданную папку:

cd /home/minio/



3. Выполните команду для загрузки актуального программного пакета minio:

Ubuntu и CentOS
sudo wget https://dl.min.io/server/minio/release/linux-amd64/minio



4. Дождитесь окончания загрузки.



5. Выполните команду для установки необходимых разрешений:

sudo chmod +x minio



6. Выполните команду для проверки запуска сервиса minio, указав необходимый порт, через который будет происходить обмен.

Ubuntu и CentOS
sudo nohup ./minio server --address :9001 /home/minio/data &



7. Откройте любой веб-браузер в сети и наберите IP-адрес в формате http://XXX.XXX.XXX.XXX:ПОРТ → убедитесь, что запускается страница авторизации сервиса minio.

Автозапуск

Добавьте на автозапуск сервис minio:

1. Скачайте и поместите скрипт автозапуска

Ubuntu - cкачайте d.sh в папку на сервере

/home/hd.

sudo wget https://crystals.atlassian.net/wiki/download/attachments/2097676803/d.sh



CentOS - cкачайте d.sh в папку на сервере

/home/minio.

Для скачивания выполните команду:

sudo wget https://crystals.atlassian.net/wiki/download/attachments/2097676803/d.sh



2. После скачивания в Ubuntu выполните команды:

sudo cp /home/hd/d.sh /home/minio/ sudo chown root:root /home/minio/d.sh sudo chmod +x /home/minio/d.sh



3. Откройте файл d.sh для редактирования → если требуется, установите необходимый порт для работы сервиса → сохраните изменения.

Ubuntu
sudo mcedit /home/hd/d.sh





CentOS
mcedit /home/minio/d.sh



4. Для Ubuntu cкачайте файл rc.local в папку на сервере /home/hd 

Для скачивания выполните команду 

sudo wget https://crystals.atlassian.net/wiki/download/attachments/2097676803/rc.local



Далее выполните команды:

После выполнения команд появится сообщение, но оно не влияет на работу.

sudo cp /home/hd/rc.local /etc/ sudo chown root:root /etc/rc.local sudo chmod +x /etc/rc.local sudo systemctl enable rc-local



5. Для CentOS добавьте команду для выполнения при запуске ОС → сделайте пустую строку → сохраните файл.

sh /home/minio/d.sh



6. Для CentOS в командной строке выполните команды:

chmod +x /home/minio/d.sh chmod +x /etc/rc.d/rc.local systemctl enable rc-local



6. Для Ubuntu и CentOS перезагрузите сервер полностью. Проверьте работу сервиса через веб-браузер.

sudo reboot

Микросервис minio-forward-proxy

Пример настройки на образе CentOS SetRetail.

Установка Docker и docker-compose

Ubuntu

  • Обязательно производите установку в режиме суперпользователя.

  • Если это пользователь не root, тогда произведите логин с правами администратора, выполнив команду sudo su с вводом пароля для пользователя.

1. Обязательно выполните команды для удаления старых версий Docker:

sudo apt remove docker \ docker-common \ docker-selinux \ docker-engine sudo apt-get purge -y docker-engine docker docker.io docker-ce sudo apt-get autoremove -y --purge docker-engine docker docker.io docker-ce sudo umount /var/lib/docker/ sudo rm -rf /var/lib/docker /etc/docker sudo rm /etc/apparmor.d/docker sudo groupdel docker sudo rm -rf /var/run/docker.sock sudo rm -rf /usr/bin/docker-compose

2. Установите необходимые пакеты, выполнив команду:

sudo apt 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
  • Username: setsync-customers

  • Password: JQ9v&H39q70R

  • Процесс ввода пароля не отображается.

  • Учетная запись только для установки микросервиса minio-forward-proxy



Убедитесь, что появилось сообщение Login Succeeded.

Установка микросервиса

1. Создайте в домашней директории папку minio_forward_proxy

Ubuntu
sudo mkdir /home/minio_forward_proxy sudo chmod -R 777 /home/minio_forward_proxy/



CentOS
mkdir /home/minio_forward_proxy



2. Скачайте архив minio_forward_proxy.zip → загрузите файлы из распакованного архива 

Первый вариант:

cd /home/minio_forward_proxy/ sudo wget https://crystals.atlassian.net/wiki/download/attachments/2097676803/minio_forward_proxy.zip unzip minio_forward_proxy.zip -d .. rm -rf 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.0

5.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. Выполните команду для выдачи необходимых разрешений:

Ubuntu
sudo chmod +x *



CentOS
chmod +x *

8. Выполните команду:

Ubuntu
sudo ./start_minio_forward_proxy.sh



CentOS
./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
  • service_ip - IP-адрес хоста, где развернут микросервис.

  • service_port - порт, который слушает микросервис на хосте.

  • bucket_name - название корзины на сервере MinIO.

  • minio_ip - IP-адрес сервера MinIO.

  • minio_port - порт, на котором запущен сервер MinIO.

  • auth_base64 - аутентификация на сервере MinIO в кодировке base64. 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

Скачать файл можно напрямую из командной строки:

cd /home/minio_forward_proxy/ wget https://crystals.atlassian.net/wiki/download/attachments/2097676803/df.sh



Для Ubuntu перед копиррованием выполните команду:

Для Ubuntu
sudo chmod -R 777 /home/minio_forward_proxy/

2. Откройте на редактирование файл автозагрузки

Ubuntu
sudo chown root:root /home/minio_forward_proxy/df.sh sudo chmod +x /home/minio_forward_proxy/df.sh sudo mcedit /etc/rc.local



CentOS
mcedit /etc/rc.d/rc.local

3. Добавьте команду sh /home/minio_forward_proxy/df.sh для выполнения скрипта, а также сделайте пустую строку после неё клавишей ENTER.

Ubuntu:

CentOS:

4. В командной строке выполните команды:

После выполгнения команд появится сообщение, но оно не влияет на работу.

Ubuntu
sudo chmod +x /home/minio_forward_proxy/df.sh sudo chmod +x /etc/rc.local sudo systemctl enable rc-local
CentOS
chmod +x /home/minio_forward_proxy/df.sh chmod +x /etc/rc.d/rc.local systemctl enable rc-local

5. Перезагрузите сервер полностью. Проверьте работу сервиса через веб-браузер.

sudo reboot

Настройка папки для загрузки контента в сервисе MinIO

1. Введите логин и пароль → нажмите Login.

  • Access Key: minioadmin

  • Secret Key: minioadmin



2. Кликните Buckets → кликните Create Bucket +.



3. Введите название корзины (bucket), например: images → кликните Create Bucket.



5. Кликните Object Browser → кликните созданный контейнер.



6. Кликните Upload → кликните Upload File (если папка с файлами Upload Fold...) → выберите файлы изображений → нажмите Открыть.



7. Файлы будут загружены на сервер.

Установка Rclone на кассе

Начиная с версии 10.2.93.0 полностью копировать пакет rclone не требуется.

На кассе в командной строке выполните только команду для установки:  tce-load -i rclone.tcz

https://crystals.atlassian.net/browse/SRTE-3053

1. С помощью SetConsole и WinSCP или другого средства распространения файлов на кассы скопируйте следующие файлы в папку /mnt/sda1/tce/optional.

В некоторых системных блоках, наименование диска может отличаться и быть: hda.

2. Откройте на редактирование файл в Midnight Commnder /mnt/sda1/tce/onboot.lst.

Этот шаг не нужно выполнять, начиная с версии 10.3.8.0

https://crystals.atlassian.net/browse/SRTE-3931

https://crystals.atlassian.net/browse/SRTB-5672

3. Добавьте следующие строки:

Этот шаг не нужно выполнять, начиная с версии 10.3.8.0

https://crystals.atlassian.net/browse/SRTE-3931

https://crystals.atlassian.net/browse/SRTB-5672

rclone.tcz bash.tcz

4. В командной строке выполните команды:

Этот шаг не нужно выполнять, начиная с версии 10.3.8.0

https://crystals.atlassian.net/browse/SRTE-3931

https://crystals.atlassian.net/browse/SRTB-5672

tce-load -i bash tce-load -i rclone cash save

Настройка SetRetail/SetCentrum

1. Кликните Интеграция → Внешние процессинги → кликните кнопку добавления процессинга 

.

2. Наберите в строке поиска Set Sync → кликните Set Sync → установите

флажок для включения процессинга Set Sync → кликните .

© 1994-2025, ООО «Кристалл Сервис Интеграция».
Все права защищены.

Политика обработки персональных данных