Deploying the Service using Docker#
This section describes how to install and use Docker Compose to deploy the Service. The configuration and installation process must be performed under a superuser account (with root rights). Docker and Docker Compose are not included in the Service distribution package.
The commands below are for AlmaLinux.
Docker and Docker Compose installation#
The Docker installation is described in the official documentation.
The current installation instructions are presented below.
Install the dnf-utils package:
dnf install -y dnf-utils
Set up the stable repository:
dnf config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
Install the latest version of Docker Engine and containerd:
dnf install docker-ce docker-ce-cli containerd.io
Check that the installation was done correctly:
docker -v
Download the current stable release of Docker Compose:
curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
Set permissions (allow execution):
chmod +x /usr/local/bin/docker-compose
Start Docker:
systemctl start docker
systemctl enable docker
Check Docker status:
systemctl status docker
Registry authorization#
Get service samples from dockerhub.visionlabs.ru/luna (VisionLabs registry) to start them. Log in before doing this—get login and password from VisionLabs specialists, then enter the received data for authorization:
docker login dockerhub.visionlabs.ru/luna --username <username> --password <password>
Enter login
Preparing and unpacking the distribution#
The distribution package is an archive of the form "luna_point_1.10.0".
Place the distribution files in a directory on the server before the installation process. For example, to the /root
directory. This directory should not contain other distribution files other than the target files used to install the final product.
Follow these steps.
Switch to the super user:
sudo su
Create a directory for unpacking the distribution package:
mkdir -p /var/lib/point
Move the distribution package to the created directory:
mv /root/luna_point_1.10.0 /var/lib/point
Install the unzip archiver if it is not installed:
dnf install unzip
Go to the distribution package folder:
cd /var/lib/point
Unpack files:
unzip luna_point_1.10.0.zip
Create a symbolic link. The link indicates that it is the current version of the distribution package that is used to run:
ln -s luna_point_1.10.0 current
Service configuration#
Selinux and Firewall must be configured so that they do not block the operation of the Service.
Selinux and Firewall configuration is not described in this manual.
The “luna_point_1.10.0” archive contains an example of Docker deployment in the /example-docker directory (.env and docker-compose.yml files).
Service configuration is performed in the .env configuration file. Enter the necessary settings in the .env configuration file, as shown in Table 2.
Table 2. Configuration parameters
Parameter | Description |
---|---|
LUNA POINT database configuration parameters | |
DATA=./ |
Mount point for container data (optional) |
DOCKER_ url= |
By default: dockerhub.visionlabs.ru/luna/luna-point |
CLEMENTINE_USERNAME= |
Name of the database |
By default: lunapoint |
|
CLEMENTINE_PASSWORD= |
Database password |
By default: lunapoint |
|
Tags | |
Clementine tags: | |
CLEMENTINE_AUTH_VER= |
CLEMENTINE_AUTH_VER=v2.0.0 ; |
CLEMENTINE_API_VER= |
CLEMENTINE_API_VER=v2.1.1 |
LUNA_POINT_UI_VER= |
LUNA_POINT_UI_VER=v1.21.1 ; |
LUNA_POINT_API_VER= |
LUNA_POINT_API_VER=v2.0.1 ; |
Third party service tags: | |
VL_NOTIFIER_VER= |
VL_NOTIFIER_VER=2.0.0 ; |
LUNA POINT UI configuration parameters | |
POINT_UI_HOST= |
LUNA POINT UI server address |
By default: luna_point_ui |
|
POINT_UI_PORT= |
LUNA POINT UI port |
By default: 8080 |
|
LUNA CLEMENTINE API configuration parameters | |
CLEMENTINE_API_HOST= |
LUNA CLEMENTINE API server address |
By default: luna_point_api |
|
CLEMENTINE_API_PORT= |
LUNA CLEMENTINE UI port |
By default: 9010 |
|
CLEMENTINE AUTH configuration parameters | |
CLEMENTINE_AUTH_HOST= |
LUNA CLEMENTINE AUTH server address |
By default: clementine_auth |
|
CLEMENTINE_AUTH_PORT= |
LUNA CLEMENTINE UI port |
By default: 9000 |
|
CLEMENTINE_AUTH_DOMAIN= |
Application domain used to generate links on email |
Depending on the configuration of the network environment, this can be a name domain, for example, point.local or the IP address of a service available on the network |
|
This parameter is not critical and is only required if you use an email address to register new users and reset passwords | |
By default: 127.0.0.1 |
|
CLEMENTINE_AUTH_PROTOCOL= |
Protocol for working in a web environment. Depends on current infrastructure settings and security requirements |
Possible values: | |
- HTTP — protocol without encryption; |
|
- HTTPS — protocol with SSL encryption |
|
By default: HTTP |
|
CLEMENTINE_AUTH_DSN= |
Connecting CLEMENTINE AUTH to the database |
By default: postgresql://clementine:clementine@clementine_db/clementine_auth |
|
LUNA POINT API configuration parameters | |
LUNA_POINT_API_HOST= |
LUNA POINT API server address |
Default: luna_point_api |
|
LUNA_POINT_API_PORT= |
The port on which the component will be launched |
Default: 8000 |
|
LUNA_POINT_API_DSN= |
Connecting the LUNA POINT API component to the database |
Default: =postgresql://lunapoint:lunapoint@db/lunapoint |
|
MACROSCOP_URL= |
Macroscop VMS server address |
MACROSCOP_LOGIN= |
Login to enter Macroscop VMS at the address specified in MACROSCOP_URL |
Default: root |
|
MACROSCOP_PASSWORD= |
Password for logging into VMS Macroscop at the address specified in MACROSCOP_URL |
VIDEOINTELLECT_URL= |
VMS VideoIntellect server address |
VIDEOINTELLECT_LOGIN= |
Login for logging into VMS VideoIntellect at the address specified in VIDEOINTELLECT_URL |
Default: admin |
|
VIDEOINTELLECT_PASSWORD= |
Password for logging into VMS VideoIntellect at the address specified in VIDEOINTELLECT_URL |
Default: admin |
|
LUNA PLATFORM 5 configuration parameters | |
LUNA_API_HOST= |
LP5 host. IP address of the server on which the LP5 is deployed |
By default: 127.0.0.1 |
|
LUNA_API_PORT= |
LP5 API port |
By default: 5000 |
|
LUNA_LICENSES_HOST= |
License service host |
By default: 127.0.0.1 |
|
LUNA_LICENSES_PORT= |
License service port |
By default: 5120 |
|
LUNA_ACCOUNT_EMAIL= |
Email address to access the account |
Default: root@visionlabs.ai |
|
LUNA_ACCOUNT_PASSWORD= |
Password to access the account |
Default: root |
|
Stream service configuration parameters | |
LUNA_STREAMS_HOST= |
Stream service server address |
By default: 127.0.0.1 |
|
LUNA_STREAMS_PORT= |
Stream service port |
By default: 5160 |
|
VL NOTIFIER configuration and notification parameters | |
VLNOTIFIER_HOST= |
Notification component server address |
By default: vlnotifier |
|
VLNOTIFIER_PORT= |
Notification component port |
By default: 9200 |
|
VLNOTIFIER_SUBJECT |
The text in the header of the sent email with notification |
By default: Clementine VL Notifier |
|
SMTP configuration parameters | |
LOG_LEVEL= |
Logging level. Available Values: |
0 — recording only errors; |
|
1 — recording errors and informational messages; |
|
2 — recording errors, informational messages and debugging information |
|
By default: 1 |
|
TELEGRAM_BOT_TOKEN= |
Telegram bot token where notifications will be sent |
SMTP_SERVER= |
SMTP server address |
SMTP_PORT= |
SMTP server port. Available Values: |
25 — no encryption; |
|
465 — SSL ; |
|
587 — TLS |
|
SMTP_SENDER= |
Email of the sender to send notifications to users. For example, robot@point.local |
SMTP_LOGIN= |
Login to connect to SMTP server |
SMTP_PASSWORD= |
Password for connecting to SMTP server |
The configuration parameters for the SMTP email server are optional and only required if you are using an email address to register new users and reset passwords.
The SMTP configuration parameters are also used for the notification component.
Data loading errors are written to the system log through the logging subsystem with three logging levels.
Internal errors are written to the system log using the logging subsystem:
- with error severity level if the further execution of the program is impossible;
- with warning severity level if the program remains functional.
Configuring the web interface#
The Service web interface is configured in the example-docker/config/ui/
directory, config.json
file:
{
"auth": {
"allowPasswordChange": {
"ui": true,
"email": true
}
},
"similarityThresholds": {
"low": 0.75,
"medium": 0.95
},
"maxImageSize": "2G"
}
Table 3. Web interface configuration parameters
Parameter | Description |
---|---|
allowPasswordChange | Configuring the registration type in the Service. |
All users in the Service interface are created by the administrator. The new user receives a link to his email address to continue registration (for details, see “VisionLabs LUNA POINT. User Manual”). | |
It is also possible to create a new user with an explicit password in the Service. | |
To do this, you need to configure the ability to set passwords in the web interface of the Service. | |
By default: “ui”: true, “email”: true |
|
similarityThresholds | The color coding of similarity thresholds: |
- similarity values below “low” will be marked in red; | |
- similarity values between “low” and “medium” will be marked in yellow; | |
- similarity values above “medium” will be marked in green. | |
By default: low: 0.75 , medium": 0.95 |
|
maxImageSize | The maximum image size. |
Changing this parameter should set CLIENT_MAX_BODY_SIZE for the point-ui container indocker-compose.yml . |
|
By default: 2G |
Setting up a logo in the interface#
Users can set their own logo for the interface, which will be displayed in the left corner of the top menu. To do this:
- Go to the
./media
directory. The./media
directory appears when the container starts due to the utility indocker-compose.yml
:
clementine_ui:
...
volumes:
- ./config/ui/config.json:/app/config.json
- ./media/logo.svg:/app/static/media/logo.svg
- ./media/dark-logo.svg:/app/static/media/dark-logo.svg
-
Move the files with logo images in .svg format to the
./media
folder. Name the file "logo.svg" for the light theme and "dark-logo.svg" for the dark theme. -
In the config.json file in the
./config/ui/
directory, specify the path to the logo images that you placed in step 2 to the./media folder
. Specify thelogoUrl
anddarkLogoUrl
keys (Figure 2):
"logoUrl": "static/media/logo.svg",
"darkLogoUrl": "static/media/dark-logo.svg"

