Skip to main content
Skip table of contents

Configurations

This section presents an example of a configuration file that needs to be set up for the platform to work successfully.

A configuration file is a file that contains information necessary for the successful operation of the program.

CODE
APP_NAME=VMS # Project name
APP_ENV=production # Environment setting, some code may only be executed on a certain environment
APP_KEY=  # Generated during installation (needed for internal Laravel work)
APP_DEBUG=false  # Turn debug on/off
APP_URL=http://localhost  # URL of the current installation
IS_STREAM_URL_UNIQUE=true # Flag that turns off validation for adding unique video stream addresses
BRANCH= # Branch name in which the project is built, used only for debugging

# Current release version
RELEASE=X.X.X # Current release number used for Sentry

# Sending messages to Slack channel
LOG_SLACK_WEBHOOK_URL=https://hooks.slack.com/ # webhook URL for sending notifications

# Sentry credentials
SENTRY_LARAVEL_DSN=https://sentry.com/ # URL for sending exceptions to Sentry

# Admin password in Seeder
ADMIN_PASSWORD=qweasdzxc # Default password for the admin, which is created during system deployment

# Entry point for downloading
DOWNLOAD_PAGE_PATH=/download # path for downloading updates for thick client

# WebSocket settings
WEBSOCKET_CONNECTION_PATH=/pusher # Prefix for connecting to WebSocket

# Sending push notifications to users after creating or updating events related to streams
SEND_PUSH_STREAM_INACTIVE=false # Flag for sending pushes to users for the stream_active/stream_inactive event

# PTZ local/server
PTZ=server # PTZ workflow

# Login and password for Onvif client
CAMERA_LOGIN=admin # Default login for working with camera over Onvif
CAMERA_PASSWORD=admin # Default password for working with camera over Onvif

# If stream credentials are not suitable, take credentials from the Onvif configuration
CHECK_CREDENTIALS=false # Flag for working with credentials for Onvif

# Enable requests for autoconfiguration
AUTOPROVISIONING_ENABLED=true # Flag for working with autoprovisioning

# Delay for setting up AutoCreateStreamsDHCP, as the Onvif client works with a delay
ONVIF_DELAY=120 # Delay for job to create streams for autoprovisioning

LOG_CHANNEL=stack # Selecting a channel for logs

# Database credentials
DB_CONNECTION=mysql # Driver for working with the database
DB_HOST=mysql-server # Host for connecting to the database
DB_PORT=3306 # Port for connecting to the database
DB_CRITICAL_PORT=3306 # Port for connecting to the master node of the database (needed only if the database is running in cluster mode)
DB_DATABASE=vms # Name of the database for connecting to the database
DB_USERNAME=vms # User for connecting to the database
DB_PASSWORD=vms # Password for connecting to the database
# Version comparison error for mysql 8 (mysql 8 does not support NO_AUTO_CREATE_USER mode)
DB_MYSQL_MODES=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

# ClickHouse settings
CLICKHOUSE_HOST=127.0.0.1
CLICKHOUSE_PORT=8123
CLICKHOUSE_DATABASE=vms
CLICKHOUSE_USERNAME=vms
CLICKHOUSE_PASSWORD=vms
CLICKHOUSE_TIMEOUT=10
CLICKHOUSE_PROTOCOL=http

# DHCP credentials
DB_DHCP_HOST=
DB_DHCP_PORT=
DB_DHCP_DATABASE=
DB_DHCP_USERNAME=
DB_DHCP_PASSWORD=

# Standard settings
BROADCAST_DRIVER=pusher
CACHE_DRIVER=redis
QUEUE_CONNECTION=beanstalkd
SESSION_DRIVER=file
SESSION_LIFETIME=120

REDIS_HOST=redis-server
REDIS_PASSWORD=null
REDIS_PORT=6379

# Beanstalkd settings
BEANSTALK_HOST=beanstalkd
BEANSTALK_PORT=11300

# Basic settings for Pusher node
PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_HOST=push1st
PUSHER_PORT=6002

FILESYSTEM_DISK=public

