Onde #VERSION# é o número de versão específico que queremos baixar (por exemplo, 4.2.0).
2. Bancos de dados.
Antes da inicialização do serviço, o administrador deverá criar e configurar os bancos de dados pertinentes, bem como um usuário específico para o serviço. Esse usuário/senha deverá ser indicado na string de conexão. A tecnologia de BD que será utilizada pelo serviço será decidida na inicialização, com base no prefixo desta string de conexão.
2.1 MongoDB
Deverá ser criada a variável de ambiente DATABASE_CONNECT_STRING apontando para MongoDB.
O próprio serviço criará um banco de dados denominado db-backend, caso ela ainda não exista. Nela, hospedará duas coleções:
media para armazenar imagens.
patterns para armazenar padrões biométricos.
2.2 PostgreSQL
Da mesma forma, deve-se criar a variável de ambiente DATABASE_CONNECT_STRING apontando para PostgreSQL.
O caso do PostgreSQL difere ligeiramente do MongoDB. Um banco de dados com o nome db_backend deve ter sido criado previamente pelo administrador do sistema. O PostgreSQL dificulta a criação de bancos de dados a partir do próprio cliente. Um exemplo dos comandos prévios que o administrador deveria executar seria:
Dentro do banco de dados PostgreSQL, o serviço criará duas tabelas, assim como acontecia com MongoDB:
media para armazenar imagens.
patterns para armazenar padrões biométricos.
3. docker-compose
Uma forma de implantar o serviço é criar um arquivo docker-compose.yml com o seguinte conteúdo, alterando o valor das variáveis conforme necessário.
Primeiro, você deve criar um diretório de usuário com permissões de leitura e escrita, por exemplo ~/backend1n/config, e colocar estes dois arquivos:
O arquivo de licença do SelphID license.lic (obrigatório).
O arquivo de configuração do serviço config.json (opcional).
Nesse mesmo diretório, o serviço escreverá os arquivos de log.
Além disso, você deve fornecer a variável de ambiente DATABASE_CONNECT_STRING com a string de conexão com o banco de dados (por exemplo, mongodb://127.0.0.1:27017). Para fins de depuração, você pode desabilitar as operações de banco de dados fornecendo o valor no-db. Exemplo: DATABASE_CONNECT_STRING=no-db
Execute o seguinte comando, dentro da pasta onde se encontra o arquivo docker-compose.yml, para implantar o serviço:
4. Configuração adicional
Seguindo os passos da seção 2, o serviço fica pronto para iniciar. Se você precisar criar volumes adicionais para os diferentes tipos de recursos, pode seguir estas configurações adicionais.
4.1 Licença
Você pode montar um volume adicional e definir a variável de ambiente LICENSE_PATH, caso queira instalar a licença fora do diretório de configuração habitual.
LICENSE_PATH é uma pasta com o arquivo license.lic e permissões de leitura e escrita. Neste exemplo, ~/backend1n/license/license.lic.
4.2 Configuração do serviço
Você pode especificar outro local para o arquivo config.json com os parâmetros do serviço:
CONFIG_FILE é o caminho para o arquivo de configuração no volume adicional.
Se nenhum config.json, serão usados estes dados padrão:
Os mesmos parâmetros de JWT podem ser injetados por meio de variáveis de ambiente usando o prefixo FACEPHI_BACKEND1N_REST_. Por exemplo:
4.3 Caminho de depuração e de uso
Por fim, você pode especificar um volume/caminho específico com permissões de leitura e escrita para as informações de depuração do SDK e os dados de uso do SDK, por meio das variáveis de ambiente DEBUG_PATH e USAGE_PATH:
4.4 Configuração de rede
Para poder se conectar aos nossos servidores de licenças, você deve adicionar às regras do seu firewall as seguintes regras:
IP
Porta
Tipo
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
Em seguida, adicione os seguintes DNS à sua lista de permissões:
{
"port": 6969, # Número da porta do serviço.
"number_of_threads": 0, # O número de threads de E/S, 0 = o número de núcleos da CPU.
"connection_timeout": 0, # O tempo de vida da conexão sem leitura nem escrita.
"keep_alive_request_number": 0, # Establece el número máximo de solicitudes que se pueden atender a través de una conexión keep-alive.
# Una vez alcanzado el número máximo de solicitudes, la conexión se cierra.
# El valor por defecto de 0 significa sin límite.
"client_max_body_size": 100, # O tamanho máximo do corpo permitido nas solicitações, em Mb.
# El valor por defecto es 100 Mb.
"logger_path" : "./logs", # Define o caminho onde os arquivos de log são armazenados.
"logger_level" : "info", # Os valores possíveis são [trace|debug|info|warning|error|critical|off].
"logger_rotation" : "daily", # Os valores possíveis são [hourly|daily].
"logger_max_files" : 0, # O valor padrão de 0 significa sem limite.
"auth_enabled": false, # Habilita a autenticação JWT para os endpoints protegidos.
"auth_jwt_secret": "", # Segredo compartilhado usado para validar assinaturas JWT HS256.
"auth_accept_authorization_header": true, # Aceita Authorization: Bearer <jwt>.
"auth_accept_api_key_header": true, # Aceita o cabeçalho de API Key com o token JWT.
"auth_api_key_header_name": "x-api-key" # Nome do cabeçalho de API Key quando está habilitada.
}