Advanced Installation
This guideline is intended for custom installation to fit your environment. For the quick one, please see the previous section, Simple Installation.
If you are a developer and need more customization. Make sure you already fulfill the requirement.
Please make sure to run all commands in the same terminal. If you accidentally closed the terminal earlier, be sure to re-run variables export commands and continue with the installation.
1. Create User-Defined Docker Network & Volumes
Create a user-defined bridge network:
docker network create nf-visionaire
Create docker volumes for postgresdb:
docker volume create postgres-data

2. Run Postgres Container
Create Potgres Container
docker run -it -d -p 5432:5432 \
--name=postgresdb \
--network="nf-visionaire" \
--restart unless-stopped \
-e POSTGRES_PASSWORD=nfvisionaire123 \
-e POSTGRES_DB=nfvisionaire \
-e POSTGRES_USER=postgres \
-e PGDATA=/var/lib/postgresql/data/pgdata \
-v postgres-data:/var/lib/postgresql/data \
postgres:12-alpine
Init new additional DB
docker run -it --rm \
--network="nf-visionaire" \
-e PGPASSWORD=nfvisionaire123 \
postgres:12-alpine \
sh -c 'psql -h postgresdb -U postgres -c "CREATE DATABASE nfv4;" || true'

3. Run Visionaire Stream
From version 4.56.1 we remove the argument to input the Deployment Key, Secret Key, and Access Key. You can input from our dashboard (click profile > license).
If you install version below 4.56.1 make sure to use --access-key,--secret-key
and --deployment-key
export HOST_ADDR=$(ip route get 8.8.8.8 | sed -n '/src/{s/.*src *\([^ ]*\).*/\1/p;q}')
docker run -it -d -p 4004:4004 -p 9090:9090 -p 3000:3000 -p 3030:3030 \
--shm-size=16gb \
-v $(pwd)/visionaire4.json.log:/opt/visionaire4.json.log \
--log-driver json-file \
--log-opt max-size=100m \
--log-opt max-file=1 \
--name=visionaire4 \
--network="nf-visionaire" \
--restart unless-stopped \
--gpus all \
nodefluxio/visionaire4:4.57.18 \
--enable-cors \
--db-host postgresdb \
--db-port 5432 \
--db-name nfv4 \
--db-user postgres \
--db-password nfvisionaire123 \
--fr-address ${HOST_ADDR}:4005 \
--fr-keyspace-name default
For Intel Version
docker run -it -d -p 4004:4004 -p 9090:9090 -p 3000:3000 -p 3030:3030 \
--shm-size=16gb \
-v $(pwd)/visionaire4.json.log:/opt/visionaire4.json.log \
--log-driver json-file \
--log-opt max-size=100m \
--log-opt max-file=1 \
--name=visionaire4 \
--network="nf-visionaire" \
--restart unless-stopped \
--device=/dev/dri/renderD128 \
--device=/dev/accel/accel0 \
nodefluxio/visionaire4:4.57.18 \
--enable-cors \
--db-host postgresdb \
--db-port 5432 \
--db-name nfv4 \
--db-user postgres \
--db-password nfvisionaire123 \
--fr-address ${HOST_ADDR}:4005 \
--fr-keyspace-name default
Options
Description
--help
Produce help message
--log-severity arg (=info)
Set default log severity (trace, debug, info, notice, warning)
--node-num arg (=0)
Setting node number for clustering (default is 0 or master)
--master-address arg (=127.0.0.1)
The address of master (if running asslave
mode or node_num>0
)
--master-port arg (=4004)
The listening address of master (default is 4004)
--access-key arg (=default)
License access key
--secret-key arg (=secret)
License secret key
--deployment-key arg
Deployment key
--refresh-timeout arg (=3)
Refresh timeout
--db-host arg (=host.docker.internal)
Main database host address
--db-port arg (=5432)
Main database host port number (default=5432
)
--db-user arg (=postgres)
Main database username
--db-password arg (=test)
Main database username
-db-name arg (=postgres)
Main database name
--listen-address arg (=0.0.0.0)
Master service listening address
--listen-port arg (=4004)
Master service listening port
--enable-cors
Enable CORS-Origin
--mode arg (=master)
Running mode (master
, migration
)
--service-hash arg (=0)
(internally used)
--service-gpu-id arg (=-1)
(internally used)
--credential-bundle arg (=./data/credential_stream.csv)
Credential bundle as csv file (access_key
, secret_key
, deployment_key
)
--fr-address arg (=host.docker.internal:4005)
Location of Docker Snapshot Face Recognition server, default: host.docker.internal:4005
--fr-keyspace-name arg (=some-keyspace)
Keyspace of Docker Snapshot server, default: some-keyspace
--fr-min-face-size arg (=10)
Face size, default: 10
--fr-embedding-event-enable
Enable embedding information on event as vector of float
--FR_TIMEOUT_DUMP
Control interval between same face dumping. Default: 2500ms
--FR_BLUR_FILTER_THRESHOLD
Minimum threshold to filter blurry face, improving image quality of FR face image dumping. Default: 4, Range Value: 0 - 10, 0 means blurry face image dump will be abundant and 10 means only dump good face image
--V4_STREAM_OPEN_TIMEOUT
Control stream open timeout. Default: 8s
--V4_STREAM_READ_TIMEOUT
Control stream read timeout. Default: 5s
--VISIONAIRE4_RUN_MODE
(internally used)

