A module is more than a switch
A feature may affect several services, environment values, volumes, databases, Kafka topics and interface elements. Treat activation as a versioned configuration change. Verify the release-specific file locations and dependencies first.
English interface
The frontend DEFAULT_LANGUAGE and backend USER_DEFAULT_UI_LANG settings serve different layers. Configure both consistently. In the described builds the frontend file is ui-rest/ui-config/config.json, while the backend value is passed to services such as st-auth and st-report-email.
{
"DEFAULT_LANGUAGE": "en"
}
# Backend environment, where supported by the release
USER_DEFAULT_UI_LANG=enA missing config.json can cause the interface to remain in a loading state. After changes, check login, main screens, reports and notifications.
Identity and analytical integrations
Directory integration requires a dedicated read account, agreed groups, DNS, domain-controller access and appropriate secure transport. Check initial load, periodic synchronisation and removal of access after group changes. Identity, dashboard and language-model integrations require compatible images and dependencies.
Video and specialised sources
Archive needs persistent and temporary capacity, codec compatibility and a recording policy. The documented archive path uses TCP streams; validate each camera. Body-worn video, thermal sources, virtual cameras, WebRTC and facial-recognition modules require their own parameters or services and resource checks.
Maps, positioning and devices
Map and floor-plan views are alternative display modes in the documented configuration. Positioning requires an agreed provider and data feed. Peripheral devices and counters need physical/network checks and a verified event-to-device response.
Notifications
Confirm the source event before configuring recipients, format, rate limits, retries and delivery monitoring. Use only channels included in the international delivery. Historical provider-specific wiki integrations are not automatically part of ViewLogic.
Monitoring and cleanup
Add new services to metrics, logging, backup and recovery procedures. Configure retention explicitly and check actual data deletion and disk-capacity behaviour.
Module acceptance
| Check | Evidence |
|---|---|
| Compatibility | Recorded image and dependency versions |
| Resources | CPU/GPU/RAM/storage measurements before and after |
| Data | Successful read/write and retention behaviour |
| Transport | A control event delivered without persistent lag |
| Interface | Correct role and site visibility |
| Operations | Monitoring, backup and rollback documented |
Archive domain and configuration parameters
In the documented BOX 3.x installation, add video-archive to the DOMAINS array in domain.conf. Configure the following variables in the deployment settings. The values are examples, not capacity recommendations. This archive configuration records TCP streams.
Permanent and temporary storage have separate limits. The h264_nvenc encoder requires a compatible NVIDIA GPU and an available encoder.
| Parameter | Example | Meaning / units |
|---|---|---|
VIDEO_ARCHIVE_IS_ENABLED | true | Enable the archive |
VIDEO_ARCHIVE_IS_RECORD_ALL_CAMERAS | false | Do not enable recording automatically for every camera |
VIDEO_ARCHIVE_VIDEO_DURATION_SEC | 900 | Video clip duration, seconds |
VIDEO_ARCHIVE_VIDEO_DELTA_SEC | 5 | Duration used when recording start and end coincide, seconds |
VIDEO_ARCHIVE_FAILED_CAMERA_WAIT_VIDEO_SEC | 150 | Wait after the last frame before resuming recording, seconds |
VIDEO_ARCHIVE_MAX_MEDIA_STORAGE_SIZE_GB | 200.0 | Permanent storage limit, GB |
VIDEO_ARCHIVE_MAX_TMP_MEDIA_STORAGE_SIZE_GB | 1.0 | Temporary storage limit, GB |
VIDEO_ARCHIVE_TMP_DIR | <absolute-path> | Temporary directory used by offline-post-inference |
VIDEO_ARCHIVE_FFMPEG_ENCODE_CODEC / VIDEO_ARCHIVE_FFMPEG_CROP_CODEC | h264_nvenc | Video encoding and trimming |
MINIO_BUCKET_VIDEO_ARCHIVE | video-archive | Archive bucket in MinIO |
Verify source access from the archive node, creation of fragments, temporary storage use, objects and actual size in MinIO, and playback of the correct camera/time fragment. Recording, preparing event clips and playback are separate checks.
DataLens URL and absolute data path
To show the expanded-statistics link, set DASHBOARD_DATALENS_METRICS_URL in ui-rest/ui-config/settings.json. Older builds may read it from config.json; use the file read by the installed release. An empty string disables the link.
{
"DASHBOARD_DATALENS_METRICS_URL": "https://<bi-host>/<dashboard-id>"
}The link does not create BI database access. Configure the analytics domain and data access separately. COMPOSE_DATA must be an absolute path, not ./compose-data. Check that Dashboard opens the intended report and that its site data and permissions are correct for the target user.
WebRTC and the client-reachable coturn address
In the documented configuration, WebRTC transport through NAT uses TCP and coturn. inf-coturn belongs to the inference domain. Set COTURN_HOST_IP in that domain’s .env to the coturn interface address reachable by clients; the media server must use the same address.
# inference domain .env
COTURN_HOST_IP=<client-reachable-IP>If BOX is behind NAT and Internet clients need access, place coturn on a node with a public IP reachable by them. Test from the operator’s network, and from both local and external networks when both are required. A working BOX web page does not prove that video transport works.
