Comment on page

Advanced Installation

Custom installation to fit your environment.
If you are a developer and need more customization. Make sure you already fulfill the requirement.
Docker Stream 4.54.0 is released. View Changelogs for more detail
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. Set Environment Variable

Run these commands in your Terminal.
export VISIONAIRE_CLOUD_ACCESS_KEY=<your visionaire cloud access key>
export VISIONAIRE_CLOUD_SECRET_KEY=<your visionaire cloud secret key>
export DEPLOYMENT_KEY_SNAPSHOT=<your snapshot deployment key>
export DEPLOYMENT_KEY_STREAM=<your stream deployment key>
  1. 1.
    YOUR_CLOUD_ACCESS_KEYis your access key from Visionaire Cloud.
  2. 2.
    YOUR_CLOUD_SECRET_KEYis your secret key from Visionaire Cloud.
  3. 3.
    NFFS-FR should be contained in your deployment key details
Step 1. Enter credentials.

2. 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
Step 2. Create network and volume for postgres.

3. Run Postgres Container

Create Postgre 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 \
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'
Step 3. Create database and table.

4. Run Visionaire Docker Snapshot (fremis-n:v2.12.18)

  • Visionaire Docker Snapshot started from versionv1.0.0no longer requires cloud username and password.
  • Start from installation will be done using Postgres database to ensure data persistence. Database migration is required once.
  • If you have enrollments using fremis-n version below 1.4.0 and upgrading to version 1.4.0, you need to re-enroll the enrollments.
Run FremisN Services
docker run -it -d -p 4005:4005 \
--name fremisn \
--network="nf-visionaire" \
--restart unless-stopped \
nodefluxio/fremis-n:v2.12.18-cpu \
httpserver \
--db-address postgresdb \
--db-port 5432 \
--db-name nfvisionaire \
--db-username postgres \
--db-password nfvisionaire123 \
--listen-port 4005 \
--storage postgres \
Print this help message and exit
Nodeflux access key
Nodeflux secret key
Deployment Key
Address to serve REST API
Address to serve REST API
Address port of monitoring
Maximum number of server's threads
Default similarity threshold
Maximum number of extraction workers
Storage System. The choice are: rocksdb and postgres
Database Path of RocksDB, if rocksdb selected
Database Address of Postgres server, if postgres selected
Database port of Postgres server, if postgres selected
Database name of Postgres server, if postgres selected
Database username of Postgres server, if postgres selected
Database password of Postgres server, if postgres selected
The starting number of partition set
The ending number of partition set
Turn on verbose logging
  • You can use GPU by using gpu tag. Example:nodefluxio/fremis-n:v1.0.0-gpu, then enabling --gpus-all in docker command and --config-path /app/config.yml in fremisn command
  • If you run with License Box, add this scriptdocker run --add-host "<license_box_ip>"
Step 4. Run Visionaire Docker Snapshot.

5. Run Visionaire Docker Stream (visionaire4:4.53.1)

Visionaire Docker Stream started from a version4.10.0no longer requires a cloud username and password. Add access-key and secret-key for authorization
export HOST_ADDR=$(ip route get | 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 \
--name=visionaire4 \
--network="nf-visionaire" \
--restart unless-stopped \
--gpus all \
nodefluxio/visionaire4:4.53.1 \
--enable-cors \
--deployment-key ${DEPLOYMENT_KEY_STREAM} \
--db-host postgresdb \
--db-port 5432 \
--db-name nfv4 \
--db-user postgres \
--db-password nfvisionaire123 \
--listen-port 4004 \
--fr-address ${HOST_ADDR}:4005 \
--fr-keyspace-name default
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 (=
The address of master (if running asslavemode 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 (=
Master service listening address
--listen-port arg (=4004)
Master service listening port
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
Enable embedding information on event as vector of float
  1. 1.
    YOUR_CLOUD_ACCESS_KEYis your access key from Visionaire Cloud.
  2. 2.
    YOUR_CLOUD_SECRET_KEYis your secret key from Visionaire Cloud.
  3. 3.
    DEPLOYMENT_KEYis theVisionaire Docker Streamdeployment key you get from Visionaire Cloud.
  4. 4.
    One Deployment Key only works for a single instance. You cannot run the same deployment key in more than one instance.
  5. 5.
    You can use the same secret key and access key fromDocker Snapshot
  6. 6.
    If you run with License Box, add this scriptdocker run --add-host "<license_box_ip>"
Step 5. Run Visionaire Docker Stream.

6. Run Docker Vanilla Dashboard (vanilla-dashboard:1.18.2)

  • Run docker image
Use "--metric-wlm CM / LEVEL" parameter if you use WLM in vanilla dashboard. Choose either CM or LEVEL to measure the water.
export HOST_ADDR=$(ip route get | 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.18.2 \
./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 \
--fremisn-keyspace default \
--fremisn-rto 10 \
--metric-wlm LEVEL \
--streamer-type MPEG1 \
--max-live-stream 25 \
--use-ssl false
Parameters for Vanilla.
--log , -l
logging level, useful for debugging session. available (warning, info, debug) (default: info)
--port , -p
app HTTP port (default: 80)
running mode, development or production (default: production)
--db-host, --dbhost
postgreSQL host address, ex: (default:
--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 * * *)
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.
Last step. Run Docker Vanilla Dashboard
Vanilla Dashboard after Visionaire successfully installed.