Skip to content

Voice Service Installation Manual

1. Installation and deployment

The service is dockerized, and there is a docker image in a Facephi repository.

docker login facephicorp.jfrog.io
user: username
pass: token
docker pull facephicorp.jfrog.io/docker-pro-fphi/facephi-voice-service:#VERSION#

Where #VERSION# is the concrete version number that we want to download (e.g. 3.0.0).

2. docker-compose

One way to deploy the service is to create a docker-compose.yml file with the following content:

version: '3.7'

services:
  voice-service:
    ports:
      - "6982:6982"
    volumes:
      - ~/facephi_voice_config:/service/config
      - ~/facephi_voice_config:/service/logs
    image: facephicorp.jfrog.io/docker-pro-fphi/facephi-voice-service:$VERSION
    container_name: facephi-voice-service

Note the volumes that are mounted in the container. These volumes are used to store the configuration files of the service and license and write the logger output.

Run the following command, inside the folder where the docker-compose.yml file is located, to deploy the service:

    docker-compose up

3. Configuration

3.1 License and resources configuration

To use this service, you need to have a valid configuration file.

The configurtation file could contain the following information:

CONFIG_DIR=             # Path to configuration folder where the resources are located
LICENSE_TYPE=           # License type, can be MACHINE, SHARED or LOCAL
LICENSE_BEHAVIOUR=      # License behaviour, can be ONLINE or OFFLINE
LICENSE_KEY=            # License key
LICENSE_ID=             # Product ID
LICENSE_DATA=           # Product data
LICENSE_URL=            # License server URL. Only needed if LICENSE_TYPE is LOCAL
LICENSE_PATH_OFFLINE=   # Path to a local file with data for offline activation. Only needed if LICENSE_TYPE is MACHINE and LICENSE_BEHAVIOUR is OFFLINE

The configuration and license file can be passed as a parameter to the service. By default the service will look for a file named /service/config/config.cfg. In the case of the docker container, the configuration file could be located in a volume mounted in /service/config.

3.2 Service configuration

The config file could contain the following information:

{
    "port": 6982,                   # Service port number.
    "number_of_threads": 1,         # The number of IO threads, 1 by default, if the value is set to 0, the number of threads is the number of CPU cores.
    "connection_timeout": 60,       # The lifetime of the connection without read or write.
    "keep_alive_request_number": 0, # Set the maximum number of requests that can be served through one keep-alive connection.
                                    # After the maximum number of requests are made, the connection is closed.
                                    # The default value of 0 means no limit.
    "client_max_body_size": 50,     # The maximum size of the body allowed in the requests in Mb.
                                    # The default value of 100 Mb.
    "logger_path" : "/service",     # The path to the log file.
    "logger_level" : "trace",       # Set the log level. [trace|debug|info|warn|error|fatal|off]
    "logger_rotation" : "daily",    # Set the log rotation. [hourly|daily]
    "logger_max_files" : 31         # Set the maximum number of log files.
}

The config file can be passed as a parameter to the service. By default the service will look for a file named /service/config/config.json. In the case of the docker container, the configuration file could be located in a volume mounted in /service/config.

3.3 Network configuration

In order to be able to connect with our License servers you must add to your firewall's rules the following rules:

IP Port Type
52.223.22.71 443 TCP/IP
35.71.188.31 443 TCP/IP
75.2.113.112 443 TCP/IP
99.83.149.57 443 TCP/IP

Then add the following DNS to your whitelist:

https://api.cryptlex.com:443
https://api.eu.cryptlex.com:443