# Enable requests for media servers
PROCESS_MEDIA_SERVER_V2_REQUEST=true
MEDIA_SERVER_V2_EVENT_DVR_DURATION=20
MAX_MEDIA_SERVER_STORAGE_USAGE=80

# Number of domains for the stream_info command-line argument
OFFSET_STREAM_INFO_SERVERS=50

LOG_MEDIA_SERVER_V2_CALLBACK_REQUEST=true

# Time in minutes during which the last motion detection on the camera can be updated
MARK_MOTION_DETECT_TIMEOUT=30

# Seconds offset when creating a mark
OFFSET_CREATING_MARK=5

# Credentials for Media Server v2
OFFSET_ARCHIVE_RANGE_STREAMS=20

# Default limits for Media Server v2 servers
MEDIA_SERVER_V2_STREAMS_LIMIT=200
MEDIA_SERVER_V2_BITRATE_LIMIT=300

# Timeout for clients
MEDIA_SERVER_V2_TIMEOUT=10

# Maximum number of cameras on the map in one API response
CAMERAS_MAP_LIMIT=500

# Forced camera deletion after n days
FORCE_DELETE_CAMERAS=30

# User services update frequency
UPDATE_USER_SERVICES_INTERVAL=7200

# Application license data
LICENSE_SOURCE= # Possible values are "file" and "server"
LICENSE_URL= # License url to use, this parameter is used if LICENSE_SOURCE=server
LICENSE_APP_NAME= # Application code, this parameter is used if LICENSE_SOURCE=server
LICENSE_APP_SECRET= # Application key, this parameter is used if LICENSE_SOURCE=server
LICENSE_PUBLIC_KEY= # Key for the license file, this parameter is used if LICENSE_SOURCE=file

# Maximum intercom tree depth (depth is calculated from the root group)
INTERCOM_TREE_MAX_DEPTH=4

# Default number of days to store archive footage on camera
DEFAULT_ARCHIVE_STORAGE_DAYS=30

# List of available locales
AVAILABLE_LOCALES=ru,en # Available languages in the system
FALLBACK_LOCALE=ru # If there is no translation for the required language, this language will be used by default
LOCALE=ru # Default language

TIMEZONE=UTC # Timezone in which all dates in the database will be stored

# IsApi credentials. Used for motion detection processing on camera
IS_API_SCHEMA=http
IS_API_TIMEOUT=10
PROCESS_IS_API_REQUEST=true

# Analytics case settings
ANALYTIC_TIMEOUT=10
PROCESS_ANALYTIC_REQUEST=true
ORCHESTRATOR_TIMEOUT=10
ORCHESTRATOR_ENDPOINT=http://127.0.0.1
ANALYTIC_ORCHESTRATOR_SOCKET_EVENT_ENDPOINT=ws://127.0.0.1:6001/ws/app/app-key/events/?session=session
ANALYTIC_ORCHESTRATOR_SOCKET_STAT_ENDPOINT=ws://127.0.0.1:6001/ws/app/app-key/stats/?session=session
ANALYTIC_LICENSE_STATISTIC_LIMIT=5
ANALYTIC_MAX_FILES_COUNT_FOR_GROUP=100
FORCE_DELETE_ANALYTIC_CASE_AFTER_DAYS=7

# Analytics case meta-settings
# Threshold in %
MOTION_DETECT_THRESHOLD=90
FACE_THRESHOLD=50
PERSON_COUNTING_THRESHOLD=30
LICENSE_PLATE_THRESHOLD=50
VISITOR_COUNTING_THRESHOLD=50
CROSSING_LINE_DETECTION_THRESHOLD=50
CAMERA_OBSTACLE_THRESHOLD=50
LOUD_SOUND_DETECTION_THRESHOLD=70
SMOKE_FIRE_THRESHOLD=50

# Size of sidebar push notification (in bytes)
SIZE_OF_SIDEBAR_PUSH=20000

