Firmware version 1.5.0

Configuration files

ServicePath to the configuration file
evi-core/opt/evi-core/evi-core.conf
evi-core-web/etc/angie/http.d/evi-core-web.conf
evi-scud/opt/evi-scud/evi-scud.conf
evi-live/opt/evi-live/evi-live.conf
evi-archive/opt/evi-archive/evi-archive.conf
evi-analyzer/opt/evi-analyzer/evi-analyzer.conf

Evi-core kernel module

The evi-core configuration file is located in /opt/evi-core/evi-core.conf.

/opt/evi-core/evi-core.conf
[api]
listen=127.0.0.1                      # HTTPS API address or interface (* - all interfaces) (ENV: EVICORE_API_LISTEN)
port=7000                             # Port for HTTPS API (ENV: EVICORE_API_PORT)

[ssl]
cert_file=/opt/evi-core/ssl/cert.crt  # Certificate file (ENV: EVICORE_SSL_CERT_FILE)
key_file=/opt/evi-core/ssl/cert.key   # Certificate key file (ENV: EVICORE_SSL_KEY_FILE)
# pem=123                             # Certificate passphrase (optional) (ENV: EVICORE_SSL_PEM)

[log]
level=info                            # Log level (ENV: EVICORE_LOG_LEVEL)
file=/var/log/evi-core/evi-core.log   # Path to log file (ENV: EVICORE_LOG_FILE)

[postgresql]
host=127.0.0.1                        # PostgreSQL address (ENV: EVICORE_POSTGRESQL_HOST)
port=5432                             # PostgreSQL port (ENV: EVICORE_POSTGRESQL_PORT)
dbname=core                           # PostgreSQL database name (ENV: EVICORE_POSTGRESQL_DBNAME)
username=core                         # PostgreSQL user (ENV: EVICORE_POSTGRESQL_USERNAME)
password=core                         # PostgreSQL password (ENV: EVICORE_POSTGRESQL_PASSWORD)

[clickhouse]
host=127.0.0.1                        # Clickhouse address (ENV: EVICORE_CLICKHOUSE_HOST)
port=9000                             # Clickhouse port (ENV: EVICORE_CLICKHOUSE_PORT)
dbname=core                           # Clickhouse database name (ENV: EVICORE_CLICKHOUSE_DBNAME)
username=core                         # Clickhouse user (ENV: EVICORE_CLICKHOUSE_USERNAME)
password=core                         # Clickhouse password (ENV: EVICORE_CLICKHOUSE_PASSWORD)

[evi-scud]
rpc_host=127.0.0.1                    # evi-scud address (ENV: EVICORE_EVISCUD_RPC_HOST)
rpc_port=7102                         # evi-scud RPC port (ENV: EVICORE_EVISCUD_RPC_PORT)

[evi-analytics]
rpc_host=127.0.0.1                    # evi-analytics address (ENV: EVICORE_EVIANALYTICS_RPC_HOST)
rpc_port=7402                         # evi-analytics RPC port (ENV: EVICORE_EVIANALYTICS_RPC_PORT)

[evi-live]
rpc_host=127.0.0.1                    # evi-live address (ENV: EVICORE_EVILIVE_RPC_HOST)
rpc_port=7202                         # evi-live RPC port (ENV: EVICORE_EVILIVE_RPC_PORT)

[evi-archive]
rpc_host=127.0.0.1                    # evi-archive address (ENV: EVICORE_EVIARCHIVE_RPC_HOST)
rpc_port=7302                         # evi-archive RPC port (ENV: EVICORE_EVIARCHIVE_RPC_PORT)

[evi-analyzer]
rpc_host=127.0.0.1                    # evi-analyzer address (ENV: EVICORE_EVIANALYZER_RPC_HOST)
rpc_port=7502                         # evi-analyzer RPC port (ENV: EVICORE_EVIANALYZER_RPC_PORT)

Evi-scud module

