Pular para o conteúdo principal

Signer - Setup em Docker

Para a instalação baseada em Docker, a seguinte imagem é disponibilizada no Docker Hub:


Imagem Docker do Signer


Esta imagem requer:

  • Uma conexão com um banco de dados SQL Server: a collation do banco de dados deve ser Latin1_General_100_CI_AI ou Latin1_General_CI_AI.
  • Armazenamento (compartilhado entre todas as instâncias da imagem): veja as configurações de BlobStorage abaixo para mais informações.
  • Servidor OIDC (GrantID) em nuvem ou on-premises.

Configuração básica​

O container desta imagem é configurado por meio de variáveis de ambiente.

Os nomes das variáveis de ambiente devem seguir o padrão Section__Setting. Por exemplo: para configurar o SupportEmailAddress da seção General, defina uma variável com o nome General__SupportEmailAddress.

As configurações obrigatórias são apresentadas abaixo.

Connection string do banco de dados​

Na seção ConnectionStrings:

  • DefaultConnection: defina a connection string do banco de dados. Uma connection string típica é assim:
Data Source=SERVER;Initial Catalog=DATABASE;User ID=USERNAME;Password=PASSWORD
observação

Se você criou o banco de dados usando recursos avançados, como log shipping ou mirroring, sua connection string pode ser diferente

Exemplo:

ConnectionStrings__DefaultConnection=Server=SERVER;Initial Catalog=DATABASE;User ID=USERNAME;Password=PASSWORD;
observação

A maioria dos endpoints de servidor exige o seguinte formato para o parâmetro Data Source/Server:

tcp:<hostname>,<portnumber>

Seção BlobStorage​

Define como a aplicação armazena e recupera arquivos.

Veja Configuração do Blob Storage para detalhes e exemplos dos serviços suportados.

Seção Serilog​

Define onde os logs da aplicação são armazenados.

Veja Configuração do Serilog para detalhes e exemplos dos serviços suportados.

Configuração do OpenID Connect​

A seção Oidc configura o servidor OpenID Connect, necessário para o gerenciamento de usuários. É necessária uma subscription do GrantID.

Você pode usar uma subscription SaaS em grantid.com ou executar sua própria instância do GrantID.

  • Authority: a authority OIDC (ex.: https://patorum.grantid.com)
  • ApiEndpoint: o endpoint da API do servidor OIDC (ex.: https://api.grantid.com)
  • ApiName: o escopo de API que será exigido nos tokens de acesso
  • ClientAppId: o client id do aplicativo do painel
  • AppId: o client id do aplicativo de backend
  • AppSecret: o client secret do aplicativo de backend
  • RequireHttps (opcional): defina como false se o servidor OIDC não usar HTTPS

Veja a página Configurando uma aplicação SPA para saber como obter esses valores.

Exemplo:

Oidc__ApiEndpoint=https://api.grantid.com
Oidc__ApiName=myapp-api
Oidc__AppId=myapp-backend
Oidc__AppSecret=8CqeGeur46k...
Oidc__Authority=https://mysubscription.grantid.com
Oidc__ClientAppId=myapp
Oidc__CpfClaim=cpf
Oidc__CustomScopes=mysub-cpf

PKI Suite​

Na seção PkiSuite:

  • SdkLicense: sua licença do PKI SDK, no formato Base64 (obrigatório)
  • WebLicense: sua licença do componente Web PKI no formato binário (Base64). Necessária apenas se os usuários forem emitir certificados em seus computadores (procedimento de emissão pela web)
  • WebBrand: se você tiver uma setup brand personalizada no Web PKI, defina-a aqui

Exemplo:

PkiSuite__SdkLicense=AxAAzHeWJY9AK...
PkiSuite__WebLicense=ApwBY29uZml1A...

Configurações gerais​

  • SiteUrl: a URL a partir da qual a aplicação será executada.
  • SiteName: o nome da aplicação.
  • SupportEmailAddress: o e-mail de suporte, que será incluído no rodapé de todos os e-mails enviados pela aplicação.

Exemplo:

General__SiteUrl=https://signer.myapp.com
General__SiteName=MyApp Signer
General__SupportEmailAddress=support@email.com

Configuração de bindings​

  • UseReverseProxy: defina como true se o container for executado atrás de um proxy reverso ou balanceador de carga. Caso contrário, pode ser omitida.
Bindings__UseReverseProxy=true

Envio de e-mail​

Na seção Email:

  • Enabled: por padrão, o envio de e-mail está habilitado. Para desabilitá-lo, defina esta configuração como false e ignore o restante desta seção
  • ServerHost: hostname do servidor SMTP
  • EnableSsl: por padrão, a conversação SMTP é feita sobre SSL. Para desabilitar o SSL, defina esta configuração como false
  • ServerPort: por padrão, a conversação SMTP é feita pela porta 587. Defina esta configuração para usar outra porta
  • Username e Password: se o servidor SMTP exigir autenticação, defina estas configurações
  • SenderAddress: endereço de e-mail a ser usado como remetente (campo from)
  • SenderName: nome a ser usado como nome do remetente (opcional)

Exemplo:

Email__ServerHost=email-smtp.us-east-1.amazonaws.com
Email__Username=USERNAME
Email__Password=PASSWORD
Email__SenderAddress=no-reply@email.com
Email__SenderName=MYAPPNAME

Configurações adicionais​

Outras configurações podem ser encontradas na página Configurações do Signer.

Instalação​

Baixe a imagem estável mais recente, configure as variáveis de ambiente obrigatórias e execute o container.

aviso

Comece com apenas um container, pois na primeira inicialização as tabelas do banco de dados são criadas (mais containers poderiam causar uma condição de corrida). Depois que a inicialização inicial for concluída, você pode executar quantos containers quiser.

Orientações para atualização​

Antes de atualizar seu container, recomendamos consultar o Changelog para ver o que mudou da sua versão atual até a mais recente disponível.

Se alguma das versões incluídas na atualização tiver alterações no modelo do banco de dados ("Atualiza modelo de banco de dados: sim"), proceda com cuidado, pois o container tentará atualizar o banco de dados na inicialização.

Nesse cenário, recomendamos escolher uma das seguintes opções:

  • Reduzir o número de containers em execução para 1.
  • Permitir que apenas um container atualize o banco de dados. Para isso, adicione as seguintes configurações a todos os containers, exceto um:
General__ProcessBackgroundJobs=false
General__AutoUpdateDatabase=false

Por fim, para atualizar, basta baixar a imagem com a tag correspondente à versão desejada e executar o container.

Veja também​

Ver em Markdown