Env variablеs
Env variables
CODE
APP_NAME=VMS # A project name
APP_ENV=production # Setting up an environment. Certain code can only be executed in a specific environment.
APP_KEY= # Is generated while installation/ It's required for internal work of laravel.
APP_DEBUG=false # on/off of degub
# List of user types in system
USER_TYPES=user # These type of users can be created via billing api
# List of media server types in system
SERVER_TYPES=media_server_v2 # The list of available mediaservers in VMS.
# Current release version.
RELEASE=0.0.0.0 # The current release version that is used for для sentry
# Application license data.
LICENSE_SOURCE= # possible values: file and server
LICENSE_URL= # url of a license to be used. Use this parameter if LICENSE_SOURCE=server
LICENSE_APP_NAME= #an app code. Use this parameter if LICENSE_SOURCE=server
LICENSE_APP_SECRET= # an app key. Use this parameter if LICENSE_SOURCE=server
LICENSE_PUBLIC_KEY= #a key for a license file. Use this parameter if LICENSE_SOURCE=file
# Locale settings
AVAILABLE_LOCALES_AND_DIRECTIONS=ru_ltr,en_ltr # If it's required to add a language or change settings, then change this variable before the nevironment is deployed. The specified order of languages will influence interface display. A language direction can be ltr и rtl.
FALLBACK_LOCALE=ru # When no translation is available for a language, this language will be used by default.
LOCALE=ru # The default language
TIMEZONE=UTC # The timezone in which in which all dates will be stored in the database.
# Database credentials.
DB_CONNECTION=mysql # A driver to work with the database.
DB_HOST=mysql-server # A host to connect to the database.
DB_PORT=3306 # A port порт to connect to the adatabase.
DB_CRITICAL_PORT=3306 # A port to connect to the master node of the database. It's required only when the databse works in cluster mode.
DB_DATABASE=vms # A database name for connecting to the database.
DB_USERNAME=vms # A user for connecting to the database.
DB_PASSWORD=vms # A password for connecting to the database.
#error compare mysql 8 version (mysql 8 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=mysql-server
DB_DHCP_PORT=3306
DB_DHCP_DATABASE=kea_dhcp
DB_DHCP_USERNAME=kea_dhcp
DB_DHCP_PASSWORD=kea_dhcp
# Controller settings
CONTROLLER_ENDPOINT=http://localhost/rpc
CONTROLLER_TIMEOUT=5
CONTROLLER_TOKEN_LIFE_TIME=10800 # token lifetime for access to video streams, set in seconds. Default is 3 hours
# System settings.
BROADCAST_DRIVER=pusher
CACHE_DRIVER=redis
QUEUE_CONNECTION=beanstalkd
FILESYSTEM_DISK=public
MIN_SYMBOLS_SEARCH_CAMERAS=3
DISABLE_THROTTLE=false
BACKUP_PATH='/var/backups/mysql/dumps/'
MAX_MEDIA_SERVER_STORAGE_USAGE=80
LOG_CHANNEL=stack # select a channel for logs
# Send messages to slack channel.
LOG_SLACK_WEBHOOK_URL=https://hooks.slack.com/ # webhook url to send notifications
# Sentry credentials.
SENTRY_LARAVEL_DSN=https://sentry.com/ # url to send exception in sentry
# Password for admin in seeder.
ADMIN_PASSWORD=qweasdzxc # a default password for an administrator that is created while the system is deployed.
# Endpoint for download.
DOWNLOAD_PAGE_PATH=/download # path to download a thick client
# Send push to users after creating, updating events connected to streams.
SEND_PUSH_STREAM_INACTIVE=false # set a flag to send push notifications to the user on the vents of stream_active/stream_inactive
# PTZ local/server
PTZ=server # a work flow with PTZ
# Login and password for Onvif client.
CAMERA_LOGIN=admin # A defualt login to work with an ONVIF-comaptible camera
CAMERA_PASSWORD=admin # A defualt password to work with an ONVIF-comaptible camera
# If the stream credentials not fit, take credentials form ONVIF config.
CHECK_CREDENTIALS=false # A flag to work with credentials for ONVIF
# Enable requests for autoprovisioning.
AUTOPROVISIONING_ENABLED=true # A flag to work with autoprovisioning
# Deley for dispatch AutoCreateStreamsDHCP job, because Onvfi client works with a delay.
ONVIF_DELAY=120 # Delay for job on creating sterams for autoprovisioning
# Interval (in seconds) with will be touch large jobs.
INTERVAL_TOUCH_LARGE_JOBS=35 # Interval in seconds to update job, interval in seconds for updating jobs that run for a very long time (Necessary to fix the error where the job scheduler forgets about these jobs)
IS_STREAM_URL_UNIQUE=true # A flag that disables validation for adding unique video stream add
# Count of domains for argument in console command stream_info
OFFSET_STREAM_INFO_SERVERS=50
# Time during which the last motion detect mark on the camera can be updated (in minutes)
MARK_MOTION_DETECT_TIMEOUT=30
# Seconds by which the shift occurs when creating a mark
OFFSET_CREATING_MARK=5
# Force delete cameras after n days
FORCE_DELETE_CAMERAS=30
# Intercom tree max depth (calculate depth with root group)
INTERCOM_TREE_MAX_DEPTH=4
# Default number of days that the archive is stored on the camera.
DEFAULT_ARCHIVE_STORAGE_DAYS=30
# Redis settings
REDIS_HOST=redis-server
REDIS_PASSWORD=null
REDIS_PORT=6379
# Beanstalkd settings
BEANSTALK_HOST=beanstalkd
BEANSTALK_PORT=11300
# WebSocket settings.
PUSHER_APP_ID=app
PUSHER_APP_KEY=key
PUSHER_APP_SECRET=secret
PUSHER_APP_CLUSTER=mt1
PUSHER_HOST=push1st
PUSHER_PORT=6002
WEBSOCKET_CONNECTION_PATH=/pusher # A prefix to connect to webscoket
# Media Server settings
PROCESS_MEDIA_SERVER_V2_REQUEST=true
MEDIA_SERVER_V2_TIMEOUT=10
LOG_MEDIA_SERVER_V2_CALLBACK_REQUEST=true #Enables/disables logging of callbacks for the mediaserver
MEDIA_SERVER_V2_SYNC_CALLBACK=true # A configuration option to determine whether callbacks from the media server are processed synchronously or asynchronously.
MEDIA_SERVER_V2_EVENT_DVR_DURATION=180
OFFSET_ARCHIVE_RANGE_STREAMS=20
# Default limits for media server v2 servers.
MEDIA_SERVER_V2_STREAMS_LIMIT=200
MEDIA_SERVER_V2_BITRATE_LIMIT=300
# Flussonic settings
PROCESS_FLUSSONIC_REQUEST=true
FLUSSONIC_LOGIN=login
FLUSSONIC_PASSWORD=password
FLUSSONIC_SECRET_KEY=key
FLUSSONIC_MCELD_PROTOCOL=wss
FLUSSONIC_LICENCE=
FLUSSONIC_TIMEOUT=10
# Default limits for flussonic servers
FLUSSONIC_STREAMS_LIMIT=200
FLUSSONIC_BITRATE_LIMIT=300
# IsApi credentials. Used to handle motion detection on camera.
IS_API_SCHEMA=http
IS_API_TIMEOUT=10
PROCESS_IS_API_REQUEST=true
# Case analytic settings
ANALYTIC_TIMEOUT=10
PROCESS_ANALYTIC_REQUEST=true
ORCHESTRATOR_TIMEOUT=10
ORCHESTRATOR_ENDPOINT=https://vms.local
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
BASE_ENDPOINT_S3_STORAGE=http://localhost/
OVMS_STREAM_READING_ERROR_NOTIFICATION_LIFE_TIME=90 # The duration (in seconds) that the error message for a 'stream_reading_error' event will be shown in the analytics case.
# Custom endpoint for the analytic case callback, empty for default domain.
ANALYTIC_CASE_CALLBACK_ENDPOINT=
# Analytic case meta setting.
# 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
FIGURES_MAX_NUMBER=6 # A number of zones that a user can create in one camera.
# Analytic files settings
ANALYTIC_FILES_DELETE_AFTER=30 # number of days to keep a deleted analytics file that was associated with events
# Size of push in sidebar (in bytes)
SIZE_OF_SIDEBAR_PUSH=20000
# TO SET STATIC IP TO CAMERA DURING AUTOPROVISIONING
ONVIF_CHANGE_STATIC_NETWORK=false
ONVIF_CHANGE_DEFAULT_GATEWAY=false
USE_CAMERA_SERIAL_NUMBER_AS_PASSWORD=true
#Schedule settings
# settings to perform cron tasks. It's required for load balancing across the cluster and for disabling tasks that are currently unnecessary. failed to translate
SCHEDULE_IS_FLUSSONIC_ENABLED=false
SCHEDULE_MEDIA_SERVER_V2_ENABLED=true
SCHEDULE_IS_HIKVISION_ENABLED=false
SCHEDULE_IS_DHCP_ENABLED=true
SCHEDULE_IS_BASIC_SCRIPTS_ENABLED=true
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
# Nodes settings.
NODES_CLUSTER_ENABLE=false
# Available only when cluster enabled.
NODE_NUMBER=1
NODES_COUNT=2
# Available only when cluster disabled.
OFFSET_ARCHIVE_RANGE_SERVERS=50
# APN settings
# Set up 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
#Setting for mobile
MOBILE_SCHEMA= # A deep linking mechanism that allows users to authenticate externally and create profiles by scanning QR codes. The specific link structure is automatically generated during the build process.
# Intercom settings
INTERCOM_CODE_LIFE_TIME=60 # The lifespan (in seconds) of the code for adding the intercom, which needs to be entered directly on the intercom.
INTERCOM_KEY_LIFE_TIME=60 # The lifespan in seconds after entering the code on the intercom to attach the key.
INTERCOM_ENDPOINT=https://api.sputnik.systems #The cloud address to work with an intercom
INTERCOM_TIMEOUT=3 # timeout for requests to the intercom
INTERCOM_PROCESS_REQUEST=true # A flag to process requests to an intercom. It's required when API must work to send real requests.
INTERCOM_USER_NUMBER_POSTFIX=@domain.com # The suffix added to a SIP address to uniquely identify apartments within an intercom system.
INTERCOM_AUTH_TOKEN=token # A token to authorize requests to intercom.
INTERCOM_END_CALL=60
INTERCOM_SIP_SERVER=localhost:5060
# if the value is true - is_online will handle by webhook from cloud
# if the value is false - is_online will handle by re-interrogation in console command
INTERCOM_SPUTNIK_HANDLE_IS_ONLINE_BY_CALLBACK=false
# Max count of users temporary codes
INTERCOM_MAX_CODES_COUNT=5
INTERCOM_ANALYTIC_MAX_COUNT_FILES_UPLOAD=20 # Max number of uploaded files that user can add for opening the door by face recognition
FORCE_DELETE_INTERCOMS=30 # Force delete intercoms after n days
# Stream condition management.
RESTART_STREAM_AFTER=30
# Standard for cameras without 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 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
#BILLING
BILLING_URL_TO_SYNC_CAMERAS=
BILLING_URL_TO_UPDATE_PASSWORD=
BILLING_URL_TO_STORE_SUB_USER=
BILLING_URL_TO_DESTROY_SUB_USER=
BILLING_CAMERA_ADDRESS_TREE_SEGMENTS_COUNT=5 # A number of address tree segments to build camera address tree(Note - a region, a city, a district,a street,an appartment).
BILLING_CAMERA_ADDRESS_TREE_URL_PARSE= # A Url to receive a complete camera address tree by a house identifier.
BILLING_CAMERA_ADDRESS_TREE_URL_N= # The Nth endpoint for creating a hierarchical camera address structure on an external service. The number of data URL parameters should match the number of segments.
BILLING_TIMEOUT=2
# Bridge settings
BRIDGE_LOCAL_ARCHIVE_ENABLED_BY_DEFAULT=true # Whether local archive recording is enabled by default when creating a camera
BRIDGE_LOCAL_ARCHIVE_STORAGE_DAYS_BY_DEFAULT=30 # Number of days of local archive recording for bridge cameras by default
BRIDGE_CLOUD_ARCHIVE_ENABLED_BY_DEFAULT=true # Whether cloud archive recording is enabled by default when creating a camera
BRIDGE_CLOUD_ARCHIVE_STORAGE_DAYS_BY_DEFAULT=30 # Number of days of archive recording to the cloud for bridge cameras by default
BRIDGE_DAYS_AFTER_BLOCK_BEFORE_DELETING=30 # Number of days after which a blocked device will be deleted from the database
# Camera agent settings
CAMERA_AGENT_LOCAL_ARCHIVE_ENABLED_BY_DEFAULT=false # Whether local archive recording is enabled by default when creating a camera
CAMERA_AGENT_LOCAL_ARCHIVE_STORAGE_DAYS_BY_DEFAULT=30 # Number of days of local archive recording for bridge cameras by default
CAMERA_AGENT_CLOUD_ARCHIVE_ENABLED_BY_DEFAULT=true # Whether cloud archive recording is enabled by default when creating a camera
CAMERA_AGENT_CLOUD_ARCHIVE_STORAGE_DAYS_BY_DEFAULT=30 # Number of days of archive recording to the cloud for bridge cameras by default
CAMERA_AGENT_DAYS_AFTER_BLOCK_BEFORE_DELETING=30 # Number of days after which a blocked device will be deleted from the database
TREE_CAMERA_SINGLE_REQUEST_MAX_CAMERAS_COUNT=100
TREE_LAYOUT_SINGLE_REQUEST_MAX_GROUPS_COUNT=5
#SMTP settings
#Available values peer and from
SMTP_EVENT_TAKE_IP_FROM=from
ARCHIVE_STREAM_ENABLED_TIME_INTERVAL_BEFORE=15 # Duration in seconds within which archived video before an event is avalable to watch. This is used when limitations are set to watch intercom video or for an individual user.
failed to translate
ARCHIVE_STREAM_ENABLED_TIME_INTERVAL_AFTER=30 # Duration in seconds within which archived video after an event is avalable to watch.This is used when limitations are set to watch intercom video or for an individual user.
CLIENT_MAP_CAMERAS_LIMIT=16 # The limit on the number of simultaneously open lives on the map\plan for client (the maximum value is 16, if you specify a value greater than it will be ignored and 16 will be substituted instead)
ADMIN_MAP_CAMERAS_LIMIT=16 # The limit on the number of simultaneously open lives on the map\plan for admin (the maximum value is 16, if you specify a value greater than it will be ignored and 16 will be substituted instead)
MAP_CLUSTER_ITEMS=500 # number of elements on the map after which clustering begins
MAPS_TREE_MAX_DEPTH=2 # Max depth for map's groups
# Map coordinates
# For Admin
# Setting default coordinates for admin map
#ADMIN_MAP_LATITUDE=
#ADMIN_MAP_LONGITUDE=
#ADMIN_MAP_ZOOM=
# For Client
# Setting default coordinates for client map
#CLIENT_MAP_LATITUDE=
#CLIENT_MAP_LONGITUDE=
#CLIENT_MAP_ZOOM=