Installation Guide

  • GPU Version requires NVidia CUDA backend, you need to install nvidia-docker first.
  • Run docker image

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 HOST_ADDR=$(ip route get | sed -n '/src/{s/.*src *\([^ ]*\).*/\1/p;q}')
  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.

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

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'

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

  • Visionaire Docker Snapshot started from versionv1.0.0no longer requires cloud username and password.
  • Start from installation will be done using the Postgre 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.
Select one of installer below:

Run FremisN Services (GPU Version) - Faster latency & higher QPS / throughput

Get a lower latency & higher QPS / throughput by using GPU version. However, GPU version requires you to set designated enrollment counts for every keyspace at a config file.
Please create a folder --which later we call it as <HOST FREMIS-N CONFIG FOLDER>--, then create a file named as config.yml inside <HOST FREMIS-N CONFIG FOLDER> with content as follows:
# ...
the command to run FRemis-N GPU
docker run --gpus device=0 -it -d -p 4005:4005 \
--name fremisn \
--network="nf-visionaire" \
--restart unless-stopped \
nodefluxio/fremis-n:v2.8.5-gpu \
httpserver \
--db-address localhost \
--db-port 5432 \
--db-name nfvisionaire \
--db-username postgres \
--db-password nfvisionaire123 \
--listen-port 4005 \
--storage postgres \
--config-path /config/config.yml \
  • If you want to change the enrollments count whereas FRemis-N GPU is already running, please shut FRemis-N down > change the enrollments count value in config.yml > start again
  • Single FRemis-N container/instance doesn't support multiple GPU yet. Hence, when you run with --gpus all while the computer utilizes more than 1 GPU, likely it will fail

Run FremisN Services (CPU Version)

docker run -it -d -p 4005:4005 \
--name fremisn \
--network="nf-visionaire" \
--restart unless-stopped \
nodefluxio/fremis-n:v2.8.5-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
For getting commands help:
docker run -it --gpus device=0 nodefluxio/fremis-n:v2.8.5-gpu httpserver --help
docker run -it nodefluxio/fremis-n:v2.8.5-cpu httpserver --help