The evi-scud configuration file is located in /opt/evi-scud/evi-scud.conf.

/opt/evi-scud/evi-scud.conf
[ssl]
cert_file=/opt/evi-scud/ssl/cert.crt    # Certificate file (ENV: EVISCUD_SSL_CERT_FILE)
key_file=/opt/evi-scud/ssl/cert.key     # Certificate key file (ENV: EVISCUD_SSL_KEY_FILE)
# pem=123                               # Certificate passphrase (optional) (ENV: EVISCUD_SSL_PEM)

[log]
level=info                              # Log level (ENV: EVISCUD_LOG_LEVEL)
file=/var/log/evi-scud/evi-scud.log     # Path to log file (ENV: EVISCUD_LOG_FILE)

[postgresql]
host=127.0.0.1                          # PostgreSQL address (ENV: EVISCUD_POSTGRESQL_HOST)
port=5432                               # PostgreSQL port (ENV: EVISCUD_POSTGRESQL_PORT)
dbname=core                             # PostgreSQL database name (ENV: EVISCUD_POSTGRESQL_DBNAME)
username=core                           # PostgreSQL user (ENV: EVISCUD_POSTGRESQL_USERNAME)
password=core                           # PostgreSQL password (ENV: EVISCUD_POSTGRESQL_PASSWORD)

[rpc]
listen=127.0.0.1                        # Address or interface for RPC (* - all) (ENV: EVISCUD_RPC_LISTEN)
port=7102                               # TCP SSL port for RPC (ENV: EVISCUD_RPC_PORT)

[events]
listen=127.0.0.1                        # Address or interface for events (* - all) (ENV: EVISCUD_EVENTS_LISTEN)
port=7104                               # TCP SSL port for events (ENV: EVISCUD_EVENTS_PORT)

[controller]
listen=*                                # Address or interface for communication with IPAER (* - all) (ENV: EVISCUD_CONTROLLER_LISTEN)
port=7105                               # TCP port for communication with IPAER (ENV: EVISCUD_CONTROLLER_PORT)
ssl_port=8085                           # TCP SSL port for communication with IPAER (ENV: EVISCUD_CONTROLLER_SSL_PORT)

Evi-live module

The evi-live configuration file is located in /opt/evi-live/evi-live.conf.

Make sure that the extern_host value matches the external IP address or domain name of the server via which clients connect to the system (this setting may change during migration)

/opt/evi-live/evi-live.conf
[api]
listen=*                             # Address or interface HTTPS API for HTTPS API (* - all interfaces) (ENV: EVILIVE_API_HOST)
port=7200                            # Port for HTTPS API (ENV: EVILIVE_API_PORT)

[ssl]
cert_file=/opt/evi-live/ssl/cert.crt # Certificate file (ENV: EVILIVE_SSL_CERT_FILE)
key_file=/opt/evi-live/ssl/cert.key  # Certificate key file (ENV: EVILIVE_SSL_KEY_FILE)
# pem=123                            # Certificate passphrase (optional) (ENV: EVILIVE_SSL_PEM)

[log]
level=info                           # Log level (ENV: EVILIVE_LOG_LEVEL)
file=/var/log/evi-live/evi-live.log  # Path to log file (ENV: EVILIVE_LOG_FILE)

[postgresql]
host=127.0.0.1                       # PostgreSQL address (ENV: EVILIVE_POSTGRESQL_HOST)
port=5432                            # PostgreSQL port (ENV: EVILIVE_POSTGRESQL_PORT)
dbname=core                          # PostgreSQL database name (ENV: EVILIVE_POSTGRESQL_DBNAME)
username=core                        # PostgreSQL user (ENV: EVILIVE_POSTGRESQL_USERNAME)
password=core                        # PostgreSQL password (ENV: EVILIVE_POSTGRESQL_PASSWORD)

[rpc]
listen=127.0.0.1                     # Address or interface for RPC (* - all) (ENV: EVILIVE_RPC_HOST)
port=7202                            # TCP SSL port for RPC (ENV: EVILIVE_RPC_PORT)

