.. _installer: Deploy from Console Installer --------------------------------------------------------------- To deploy FindFace, use a developer-friendly console installer. .. tip:: Before deployment, be sure to consult the :ref:`system requirements `. .. important:: The FindFace host must have a static IP address in order to be running successfully. To make the IP address static, open the ``/etc/network/interfaces`` file and modify the current primary network interface entry as shown in the case study below. Be sure to substitute the suggested addresses with the actual ones, subject to your network specification. .. code:: sudo vi /etc/network/interfaces iface eth0 inet static address 192.168.112.144 netmask 255.255.255.0 gateway 192.168.112.254 dns-nameservers 192.168.112.254 Restart networking. .. code:: sudo service networking restart Be sure to edit the ``etc/network/interfaces`` file with extreme care. Please refer to the Ubuntu `guide on networking `_ before proceeding. To deploy FindFace from the console installer, do the following: #. Download the installer file ``findface-*.run``. #. Put the ``.run`` file into some directory on the designated host (for example, ``/home/username``). #. From this directory, make the ``.run`` file executable. .. note:: Be sure to specify the actual file name instead of ``findface-*``. .. code:: chmod +x findface-*.run #. Execute the ``.run`` file. .. code:: sudo ./findface-*.run The installer will ask you a few questions and perform several automated checks to ensure that the host meets the system requirements. After filling out each prompt, press :kbd:`Enter`. The questions and answers are the following: #. Q: ``Which product should be installed?`` A: ``1`` .. code:: Which product should be installed? 1. [security] FindFace Multi 2. [server ] FindFace Server 3. [video-worker] FindFace Video Worker 4. [nvidia-drivers] NVIDIA CUDA drivers (installed automatically when you install gpu-variant of the products above) (default: security) product> 1 #. Q: ``Please choose installation type:`` A: Choose one of the following variants, subject to your architecture outline and deployment plan: * ``1``: install FindFace standalone. Being the simplest, this installation type is excellent to start off with FindFace. The rest of the section covers the situation when you choose this installation type. * ``2``: install FindFace and configure it to interact with additional remote ``findface-video-worker`` instances. See :ref:`multi-host-installation` for the detailed description. .. tip:: To install only ``findface-video-worker`` on a host, refer to :ref:`video-worker-installer`. * ``3``: install the apt repository for the step-by-step deployment. See :ref:`step-by-step` for the detailed description. * ``4``: fully customized installation. See :ref:`custom-installation` for the detailed description. .. note:: If you select the installation type #3 or #4, keep in mind to install necessary neural network models along with the ``findface-extraction-api`` component. .. code:: Please choose installation type: - 1 [stand-alone ] Single Server - 2 [multi-worker] Single Server, Multiple video workers - 3 [repo ] Don't install anything, just set up the APT repository - 4 [custom ] Fully customized installation (default: stand-alone) type> 1 #. Q: ``Do you want to install Video Recorder?(y/n)`` A: ``n`` .. code:: Do you want to install Video Recorder?(y/n) install_video_recorder> n #. Q: ``Found X interface(s). Which one should we announce as our external address?`` A: Choose the interface that you are going to use as the instance IP address. .. code:: Found 1 interface(s). Which one should we announce as our external address? - 1 [lo ] 127.0.0.1 - 2 [ens3 ] 192.168.112.254 (default: 192.168.112.254) ext_ip.advertised> 2 #. Q: ``Which variant of Video Worker should be installed?`` A: Specify the ``findface-video-worker`` package type, CPU or GPU. .. code:: Which variant of Video Worker should be installed? - 1 [cpu] CPU-based implementation, slower but doesn't require GPU - 2 [gpu] CUDA-based implementation of video detector, requires NVIDIA GPU (default: cpu) findface-video-worker.variant> 1 #. Q: ``Which variant of Extraction API should be installed?`` A: Specify the ``findface-extraction-api`` package type, CPU or GPU. .. code:: Which variant of Extraction API should be installed? - 1 [cpu] CPU-only implementation, slower but doesn't require GPU - 2 [gpu] CUDA-based implementation, faster, requires NVIDIA GPU (supports both CPU and GPU models) (default: cpu) findface-extraction-api.variant> 1 #. Q: ``Do you want to configure detectors and features right now?(y/n)`` A: ``y`` .. code:: Do you want to configure detectors and features right now?(y/n) configure> y #. Q: ``Do you want to configure detectors and features right now?(y/n)`` A: ``y`` .. code:: Do you want to configure detectors and features right now?(y/n) configure> y #. Q: ``Please select detectors to install:`` A: The face detector is selected by default. Enter ``done`` to proceed. .. code:: Please select detectors to install: - 1 [v] Face - 2 [ ] Body - 3 [ ] Car Enter keyword to select matching choices or -keyword to clear selection. Enter "done" to save your selection and proceed to another step. detectors> - 1 [v] Face - 2 [ ] Body - 3 [ ] Car detectors> done #. Q: ``Please select face features to install:`` A: By default, all face attributes are subject to installation. We recommend leaving it as is by answering ``done``. If some attribute is not necessary, you can enter the keyword (number) related to it. For example, enter ``7`` to exclude the head pose recognition. Then enter ``done``. .. code:: Please select face features to install: - 1 [v] Age - 2 [v] Gender - 3 [v] Emotions - 4 [v] Beard - 5 [v] Glasses - 6 [v] Medicine masks - 7 [v] Headpose Enter keyword to select matching choices or -keyword to clear selection. Enter "done" to save your selection and proceed to another step. face_features> done The FindFace components will be automatically installed, configured and/or started in the following configuration: +--------------------------------------+-------------------------------------------------------------------------------------------------------+ | Service | Configuration | +======================================+=======================================================================================================+ | postgresql-10 | Installed and started. | +--------------------------------------+-------------------------------------------------------------------------------------------------------+ | nats-server | Installed and started. | +--------------------------------------+-------------------------------------------------------------------------------------------------------+ | etcd | Installed and started. | +--------------------------------------+-------------------------------------------------------------------------------------------------------+ | pgbouncer | Installed and started. | +--------------------------------------+-------------------------------------------------------------------------------------------------------+ | memcached | Installed and started. | +--------------------------------------+-------------------------------------------------------------------------------------------------------+ | nginx | Installed and started. | +--------------------------------------+-------------------------------------------------------------------------------------------------------+ | django | Installed and started as a web framework for the FindFace web interface. | +--------------------------------------+-------------------------------------------------------------------------------------------------------+ | findface-ntls | Installed and started. | +--------------------------------------+-------------------------------------------------------------------------------------------------------+ | findface-tarantool-server | Installed and started. The number of instances (shards) is calculated using the formula: | | | ``N = min(max(min(mem_mb // 2000, cpu_cores), 1), 16 * cpu_cores)``. I.e., it is equal to the RAM | | | size in MB divided by 2000, or the number of CPU physical cores (but at least one shard), | | | or the number of CPU physical cores multiplied by 16, if the first obtained value is greater. | +--------------------------------------+-------------------------------------------------------------------------------------------------------+ | findface-extraction-api | Installed and started (CPU/GPU-acceleration). | +--------------------------------------+-------------------------------------------------------------------------------------------------------+ | findface-sf-api | Installed and started. | +--------------------------------------+-------------------------------------------------------------------------------------------------------+ | findface-upload | Installed. | +--------------------------------------+-------------------------------------------------------------------------------------------------------+ | findface-video-manager | Installed and started. | +--------------------------------------+-------------------------------------------------------------------------------------------------------+ | findface-video-worker-* | Installed and started (CPU/GPU-acceleration). | +--------------------------------------+-------------------------------------------------------------------------------------------------------+ | findface-data-* | Neural network models for object and object attribute recognition. Installed. | +--------------------------------------+-------------------------------------------------------------------------------------------------------+ | findface-security | Installed and started. | +--------------------------------------+-------------------------------------------------------------------------------------------------------+ | findface-security-onvif | Installed and started. | +--------------------------------------+-------------------------------------------------------------------------------------------------------+ | findface-counter | Installed and started. | +--------------------------------------+-------------------------------------------------------------------------------------------------------+ | findface-liveness-api | Installed and started. | +--------------------------------------+-------------------------------------------------------------------------------------------------------+ | jq | Installed. Used to pretty-print API responses from FindFace. | +--------------------------------------+-------------------------------------------------------------------------------------------------------+ | python3-ntech.* | Internal and auxiliary services. Installed and started. | +--------------------------------------+-------------------------------------------------------------------------------------------------------+ After the installation is complete, the following output is shown on the console: .. tip:: Be sure to save this data: you will need it later. .. code:: ############################################################################# # Installation is complete # ############################################################################# - upload your license to http://192.168.112.254/#/license/ - user interface: http://192.168.112.254/ superuser: admin password: admin documentation: http://192.168.112.254/doc/ #. Specify your time zone in the ``/etc/findface-security/config.py`` configuration file, either in the ``Region/Country/City`` or ``Etc/GMT+H`` format. The time zone determines the time in reports, logs, and names of such FindFace artifacts as event full frames and thumbnails, etc. .. tip:: The best way to do so is to copy/paste your time zone from `this table `_ on Wikipedia. .. code:: sudo vi /etc/findface-security/config.py # time zone TIME_ZONE = 'America/Argentina/Buenos_Aires' #. Restart the ``findface-security`` service. .. code:: sudo systemctl restart findface-security.service #. Upload the FindFace license file via the main web interface ``http:///#/license``. To access the web interface, use the provided ``superuser`` credentials. .. important:: Do not disclose the ``superuser`` (Super Administrator) credentials to others. To administer the system, create a new user with administrator privileges. Whatever the role, the Super Administrator cannot be deprived of its rights. #. The answers to the installer questions were saved to a file ``/tmp/.json``. You can edit this file and use it to install FindFace on other hosts without having to answer the questions again. To do so, execute: .. code:: sudo ./.run -f /tmp/.json .. tip:: You can find an example of the installation file in :ref:`installation-file`. .. important:: To preserve the FindFace compatibility with the installation environment, we highly recommend you to disable the Ubuntu automatic update. In this case, you will be able to update your OS manually, fully controlling which packages to update. To disable the Ubuntu automatic update, execute the following commands: .. code:: sudo apt-get remove unattended-upgrades sudo systemctl stop apt-daily.timer sudo systemctl disable apt-daily.timer sudo systemctl disable apt-daily.service sudo systemctl daemon-reload .. important:: The FindFace services log a large amount of data, which can eventually lead to disc overload. To prevent this from happening, we advise you to disable ``rsyslog`` due to its suboptimal log rotation scheme and use the appropriately configured ``systemd-journal`` service instead. See :ref:`logs` for the step-by-step instructions.