Comment on page
Advanced Installation
Custom installation to fit your environment.
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.
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>
Your
DEPLOYMENT_KEY_SNAPSHOT
should be different fromDEPLOYMENT_KEY_STREAM
- 1.
YOUR_CLOUD_ACCESS_KEY
is your access key from Visionaire Cloud. - 2.
YOUR_CLOUD_SECRET_KEY
is your secret key from Visionaire Cloud. - 3.
NFFS-FR
should be contained in your deployment key details

Step 1. Enter credentials.
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.
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 \
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'

Step 3. Create database and table.
- Visionaire Docker Snapshot started from version
v1.0.0
no 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 \
--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
Option | Description |
---|---|
-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 |
- 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 script
docker run --add-host "api.cloud.nodeflux.io:<license_box_ip>"

Step 4. Run Visionaire Docker Snapshot.
Visionaire Docker Stream started from a version
4.10.0
no longer requires a cloud username and password. Add access
-key
and secret-key
for authorizationexport 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 \
--name=visionaire4 \
--network="nf-visionaire" \
--restart unless-stopped \
--gpus all \
nodefluxio/visionaire4:4.53.1 \
--enable-cors \
--access-key ${VISIONAIRE_CLOUD_ACCESS_KEY} \
--secret-key ${VISIONAIRE_CLOUD_SECRET_KEY} \
--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
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 as slave 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 |
- 1.
YOUR_CLOUD_ACCESS_KEY
is your access key from Visionaire Cloud. - 2.
YOUR_CLOUD_SECRET_KEY
is your secret key from Visionaire Cloud. - 3.
DEPLOYMENT_KEY
is theVisionaire Docker Stream
deployment key you get from Visionaire Cloud. - 4.One
Deployment Key
only works for a single instance. You cannot run the same deployment key in more than one instance. - 5.You can use the same secret key and access key from
Docker Snapshot
- 6.If you run with License Box, add this script
docker run --add-host "api.cloud.nodeflux.io:<license_box_ip>"
Your
DEPLOYMENT_KEY_SNAPSHOT
should be different fromDEPLOYMENT_KEY_STREAM

Step 5. Run Visionaire Docker Stream.
- 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 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.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.
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

Last step. Run Docker Vanilla Dashboard

Vanilla Dashboard after Visionaire successfully installed.
Last modified 1mo ago