[events]
listen=127.0.0.1                     # Address or interface for events (* - all) (ENV: EVILIVE_EVENTS_HOST)
port=7204                            # TCP SSL port for events (ENV: EVILIVE_EVENTS_PORT)

[global]
extern_host=127.0.0.1                # External or proxy address (ENV: EVILIVE_GLOBAL_EXTERN_HOST)
extern_port_rtsp_tcp=7260            # External or proxy RTSP TCP port (ENV: EVILIVE_GLOBAL_EXTERN_PORT_RTSP_TCP)
extern_port_rtmp=7250                # External or proxy RTMP port (ENV: EVILIVE_GLOBAL_EXTERN_PORT_RTMP)
extern_port_webrtc_tcp=7285          # External or proxy port for WebRTC TCP (ENV: EVILIVE_GLOBAL_EXTERN_WEBRTC_TCP)
extern_port_webrtc_udp=7285          # External or proxy port for WebRTC UDP (ENV: EVILIVE_GLOBAL_EXTERN_WEBRTC_UDP)
extern_port_api=7200                 # External or proxy API port (ENV: EVILIVE_GLOBAL_EXTERN_PORT_API)

[rtsp]
listen=*                             # RTSP address or interface (* - all) (ENV: EVILIVE_RTSP_HOST)
tcp_port=7260                        # TCP port for RTSP (ENV: EVILIVE_RTSP_TCP_PORT)

[rtmp]
listen=*                             # Address or interface for RTMP (* - all interfaces) (ENV: EVILIVE_RTMP_HOST)
port=7250                            # TCP port for RTMP (ENV: EVILIVE_RTMP_PORT)

[webrtc]
listen=*                             # Address or interface for WebRTC (* - all interfaces) (ENV: EVILIVE_WEBRTC_HOST)
tcp_port=7285                        # TCP port for WebRTC (ENV: EVILIVE_WEBRTC_TCP_PORT)
udp_port=7285                        # UDP port for WebRTC (ENV: EVILIVE_WEBRTC_UDP_PORT)

Evi-archive module

The evi-archive configuration file is located in /opt/evi-archive/evi-archive.conf.

/opt/evi-archive/evi-archive.conf
[ssl]
cert_file=/opt/evi-archive/ssl/cert.crt     # Certificate file (ENV: EVIARCHIVE_SSL_CERT_FILE)
key_file=/opt/evi-archive/ssl/cert.key      # Certificate key file (ENV: EVIARCHIVE_SSL_KEY_FILE)
# pem=123                                   # Certificate passphrase (optional) (ENV: EVIARCHIVE_SSL_PEM)

[log]
level=info                                  # Log level(ENV: EVIARCHIVE_LOG_LEVEL)
file=/var/log/evi-archive/evi-archive.log   # Path to log file (ENV: EVIARCHIVE_LOG_FILE)

[rpc]
listen=127.0.0.1                            # Address or interface for RPC (* - all) (ENV: EVIARCHIVE_RPC_HOST)
port=7302                                   # TCP SSL port for RPC (ENV: EVIARCHIVE_RPC_PORT)

[events]
listen=127.0.0.1                            # Address or interface for events (* - all) (ENV: EVIARCHIVE_EVENTS_HOST)
port=7304                                   # TCP SSL port for events (ENV: EVIARCHIVE_EVENTS_PORT)

[archive]
path=./archive                              # Path to the archive directory (ENV: EVIARCHIVE_ARCHIVE_PATH)

Evi-analyzer module

The evi-analyzer configuration file is located in /opt/evi-analyzer/evi-analyzer.conf.

/opt/evi-analyzer/evi-analyzer.conf
[ssl]
cert_file=/opt/evi-analyzer/ssl/cert.crt      # Certificate file (ENV: EVIANALYZER_SSL_CERT_FILE)
key_file=/opt/evi-analyzer/ssl/cert.key       # Certificate key file (ENV: EVIANALYZER_SSL_KEY_FILE)
# pem=123                                     # Certificate passphrase (optional) (ENV: EVIANALYZER_SSL_PEM)

