Firmware version 1.5.0 |
| Service | Path 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 |
The evi-core configuration file is located in /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) |
The evi-scud configuration file is located in /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) |
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) |
[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) |
The evi-archive configuration file is located in /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) |
The evi-analyzer configuration file is located in /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) |
The evi-core-web.conf configuration file is located in /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;
}
}
|
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.
If it is necessary to use multiple drives, they must be combined at the Linux OS level by mounting them into 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. |
The archive stored in the directory on the server has the internal .arc format.
archive/live/{camera_id}/{date}.arcExporting and viewing archives is performed using evi-video-client.
For more details, see the Viewing an archive section.
To use your own certificates in service configuration files, it is necessary to specify the path to the certificate and key files.
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:
[ssl] cert_file=<path to certificate> key_file=<path to key> |
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:
[ssl] cert_file=<path to certificate> key_file=<path to key> |
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:
[ssl] cert_file=<path to certificate> key_file=<path to key> |
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:
[ssl] cert_file=<path to certificate> key_file=<path to key> |
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:
[ssl] cert_file=<path to certificate> key_file=<path to key> |
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:
ssl_certificate <path to certificate>; ssl_certificate_key <path to key>; |
Switch to editing the evi-analytics_1.5.0_docker-compose.sh file.
Specify in variables:
#EVI-ANALYTICS CONFIG SECTION [ssl]
: ${EVIANALYTICS_SSL_CERT_FILE="<path to certificate>"}
: ${EVIANALYTICS_SSL_KEY_FILE="<path to key>"} |
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.
/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:
| Parameter | Description |
|---|---|
| hourly | hourly rotation |
| size 100M | rotation when reaching a size of 100 MB |
| dateext | adding a date to the name of an archive log |
| dateformat | date format in the file name |
| missingok | no error if the file is missing |
| rotate 15 | store up to 15 backup copies |
| copytruncate | copy and trim the current log (without rebooting the service) |
| notifempty | do not rotate if the log is empty |