Setting up an alarm button in the "Operator Panel"#
LUNA POINT can integrate with the the security system service. When an event with video analytics occurs (for more details, see "LUNA POINT. User Guide", "Operator Panel" section), the user can send a notification to the service to activate the response team by pressing the "Alarm" button.
To work with "Gulf Stream" and "Laurent 2", the LUNA POINT interface must be deployed with https.
Integration with Gulfstream
To add a button to the interface to send a signal to the Gulfstream security system, add the following settings to the config.json
configuration file in the example-docker/config/ui/
directory and fill in the fields:
"gulfstream": {
"url": "",
"token": "",
"object_id": "",
"object_name": "",
"addres": "",
"lat": "",
"lng": "",
"inn": "",
"partner_name": "",
"alarm_type": ""
}
Integration with Laurent 2 module
To add a button to the interface to send a signal to the "Laurent 2" module, add the following settings to the config.json
configuration file in the example-docker/config/ui/
directory and fill in the fields: fields:
"laurent2": {
"ip": "",
"password": "",
"events": [
{
"event_type": "",
"relay": 1
},
{
"event_type": "",
"relay": 2
},
{
"event_type": "",
"relay": 3
},
{
"event_type": "",
"relay": 4
}
]
}
Each video analytics event is sent to a separate port of the board, relay
. In the event_type
value, specify the type of video analytics event in accordance with the names in the LP5 API (Table 2):
Table 2. Video analytics names in LP5 API
Video analytics type |
Video analytics name in LP5 API |
---|---|
People counting |
|
Fight |
|
Weapon |
|
Fire |
|
Balaclava/Niqab |
|
Abandoned objects |
|
When the panic button is pressed, a signal is sent to the Laurent 2 board and the module reports the alarm.
Configuring integration with VMS#
Configure one of the integrations:
- with VMS Macroscop;
- with VMS VideoIntellect.
In the LUNA POINT configuration settings, specify the server address using the http or https protocol in the MACROSCOP_URL
parameter for VMS Macroscop or in the VIDEOINTELLECT_URL
parameter for VMS VideoIntellect. In the LUNA POINT interface, set the "Internal name” for video surveillance system video streams in the “VMS” section. Specify the "Internal name” when creating streams to view video streams in the “Operator panel” and in the “Video wall” section.
Launching the Service#
Go to Docker directory:
cd /var/lib/point/current/example-docker
To start the Service, enter the command:
start_luna_point.sh
Check the status of all running Docker-containers:
docker-compose ps
Adding an administrator account#
After the Service starts, create a new account, and follow the instructions:
docker-compose exec clementine_auth python3 cli.py createaccount
To log into the Service, you must use the specified email address as a login.
Create a new authorization for the account and follow the instructions:
docker-compose exec clementine_auth python3 cli.py createauth
Run the account role change and follow the instructions:
docker-compose exec clementine_auth python3 cli.py setaccountrole