[log]
level=info                                    # Log level (ENV: EVIANALYZER_LOG_LEVEL)
file=/var/log/evi-analyzer/evi-analyzer.log   # Path to log file (ENV: EVIANALYZER_LOG_FILE)

[postgresql]
host=127.0.0.1                                # PostgreSQL address (ENV: EVIANALYZER_POSTGRESQL_HOST)
port=5432                                     # PostgreSQL port (ENV: EVIANALYZER_POSTGRESQL_PORT)
dbname=core                                   # PostgreSQL database name (ENV: EVIANALYZER_POSTGRESQL_DBNAME)
username=core                                 # PostgreSQL user (ENV: EVIANALYZER_POSTGRESQL_USERNAME)
password=core                                 # PostgreSQL password (ENV: EVIANALYZER_POSTGRESQL_PASSWORD)

[rpc]
listen=127.0.0.1                              # Address or interface for RPC (* - all interfaces) (ENV: EVIANALYZER_RPC_HOST)
port=7502                                     # TCP SSL port for RPC (ENV: EVIANALYZER_RPC_PORT)

[events]
listen=127.0.0.1                              # Address or interface for events (* - all interfaces) (ENV: EVIANALYZER_EVENTS_HOST)
port=7504                                     # TCP SSL port for events (ENV: EVIANALYZER_EVENTS_PORT)

Evi-core-web module

The evi-core-web.conf configuration file is located in /etc/angie/http.d/evi-core-web.conf:

/etc/angie/http.d/evi-core-web.conf
# evi-core-web configuration

server {
        listen 80;
        listen [::]:80;
        return 301 https://$host$request_uri;

        server_name $hostname $server_addr 127.0.0.1 localhost;
}

