Update FindFace Security to 4.1.x

Warning

FindFace Security 4.1.x utilizes a new version of Tarantool. The biometric database from previous FindFace Security versions (4.0 and earlier) is NOT COMPATIBLE with FindFace Security 4.1.x. Be sure to use the Backup/Restore functionality to update the product to 4.1.x (see the full algorithm below).

To update FindFace Security from any previous version to 4.1.x, do the following:

  1. Open the findface-security configuration file. Save the values of the following parameters for later use: EXTERNAL_ADDRESS, SECRET_KEY, VIDEO_DETECTOR_TOKEN, ROUTER_URL.

    sudo vi /etc/ffsecurity/config.py
    
    EXTERNAL_ADDRESS = "http://172.20.77.58"
    
    ...
    # use pwgen -sncy 50 1|tr "'" "." to generate your own unique key
    SECRET_KEY = 'c8b533847bbf7142102de1349d33a1f6'
    
    FFSECURITY = {
       'VIDEO_DETECTOR_TOKEN': '381b0f4a20495227d04185ab02f5085f',
       ...
       'ROUTER_URL': 'http://172.20.77.58',
       ...
    }
    
  2. Stop the findface-security service.

    sudo systemctl stop findface-security*
    
  3. Create a backup of the Tarantool-based biometric database in any directory of your choice, for example, /tmp/dump.

    Tip

    See Backup and Restore Data Storages for details.

    mkdir -p /tmp/dump
    cd /tmp/dump
    sudo findface-storage-api-dump -config /etc/findface-sf-api.ini
    
  4. Install the apt repository with the new FindFace Security, using the console installer as described in this section.

  5. Install the services from the repository, following your architecture outline.

    CPU-version:

    sudo apt update
    sudo apt install ffsecurity ffsecurity-ui findface-extraction-api findface-ntls findface-sf-api findface-tarantool-server findface-upload findface-video-manager findface-video-worker-cpu
    

    GPU-version:

    sudo apt update
    sudo apt install ffsecurity ffsecurity-ui findface-extraction-api-gpu findface-ntls findface-sf-api findface-tarantool-server findface-upload findface-video-manager findface-video-worker-gpu findface-gpudetector-data
    
  6. Open the findface-security configuration file and paste the saved EXTERNAL_ADDRESS, SECRET_KEY, VIDEO_DETECTOR_TOKEN, and ROUTER_URL into it.

    sudo vi /etc/ffsecurity/config.py
    
  7. Modify the Tarantool database structure by applying the tnt_schema.lua file from the new version.

    sudo findface-security make_tnt_schema | sudo tee /etc/ffsecurity/tnt_schema.lua
    
  8. Stop the findface-tarantool-server shards. Remove the Tarantool database (default database or shards).

    sudo systemctl stop 'tarantool@*'
    
    sudo rm -R /opt/ntech/var/lib/tarantool/shard-00*/index/*
    sudo rm -R /opt/ntech/var/lib/tarantool/shard-00*/snapshots/*
    sudo rm -R /opt/ntech/var/lib/tarantool/shard-00*/xlogs/*
    
  9. Restart the findface-tarantool-server shards.

    TNT=$(ls /etc/tarantool/instances.enabled/ | wc -l)
    for i in $(seq 1 $TNT); do sudo systemctl start tarantool@shard-00$i.service ; done
    
  10. Restore the Tarantool database from the backup.

    cd /tmp/dump
    
    for x in *.json; do sudo findface-storage-api-restore -config /etc/findface-sf-api.ini < "$x"; done
    
  11. Migrate the main database architecture from FindFace Security to PostgreSQL, re-create user groups with predefined rights and the first user with administrator rights.

    sudo findface-security migrate
    sudo findface-security create_groups
    sudo findface-security create_default_user
    
  12. Restart the services.

    sudo systemctl restart findface-security.service
    sudo systemctl restart findface-extraction-api findface-video-worker* findface-video-manager findface-sf-api