# SET A STATIC IP ADDRESS FOR THE CAMERA DURING AUTOCONFIGURATION
ONVIF_CHANGE_STATIC_NETWORK=false
ONVIF_CHANGE_DEFAULT_GATEWAY=false
USE_CAMERA_SERIAL_NUMBER_AS_PASSWORD=true
# Schedule settings
# Settings for executing cron tasks (needed for load balancing for installation in a cluster and for disabling tasks if they are not needed for some reason)
SCHEDULE_MEDIA_SERVER_V2_ENABLED=true
SCHEDULE_IS_HIKVISION_ENABLED=false
SCHEDULE_IS_DHCP_ENABLED=true
SCHEDULE_IS_BASIC_SCRIPTS_ENABLED=true
SCHEDULE_IS_BILLING_ENABLED=false
SCHEDULE_IS_INTERCOM_ENABLED=false
SCHEDULE_IS_SYNC_INTERCOM_ENABLED=false
SCHEDULE_IS_SYNC_INTERCOM_KEY_ENABLED=false
SCHEDULE_IS_FORCE_DELETE_CAMERAS_ENABLE=true
SCHEDULE_IS_ANALYTIC_ENABLE=true

# APN settings
# Settings for apn notifications for ios devices
APN_KEY_ID=key
APN_TEAM_ID=id
APN_BUNDLE_ID=bundle
APN_PRIVATE_KEY=voip.p8
APN_PRODUCTION=false

# Huawei push settings
HUAWEI_APP_ID=
HUAWEI_CLIENT_SECRET=

# FCM settings
FIREBASE_CREDENTIALS=fcm.jsom

# Mobile device settings
MOBILE_SCHEMA= # A special schema by which mobile clients are opened when this link is opened (used in external authorization and qr-code scanning to create a profile). This value is set automatically during assembly

# Intercom settings
INTERCOM_CODE_LIFE_TIME=60 # Lifetime in seconds of the code for adding the intercom, which needs to be entered on the intercom itself
INTERCOM_KEY_LIFE_TIME=60 # Lifetime in seconds after entering the code on the intercom to apply the key
INTERCOM_ENDPOINT=https://api.sputnik.systems # Cloud address for intercom work
INTERCOM_TIMEOUT=3 # Timeout for intercom requests
INTERCOM_PROCESS_REQUEST=true # Flag for processing intercom requests (needed in cases where the API should work and send real requests)
INTERCOM_USER_NUMBER_POSTFIX=@domain.com # Postfix for the SIP address with which apartments are created on the intercom
INTERCOM_AUTH_TOKEN=token # Token for authorization requests on the intercom
INTERCOM_END_CALL=60
INTERCOM_SIP_SERVER=localhost:5060
# If true, is_online will be processed through a webhook from the cloud
# If false, is_online will be processed through a repeated poll in the command line
INTERCOM_SPUTNIK_HANDLE_IS_ONLINE_BY_CALLBACK=false
# Maximum number of temporary codes for users
INTERCOM_MAX_CODES_COUNT=5

# Backup settings
BACKUP_PATH='/var/backups/mysql/dumps/'

# Stream state management
RESTART_STREAM_AFTER=30
# Standard parameters for cameras without an increased connection
FIRST_STEP_DISABLE_STREAM_AFTER=500
FIRST_STEP_DISMISS_STREAM_AFTER=168
SECOND_STEP_DISABLE_STREAM_AFTER=400
SECOND_STEP_DISMISS_STREAM_AFTER=120
THIRD_STEP_DISABLE_STREAM_AFTER=200
THIRD_STEP_DISMISS_STREAM_AFTER=5
# For cameras with an increased connection
INCREASED_FIRST_STEP_DISABLE_STREAM_AFTER=1500
INCREASED_FIRST_STEP_DISMISS_STREAM_AFTER=144
INCREASED_SECOND_STEP_DISABLE_STREAM_AFTER=1000
INCREASED_SECOND_STEP_DISMISS_STREAM_AFTER=96
INCREASED_THIRD_STEP_DISABLE_STREAM_AFTER=500
INCREASED_THIRD_STEP_DISMISS_STREAM_AFTER=48

# Validity checking parameters
MIN_SYMBOLS_SEARCH_CAMERAS=3

# Throttling settings
DISABLE_THROTTLE=false

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.