server {
        listen 443 ssl;
        ssl_certificate /etc/ssl/certs/evi-core-web.crt;
        ssl_certificate_key /etc/ssl/private/evi-core-web.key;

        root /usr/share/evi-core-web/www/browser;

        index index.html;

        server_name $hostname $server_addr 127.0.0.1 localhost;

        location /assets/config.json {
                set $apiAddress $scheme://$http_host;
                set $wsAddress wss://$http_host;
                default_type application/json;
                return 200 "{\"api\": \"$apiAddress/api/v1\", \"ws\": \"$wsAddress/api/v1\", \"tablet\": true}";
        }

        location / {
                # kill browser cache for all html pages
                add_header Last-Modified $date_gmt;
                add_header Cache-Control 'no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0';
                if_modified_since off;
                expires off;
                etag off;

                try_files $uri $uri/ /index.html;

        # api settings:
        location /api/v1 {
                # Enable the proxy — receive API requests from the specified URL:
                proxy_pass https://localhost:7000;
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "upgrade";
                proxy_set_header Host $host;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Real-IP $remote_addr;

                # a 5 MB limit for uploading files from the client to the server
                client_max_body_size 5M;
        }

        # Separate configuration for /api/v1/firmware
        location /api/v1/firmware {
                # Enable the proxy — receive API requests from the specified URL:
                proxy_pass https://localhost:7000;

                # Increased limit for firmware downloads
                client_max_body_size 15M;
        }
}

Directory for storing video archives

To configure the directory, it is necessary to proceed to editing the configuration file:

/opt/evi-archive/evi-archive.conf

And specify the directory where the archive will be stored in the [archive] section under the path parameter:

[archive]
path=./archive

The program supports only one save path.

Connecting multiple drives

If it is necessary to use multiple drives, they must be combined at the Linux OS level by mounting them into a shared folder.

  1. Connect additional drives.
  2. Create a shared mount path, for example: /mnt/archive.
  3. Combine the drives into a single logical path using:
    1. LVM – combining into a single volume,
    2. RAID (e.g., RAID 0 or RAID 5) – for data distribution,
    3. bind-mounting multiple partitions into subdirectories of a shared folder.

Specify the following path in the configuration:

[archive]
path=/mnt/archive

Ensure that the program has read/write permissions for the folder.


Direct configuration of multiple paths is not possible – all drive management is performed at the operating system level.

File storage structure

The archive stored in the directory on the server has the internal .arc format.

archive/live/{camera_id}/{date}.arc

Viewing archived files

Exporting and viewing archives is performed using evi-video-client.

For more details, see the Viewing an archive section.

Uploading SSL certificates

To use your own certificates in service configuration files, it is necessary to specify the path to the certificate and key files.

Evi-core module

Switch to editing the /opt/evi-core/evi-core.conf configuration file.

Specify the path to the certificate and key in the [ssl] section under the crt and key parameters:

/opt/evi-core/evi-core.conf
[ssl]
cert_file=<path to certificate>
key_file=<path to key>

Evi-scud module

Switch to editing the /opt/evi-scud/evi-scud.conf configuration file.

Specify the path to the certificate and key in the [ssl] section under the crt and key parameters:

/opt/evi-scud/evi-scud.conf
[ssl]
cert_file=<path to certificate>
key_file=<path to key>

Evi-live module

Switch to editing the /opt/evi-live/evi-live.conf configuration file.

Specify the path to the certificate and key in the [ssl] section under the crt and key parameters:

/opt/evi-live/evi-live.conf
[ssl]
cert_file=<path to certificate>
key_file=<path to key>

Evi-archive module

Switch to editing the /opt/evi-archive/evi-archive.conf configuration file.

Specify the path to the certificate and key in the [ssl] section under the crt and key parameters:

/opt/evi-archive/evi-archive.conf
[ssl]
cert_file=<path to certificate>
key_file=<path to key>

Evi-analyzer module

Switch to editing the /opt/evi-analyzer/evi-analyzer.conf configuration file.

Specify the path to the certificate and key in the [ssl] section under the crt and key parameters:

/opt/evi-analyzer/evi-analyzer.conf
[ssl]
cert_file=<path to certificate>
key_file=<path to key>

Evi-core-web module

Switch to editing the /etc/angie/http.d/evi-core-web.conf configuration file /etc/angie/http.d/evi-core-web.conf.

Specify the path to the certificate and key under the ssl_certificate and ssl_certificate_key parameters:

/etc/angie/http.d/evi-core-web.conf
ssl_certificate <path to certificate>;
ssl_certificate_key <path to key>;

Evi-analytics Docker container 

Switch to editing the evi-analytics_1.5.0_docker-compose.sh file.

Specify in variables:

evi-analytics_1.5.0_docker-compose.sh
  #EVI-ANALYTICS CONFIG SECTION [ssl]
  : ${EVIANALYTICS_SSL_CERT_FILE="<path to certificate>"}
  : ${EVIANALYTICS_SSL_KEY_FILE="<path to key>"}

Log file rotation

Service log files are located in the /var/log/service-name folder.

EVI services do not perform automatic log rotation

To configure rotation, use the logrotate utility according to your system requirements.

Example of configuration for rotating the /var/log/evi-core/evi-core.log file.

/etc/logrotate.d/evi-core.log configuration file
/var/log/evi-core/evi-core.log
{
        hourly
        size 100M
        dateext
        dateformat -%Y-%m-%d_%H-%s
        missingok
        rotate 15
        copytruncate
		compress
        notifempty
}

Explanation of parameters:

ParameterDescription
hourlyhourly rotation
size 100Mrotation when reaching a size of 100 MB
dateextadding a date to the name of an archive log
dateformatdate format in the file name
missingokno error if the file is missing
rotate 15store up to 15 backup copies
copytruncatecopy and trim the current log (without rebooting the service)
notifemptydo not rotate if the log is empty


  • Нет меток