Инструкция по установке экземпляра программного обеспечения

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

ОС – Linux (Debian)
1 ГБ места на диске, 2 ГБ свободного места на диске
8 ГБ RAM
CPU AMD md 5gen 64bit-x86

Инструкция по установке

Установка
Для использования сервиса нужно установить Docker (https://docs.docker.com/engine/install/). Также необходимо установить docker compose (https://docs.docker.com/compose/install/), так как сервис является мультиконтейнерным.

Распаковать архив: $ tar -xf technos.bin.tar.gz

в текущей директории появится новая поддиректория technos.bin, перейти в нее: $ cd technos.bin

Запуск и обслуживание
Запуск сервиса осуществляется командой (внутри разархивированной директории): $ docker compose up -d


при этом скачиваются общедоступные докеры, необходимые для работы сервиса, такие как mariadb, hashicorp/consul и debian (в общей сложности, около 850Мб)


Примерный вывод команды запуска: 

[+] Running 20/20 

✔ grpc-technos Pulled 7.8s 

✔ 795dbedde24d Pull complete 5.6s 

✔ mariadb Pulled 12.8s 

✔ 4b3ffd8ccb52 Pull complete 4.2s 

✔ 7854007237e1 Pull complete 4.2s 

✔ 8ed1b5271813 Pull complete 4.4s 

✔ 402f4c7dd065 Pull complete 4.4s 

✔ 2295facceabc Pull complete 4.4s

✔ eece26ecda4b Pull complete 10.5s 

✔ 4c2e197f6cb0 Pull complete 10.6s 

✔ 6499e85d8558 Pull complete 10.6s 

✔ consul Pulled 15.8s 

✔ 63d36825ec9a Pull complete 5.9s 

✔ b4417cf2a4cd Pull complete 6.0s 

✔ 1333ab0b84fe Pull complete 8.8s 

✔ 4fc966ea37ad Pull complete 8.8s 

✔ bb3b862e5679 Pull complete 13.5s 

✔ bc307eb3f557 Pull complete 13.5s 

✔ bd9ddc54bea9 Pull complete 13.5s 

✔ 1950cf37afce Pull complete 13.6s 


[+] Running 4/4

✔ Network technosbin_backend Created 0.0s 

✔ Container technosbin-consul-1 Started 0.4s 

✔ Container technosbin-mariadb-1 Healthy 10.9s 

✔ Container technosbin-grpc-technos-1 Started 10.9s

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


Посмотреть логи сервиса (и убедиться, что он запущен) можно командой: $ docker compose logs grpc-technos

Примерный вывод этой команды выглядит так: 

grpc-technos-1 | time="2025-10-27T08:04:07Z" level=info msg="Connecting to consul agent on technosbin_consul_1:8500" 

grpc-technos-1 | time="2025-10-27T08:04:07Z" level=info msg="Consul agent cluster leader: 127.0.0.1:8300" 

grpc-technos-1 | time="2025-10-27T08:04:07Z" level=info msg="Consul agent cluster peers: [ 127.0.0.1:8300 ]" 

grpc-technos-1 | time="2025-10-27T08:04:07Z" level=info msg="WBRM grpc-server version v1.3.9-11-g32af4f2-dirty start." 

grpc-technos-1 | time="2025-10-27T08:04:07Z" level=info msg="maxprocs: Leaving GOMAXPROCS=20: CPU quota undefined" 

grpc-technos-1 | time="2025-10-27T08:04:07Z" level=info msg="Consul: Registering service TechnoAnalyserExt" 

grpc-technos-1 | time="2025-10-27T08:04:07Z" level=info msg="Techno library initialized!"

Также есть возможность зайти в контейнер с сервисом: $ docker exec -it technosbin-grpc-technos-1 bash

и, в открывшейся оболочке докера, например, посмотреть его версию # ./grpc-server --version WBRM grpc-server version v1.3.9-11-g32af4f2-dirty Built using go1.19.12 for linux amd64 using compiler gc  или посмотреть справку о возможных параметрах запуска: # ./grpc-server --help 

Выйти из оболочки докера можно набором клавиш Ctrl+d или командой # exit  (при этом сервис остается запущенным)

Остановка и удаление

Для остановки сервиса достаточно остановить работающие контейнеры: $ docker compose down
Чтобы удалить ранее скачанные вспомогательные докеры из системы необходимо выполнить: $ docker compose down --rmi all --volumes

Использование

Сервис основан на технологии gRPC.
Для использования сервиса необходимо установить gRPC-клиент. это может быть как консольная утилита grpcurl (https://github.com/fullstorydev/grpcurl/releases), так и расширения для приложений работы с АПИ (например Postman или Insomnia)

Для корректной работы сервиса нужно передать в запросе строку с определением исследуемого браузера, а также IP и кодовое обозначение страны (для получения более точной информации об интернет-провайдере).

 
Например, при использовании консольной grpcurl, должна сработать такая команда: $ grpcurl -plaintext -d '{"UserAgent":"Opera/9.70 (Linux armv6l ; U; CE-HTML/1.0 NETTV/2.0.2; en) Presto/2.2.1","IP":"2.60.1.1","CountryCode3":"RUS"}' 0.0.0.0:50051 technoservice.TechnoAnalyser.GetTechnos

Вывод команды должен быть таким:

{ "DeviceID": 5, "BrowserID": 3, "OperatingSystemID": 13, "InternetServiceProviderID": 182, "DeviceName": "Smart TV", "BrowserName": "Opera", "OperatingSystemName": "Linux", "InternetServiceProviderName": "Rostelecom"

При использовании Postman нужно создать новое подключение:
Выбрать тип запроса gRPC:
Ввести адрес сервиса 0.0.0.0:50051 и использовать автоопределение сервиса нажав на ссылку Use server reflection:
Выбрать метод получения данных GetTechnos:
Ввести параметры браузера для распознавания, например:
{
"UserAgent":"Opera/9.70 (Linux armv6l ; U; CE-HTML/1.0 NETTV/2.0.2; en) Presto/2.2.1",
"IP":"2.60.1.1",
"CountryCode3":"RUS"
}
и получить данные от сервиса, нажав кнопку Invoke:
Cookie-файлы
Настройка cookie-файлов
Детальная информация о целях обработки данных и поставщиках, которые мы используем на наших сайтах
Аналитические Cookie-файлы Отключить все
Технические Cookie-файлы
Другие Cookie-файлы
Мы используем файлы Cookie для улучшения работы, персонализации и повышения удобства пользования нашим сайтом. Продолжая посещать сайт, вы соглашаетесь на использование нами файлов Cookie. Подробнее о нашей политике в отношении Cookie.
Принять все Отказаться от всех Настроить
Cookies