# Configuração do Control Panel Web Server

## Introdução

Esse manual descreve a configuração dos componentes do lado do servidor da aplicação *GBS Control Panel*. O Control Panel fornece uma interface visual onde o usuário controla os valores de parâmetros do GBDS e compara os valores entre diferentes versões.

O procedimento de configuração deve ser feito somente depois do passo de instalação. Para mais informações, consulte o [Manual de Instalação do GBS Apps](https://docs.griaule.com/componentes-web/gbsappssetup).

## Configuração

Os passos de configuração são:

1. Configure o Tomcat;
2. Configure os Certificados;
3. Gere a senha criptografada;
4. Finalize as configurações no arquivo config.properties.

Todos os passos são descritos abaixo. Um exemplo do arquivo `config.properties` pode ser visto na seção [Exemplo do Arquivo de Configuração](#exemplo-do-arquivo-de-configuracao).

{% hint style="danger" %}
Todas as linhas devem estar presentes no arquivo de configuração. Comentar ou deletar linhas pode causar comportamentos inesperados. Para informações adicionais, contate o Time de Suporte da Griaule.
{% endhint %}

### Configuração do Tomcat

Edite o arquivo de configuração do Tomcat para configurar os certificados e a porta que a aplicação usará.

```sh
vi /var/lib/tomcats/control-panel/conf/server.xml
```

Para mudar a porta, procure por `connector port=`. Essa é a porta para operações backend.

### Configuração de Certificados

Para habilitar autenticação SSL, procure por `connector port=` no arquivo `/conf/server.xml`.

Existem duas entradas. A comentada é a configuração para SSL. Remova os delimitadores de comentários `<!--` e `-->`, então ajuste os seguintes parâmetros:

```properties
port="58194"
keystoreFile="/home/griaule/keystore"
keystorePass="password"
keyAlias="1"
clientAuth="true"
truststoreFile="/home/griaule/keystore"
truststorePass="password"
```

O parâmetro `port` deve ser a porta de rede desejada para a aplicação.

Mude o caminho do `keystoreFile` e o `truststoreFile` para os valores apropriados. Faça o mesmo para o `keystorePass` e o `truststorePass`.

O parâmetro `clientAuth="true"` irá requerer autenticação do servidor para o cliente e do cliente para o servidor. Isso significa que o cliente necessitará importar o certificado no navegador para poder acessar a aplicação.

{% hint style="warning" %}
Quando **clientAuth** é definida como *true*, o administrador do sistema deve fornecer o arquivo **certificate.pfx** para os usuários finais.
{% endhint %}

### Criptografia da senha do Banco de Dados

No arquivo `config.properties`, o parâmetro `jdbc.password` é uma senha criptografada. Para gerar a senha criptografada, siga os seguintes passos:

1. Vá para o seguinte diretório:

   ```sh
   cd /var/lib/tomcats/control-panel/webapps/gbs-control-panel-server/WEB-INF/lib
   ```
2. Execute o comando:

   ```sh
   java -cp gbs-common-db-<versão>.jar com.griaule.commons.util.EncryptUtil <senhaDesejada>
   ```
3. A senha criptografada aparecerá depois da mensagem: *"Encrypted password is:"*

{% hint style="info" %}
Guarde a senha criptografada. Ela será usada em configurações posteriores.
{% endhint %}

### Arquivo de Configuração da Aplicação

Para configurar o arquivo, abra-o com:

```sh
vi /var/lib/tomcats/control-panel/conf/config.properties
```

As mudanças mais importantes nesse arquivo são os parâmetros `jdbc.url`, `jdbc.username`, `jdbc.password` e `gbds.url`. Configure-os de acordo com seu ambiente.

O arquivo de configuração completa é mostrado na seção [Exemplo do Arquivo de Configuração](#exemplo-do-arquivo-de-configuracao)

{% hint style="info" %}
Lembre-se de substituir a senha criptografada gerada na seção [Criptografia da senha do Banco de Dados](#criptografia-da-senha-do-banco-de-dados) neste arquivo.
{% endhint %}

#### Configurações do Control Panel

O último passo é configurar o IP e a porta da aplicação que o usuário final irá acessar. Ele deve ser o mesmo IP e porta configurado na seção [Configuração do Tomcat](#configuracao-do-tomcat).

```properties
control-panel.ip=<ip>
control-panel.port=<port>
control-panel.protocol=<protocol>
```

{% hint style="warning" %}
Certifique-se de que os parâmetros de configuração `control-panel.ip`, `control-panel.port` e `control-panel.protocol` estejam corretamente especificados no arquivo `config.properties`. Em diversos casos, o IP será o mesmo para diversas aplicações. Contudo, cada aplicação possuirá uma porta **diferente e única**.
{% endhint %}

## Finalizando as Configurações

Após completar todos os passos de configuração, volte para o [Manual de Instalação do GBS Apps - Seção de Configuração](https://docs.griaule.com/gbsappssetup#configuracoes).

## Exemplo do Arquivo de Configuração

Essa seção mostra um exemplo do arquivo `config.properties`.

```properties
# GBS Control Panel Server

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://192.168.0.189:3306/controlpanel?useSSL=false
jdbc.username=root
jdbc.password=CDrt8vbewA2YAubPNOLZkw==
jdbc.dialect=org.hibernate.dialect.MySQLDialect
jdbc.showSql=true

locale=en_us

gbds.url=http://192.168.0.189:8085
gbds.user=gbds.authenticate
gbds.key=Griaule.123
gbds.logLevel=INFO
gbds.timeout=300

fingerprint.useSDK=false

gbds.controlPanelUser=control_panel_server
sync.logLevel=INFO
same.user.simultaneous.login=false
notification.delay=5

server.standalone.port=8185

control-panel.ip=127.0.0.1
control-panel.port=8121
control-panel.protocol=http
```
