Subindo o INJI Verify Service

Objetivo

Colocar o INJI Verify Service rodando com Docker Compose na sua VM.

Componentes

O INJI Verify Service é composto por 2 containers:

Container Imagem Porta Função
inji-verify-service injistack/inji-verify-service:0.17.0 8080 Backend Spring Boot — validação de credenciais
inji-verify-db postgres:15-alpine 5432 Banco de dados

Passo 1 — Criar estrutura de diretórios

mkdir -p ~/verificaidade
cd ~/verificaidade

Passo 2 — Criar docker-compose.yml

Substitua SEU_DOMINIO_PUBLICO pelo domínio público da sua VM (ou URL do ngrok em desenvolvimento).

services:
  inji-verify-service:
    container_name: inji-verify-service
    image: injistack/inji-verify-service:0.17.0
    ports:
      - "8080:8080"
    environment:
      DATABASE_HOST: postgres
      DATABASE_PORT: 5432
      DATABASE_NAME: inji_verify
      DATABASE_SCHEMA: public
      DATABASE_USERNAME: inji
      DATABASE_PASSWORD: inji123
      INJI_VP_SUBMISSION_BASE_URL: https://SEU_DOMINIO_PUBLICO/v1/verify
      INJI_DID_VERIFY_URI: did:web:SEU_DOMINIO_PUBLICO:v1:verify
      INJI_DID_VERIFY_PUBLIC_KEY_URI: did:web:SEU_DOMINIO_PUBLICO:v1:verify#key-0
      SPRING_JPA_HIBERNATE_DDL_AUTO: update
      MANAGEMENT_ENDPOINTS_WEB_EXPOSURE_INCLUDE: "*"
      MANAGEMENT_ENDPOINT_MAPPINGS_ENABLED: "true"
    depends_on:
      postgres:
        condition: service_healthy
    restart: unless-stopped

  postgres:
    image: postgres:15-alpine
    container_name: inji-verify-db
    environment:
      POSTGRES_USER: inji
      POSTGRES_PASSWORD: inji123
      POSTGRES_DB: inji_verify
    ports:
      - "5432:5432"
    volumes:
      - pgdata:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U inji -d inji_verify"]
      interval: 5s
      timeout: 5s
      retries: 10

volumes:
  pgdata:

Passo 3 — Subir os containers

docker compose up -d

Passo 4 — Verificar se está rodando

# Ver containers ativos
docker ps

# Ver logs do Service
docker logs inji-verify-service --tail 50

# Health check
curl -s http://localhost:8080/v1/verify/actuator/health

Resultado esperado:

{
  "status": "UP"
}

Variáveis de Ambiente — Referência

Variável Padrão Descrição
DATABASE_HOST Host do PostgreSQL
DATABASE_PORT 5432 Porta do PostgreSQL
DATABASE_NAME inji_verify Nome do banco
DATABASE_SCHEMA public Schema do banco
INJI_VP_SUBMISSION_BASE_URL URL pública do Service (a Wallet envia VP para cá)
INJI_DID_VERIFY_URI DID Web do verificador
INJI_DID_VERIFY_PUBLIC_KEY_URI URI da chave pública do DID
INJI_KEYSTORE_FILE_PASS mosip Senha do keystore PKCS12
INJI_VP_REQUEST_LONG_POLLING_TIMEOUT 55000 Timeout do long-polling (ms)
INJI_VERIFY_REDIRECT_URI URI de redirecionamento pós-verificação
INJI_VERIFY_RESPONSE_CODE_EXPIRY_TIME_IN_MINS 5 TTL do response code (min)
Importante

Use exatamente a versão 0.17.0 do INJI Verify Service. Versões anteriores (0.16.x) e posteriores (0.18.x+) podem ter incompatibilidades com o SDK React. INJI_VP_SUBMISSION_BASE_URL e os DIDs devem usar seu domínio público real. A Carteira Digital do cidadão precisa resolver esses endereços pela internet.

Comandos úteis

Comando O que faz
docker compose up -d Inicia os serviços
docker compose down Para os serviços
docker compose restart inji-verify-service Reinicia o Service
docker logs inji-verify-service -f Acompanha logs em tempo real
docker compose pull Atualiza as imagens

Próximo passo

Serviço rodando. Agora entenda o Fluxo de Verificação.