4. Run VisionAIre Dashboard
Run docker image
docker run -it --rm \
--network="nf-visionaire" \
-e PGPASSWORD=nfvisionaire123 \
postgres:12-alpine \
sh -c 'psql -h localhost -U postgres -c "CREATE DATABASE vdashboard;" || true'
docker run -d -p 8005:4003 --name visionaire-dashboard
--restart unless-stopped
-e DASHBOARD_API_HOST=192.168.103.208:8005
-e VISIONAIRE_HOST=192.168.103.208:4004
-e FREMISN_URL=http://192.168.103.208:4005/v1
-e DB_HOST=192.168.103.208:5432
-e DB_NAME=vdashboard
-e DB_USERNAME=postgres
-e DB_PASSWORD=nfvisionaire123
registry.gitlab.com/nodefluxio/visionaire-dashboard:2.7.0
docker run -it --rm \
--network="nf-visionaire" \
-e PGPASSWORD=nfvisionaire123 \
postgres:12-alpine \
sh -c 'psql -h localhost -U postgres -c "CREATE DATABASE nfvisionaire;" || true'
export HOST_ADDR=$(ip route get 8.8.8.8 | sed -n '/src/{s/.*src *\([^ ]*\).*/\1/p;q}')
docker run -it -d -p 8008:8008 \
--name vanilla-dashboard \
--network="nf-visionaire" \
--restart unless-stopped \
nodefluxio/vanilla-dashboard:1.21.0 \
./vanend \
--db-host postgresdb:5432 \
--db-name nfvisionaire \
--db-user postgres \
--db-password nfvisionaire123 \
--visionaire-host ${HOST_ADDR}:4004 \
--fremisn-url http://${HOST_ADDR}:4005/v1/face \
--website-host ${HOST_ADDR}:8008 \
--port 8008 \
--metric-wlm LEVEL
Parameters for Vanilla.
Options
Description
--log , -l
logging level, useful for debugging session. available (warning, info, debug) (default: info
)
--port , -p
app HTTP port (default: 80
)
--node-env
running mode, development or production (default: production
)
--db-host, --dbhost
postgreSQL host address, ex: 127.0.0.1:5432 (default: 127.0.0.1:5432
)
--db-user, --dbusr
postgreSQL database username, ex: postgres (default: postgres
)
--db-password, --dbpass
postgreSQL database password, ex: password (default: test
)
--db-name, --dbnm
postgreSQL database name, ex: postgres (default: postgres
)
--fremisn-url, --frnurl
fremisn service url (default: http://localhost:4005/v1/face
)
--fremisn-keyspace, --frnks
fremisn user keyspace, ex: some-keyspace (default: some-keyspace
)
--visionaire-host, --vshst
Visionaire Docker Stream host, (default: localhost:4004
)
--cron-partition, --crp
database cronjob partition (default: 0 0 * * *
)
--website-host
front end website host (default: localhost
)
--help, -h
show help
--version, -v
print the version
--fremisn-rto, --frnrto
fremisn max request timeout in second (default: 10
)
At this point, you should have 4 containers running. You can check
your_ip:8008
to see the Vanilla Dashboard.User: [email protected]
Pass: adminadmin


If you use Face Recognition analytics in your deployment make sure to install VisionAIre Snapshot, if you don't then your installation is done.
Run VisionAIre Snapshot
docker run -it -d -p 4005:4005 \
--name fremisn \
--network="nf-visionaire" \
--restart unless-stopped \
nodefluxio/fremis-n:v2.12.20-cpu \
httpserver \
--access-key ${VISIONAIRE_CLOUD_ACCESS_KEY} \
--secret-key ${VISIONAIRE_CLOUD_SECRET_KEY} \
--dk ${DEPLOYMENT_KEY_SNAPSHOT} \
--db-address postgresdb \
--db-port 5432 \
--db-name nfvisionaire \
--db-username postgres \
--db-password nfvisionaire123 \
--listen-port 4005 \
--storage postgres \
--verbose
-h,--help
Print this help message and exit
--access-key
Nodeflux access key
--secret-key
Nodeflux secret key
--dk
Deployment Key
--listen-addr
Address to serve REST API
-p,--listen-port
Address to serve REST API
--listen-port-monitoring
Address port of monitoring
--server-threads
Maximum number of server's threads
--similarity-threshold
Default similarity threshold
--max-workers
Maximum number of extraction workers
--storage
Storage System. The choice are: rocksdb
and postgres
--data-path
Database Path of RocksDB, if rocksdb
selected
--db-address
Database Address of Postgres server, if postgres
selected
--db-port
Database port of Postgres server, if postgres
selected
--db-name
Database name of Postgres server, if postgres
selected
--db-username
Database username of Postgres server, if postgres
selected
--db-password
Database password of Postgres server, if postgres
selected
--partition-start
The starting number of partition set
--partition-end
The ending number of partition set
-v,--verbose
Turn on verbose logging

Last updated
Was this helpful?