Page cover image

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.

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

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'
Step 2. Create database and table.

3. Run Visionaire Stream

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 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 (=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)

Step 3. Run Visionaire Docker Stream.

4. Run VisionAIre Dashboard

  • Run docker image

This command will install the new dashboard. If you prefer to use the old version of our dashboard, please use the 2nd installation command.

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

Below this is for old dashboard installation guide

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.

Last step. Run Docker Vanilla Dashboard
Vanilla Dashboard after VisionAIre successfully installed.

Run VisionAIre Snapshot

If you install version below 2.12.2 make sure to use --access-key,--secret-key and --dk

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
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 scriptdocker run --add-host "api.cloud.nodeflux.io:<license_box_ip>"

Step 3. Run Visionaire Docker Snapshot.

Last updated

Was this helpful?