Operação / Instalação

Instalação Customer Hosted

Prepare um ambiente Ubuntu 24.04 amd64 com systemd, conectividade HTTPS e PostgreSQL 16. Separe os serviços internos da exposição pública por proxy.

Pré-requisitos

  • Ubuntu Server 24.04 amd64 nativo ou VM, com systemd como PID 1.
  • SSH administrativo, saída HTTPS e repositórios apt acessíveis.
  • PostgreSQL 16 e espaço de disco suficiente para modelos, logs e backups.
  • Domínio HTTPS com certificado confiável e roteamento exclusivo da API e do Console.
  • Contrato e release assinada autorizados pelo Portal para a instalação em questão.
Distribuição controlada

O pacote 0.1.7 foi aplicado ao piloto Rododata, mas não está disponível como download comercial geral no Portal. Não use os arquivos desse piloto para criar outra instalação.

Escolher o perfil de instalação

Servidor dedicado

O instalador pode preparar o servidor web e HTTPS em uma máquina sem outros serviços disputando portas públicas.

Servidor compartilhado

Use quando Nginx, Apache, Docker ou Nginx Proxy Manager já utilizam portas 80/443. Configure antecipadamente proxy e TLS; o instalador não deve alterar serviços existentes.

Restrinja API e Console a interfaces privadas de loopback e encaminhe somente rotas autorizadas ao domínio HTTPS.

Exemplo: Nginx Proxy Manager + Apache

Esta receita foi usada como referência para um perfil compartilhado. Não copie os endereços sem conferir a rede Docker e as portas reais. Os serviços internos continuam restritos a loopback. O Apache recebe o tráfego HTTP do NPM e encaminha as rotas corretas.

Ambiente específico

O gateway 172.17.0.1 é somente um exemplo. Confirme o gateway de seu container, o domínio HTTPS, a disponibilidade de portas e a configuração existente. Nunca reinicie serviços de terceiros para liberar essas portas.

Shell · inspeção
docker inspect nginx-proxy-manager \
  --format '{{range .NetworkSettings.Networks}}{{.Gateway}}{{end}}'
sudo apache2ctl -S
sudo ss -ltnp '( sport = :8980 or sport = :8981 or sport = :8982 )'
sudo a2enmod proxy proxy_http headers
sudo install -d -m 0755 -o root -g root /var/www/ifacematch

Crie um VirtualHost isolado, adaptando IP, domínio e portas após inspeção. O diretório do SDK deve estar vazio antes da instalação e é preenchido pela release autorizada.

Apache · /etc/apache2/sites-available/ifacematch-internal.conf
Listen 172.17.0.1:8980

<VirtualHost 172.17.0.1:8980>
    ServerName face.example.com
    DocumentRoot /var/www/ifacematch

    ProxyRequests Off
    ProxyPreserveHost On
    RequestHeader set X-Forwarded-Proto "https"

    <Directory /var/www/ifacematch>
        Options -Indexes
        AllowOverride None
        Require all granted
    </Directory>

    ProxyPass "/verify.html" "!"
    ProxyPass "/styles.css" "!"
    ProxyPass "/dist/" "!"
    ProxyPass "/assets/" "!"
    ProxyPass "/models/" "!"

    ProxyPass "/v1/" "http://127.0.0.1:8981/v1/"
    ProxyPassReverse "/v1/" "http://127.0.0.1:8981/v1/"

    ProxyPass "/" "http://127.0.0.1:8982/"
    ProxyPassReverse "/" "http://127.0.0.1:8982/"
</VirtualHost>
Shell · validação
sudo a2ensite ifacematch-internal.conf
sudo apache2ctl configtest
sudo systemctl reload apache2

No NPM, use Scheme http, Forward Hostname como o gateway correto, Forward Port 8980, SSL válido com Force SSL e domínio face.example.com. Não exponha as portas internas 8981 e 8982 à internet. O proxy preserva o cabeçalho Host, exigido pelo Console em produção.

Diagnóstico antes de instalar

Use apenas o instalador obtido no Portal quando a distribuição da versão estiver efetivamente autorizada. O comando abaixo demonstra o modo diagnóstico do instalador oficial; não executa a instalação.

Shell · diagnóstico somente leitura
curl --fail --silent --show-error \
  --proto '=https' \
  --output ifacematch-install.sh \
  https://portal.ifacematch.com/install.sh

sudo bash ./ifacematch-install.sh --diagnose

Confirme o SHA-256 e a assinatura da release com a chave pública de distribuição fixada antes de executar qualquer operação de instalação.

Após a instalação

Shell · inspeção ilustrativa
sudo systemctl is-active ifacematch-server
sudo systemctl is-active ifacematch-console

curl --fail --silent --show-error \
  http://127.0.0.1:8981/health

Confira o health documentado para a versão do seu Server. A checagem privada efetivamente utilizada no piloto foi http://127.0.0.1:8981/health. Não interprete a exibição de login do Console como teste funcional completo de biometria.

O fluxo de primeiro login registra operador individual com MFA. Crie aplicações e credenciais somente após a instalação estar íntegra.

Recuperação de instalação parcial

Se houver falha, preserve os arquivos de estado do instalador e os backups. Não execute novamente um script de instalação em um servidor parcialmente preparado sem identificar o ponto de interrupção. Consulte o guia de upgrade e rollback para instalações existentes.