# Instalação de um NOVO ambiente on premises Zeev (em branco)

{% hint style="success" %}

#### **Será que não é hora de mudar para o CLOUD?** :rocket:&#x20;

Entre em contato e conte com nosso apoio para migrar sua plataforma para o Zeev no Cloud. Todo o processo é simplificado. Você conta com o apoio de especialistas para tornar esse processo o mais simples e transparente possível.
{% endhint %}

{% hint style="info" %}
**Como podemos ajudar?**

A Zeev possui um serviço específico para realizar instalações completas on premises. Todos os procedimentos abaixo são realizados com segurança por nossa equipe especializada, remotamente. Consulte preços em condições com nossa equipe comercial.
{% endhint %}

## Criação do Banco de Dados

#### Restauração do Banco de Dados SQL Server <a href="#restauracao-do-banco-de-dados-sql-server" id="restauracao-do-banco-de-dados-sql-server"></a>

O primeiro passo para implantação do sistema é fazer o *restore* do banco de dados da aplicação. Juntamente com o pacote do sistema você deve ter recebido um arquivo que contém o backup do banco de dados. A operação deve ser um restore comum a partir de um device ("from device"). Para maiores informações sobre restore de banco de dados, acesse <http://msdn.microsoft.com/pt-br/library/ms177429.aspx>

Atente para nome do banco de dados. Pode ser qualquer nome, mas cuidado para não restaurar o banco de dados em cima de um database já existente.

Verifique com o administrador do servidor a pasta/diretório correto para repositório dos arquivos MDF e LDF.

#### Criação do Usuário do Banco de Dados <a href="#criacao-do-usuario-do-banco-de-dados" id="criacao-do-usuario-do-banco-de-dados"></a>

Uma vez criado o banco de dados, deve-se criar um usuário do SQL Server com as seguintes permissões neste banco de dados:

* [ ] Leitura em todas as tabelas e  views (exemplo: role *db\_datareader*)<br>
* [ ] Manutenção (adição, exclusão, atualização)  em todas as tabelas (exemplo: role *db\_datawriter*)<br>
* [ ] Execução de todas as procedures e functions (exemplo: comando *grant execute to {Login}*)<br>

A senha de acesso do usuário criado não deverá possuir o caracter "%" (porcento), devido a controles da ferramenta.

Esse usuário deverá ser vinculado ao banco de dados criado para o Zeev.

## Criação da aplicação em um servidor web com IIS

### O IIS está funcionando?

Verifique se o serviço IIS está instalado e funcionando corretamente em seu servidor

### Cópia da aplicação

Os arquivos para execução da aplicação encontram-se dentro de um diretório comum do Windows;

O deploy da aplicação em um servidor de produção pode ser feito pela cópia comum de arquivos de diretório para diretório no servidor. Não é necessário o registro de nenhuma DLL da ferramenta.;

Por questões de segurança, é recomendável que o sistema seja copiado para um subdiretório dentro da pasta **c:\inetpub\wwwroot do seu servidor**.

### Configurando o IIS - Web Site

#### **Criando o Application Pool**

* [ ] Abra o IIS Manager;<br>
* [ ] Clique com o botão direito sobre *Application Pools* e escolha *Add Application Pool*;<br>
* [ ] Preencha o campo Nome com o nome desejado (exemplo: Zeev);<br>
* [ ] No campo **.Net Framework version** escolha a opção **.Net Framework v4.0.30319**;<br>
* [ ] No campo **Managed pipeline mode** escolha a opção **Integrated** (**Para autenticação LDAP ou Automática utilize a opção "classic"**);<br>
* [ ] Mantenha selecionada a opção **Start application pool immediately**;<br>
* [ ] Clique em OK para salvar;

**Configurações Importantes**

Certifique-se das configurações abaixo sobre o Application Pool criado:

* [ ] "Enable 32-bit Applications" está marcado com valor "False";<br>
* [ ] "Managed Pipeline Mode" está marcado com valor "Integrated";<br>
* [ ] "Identity" está marcado com valor "ApplicationPoolIdentity";<br>
* [ ] "Load User Profile" está marcado com valor "True";<br>
* [ ] "Maximum Worker Processes" está marcado com valor "1";

### **Criando o Web Site**

Clique com o botão direito do mouse sobre "Sites" e selecione "Adicionar Web Site" (Add Web Site);

Na tela seguinte defina o nome do site, aponte para o diretório da aplicação e selecione o "Application pool" criado no passo anterior;

A porta padrão do IIS é a 80.

### **Configurando permissões de escrita em pastas**

Dentro da pasta da aplicação no Servidor Web execute o arquivo "permissaoWindows2012+.bat" para definir automaticamente as permissões de pasta de acordo com a sua versão do Windows.

### **Configurando a conexão da aplicação com banco de dados**

A conexão com o banco de dados é configurada dentro do arquivo Web.Config na raiz da aplicação: **\<raiz>Web.config**

&#x20;A conexão está setada dentro de uma tag XML, conforme exemplo abaixo.&#x20;

Abra o arquivo no bloco de notas e modifique o conteúdo do atributo "value":

`<add key="strConn" value="String de conexão com o Banco de Dados"/>`

### Configurando a criptografia do sistema

O sistema utiliza criptografia de query string nas principais comunicações de páginas.&#x20;

A criptografia é feita através de uma chave armazenada no arquivo web.config do sistema, com o nome de "queryStringEncryptionKey" e deve **obrigatoriamente conter 32 caracteres**.

`<add key="queryStringEncryptionKey" value="String contendo chave de criptografia de 32 caracteres"/>`

Podem ser utilizados os caracteres alfanuméricos, maiúsculas, minúsculas e caracteres especiais exceto as aspas duplas.

{% hint style="warning" %}
O valor da chave pode inclusive ser modificado com o sistema já em produção. **Nesse caso, porém, todos os links internos e tokens de usuários irão modificar e pessoas que tenham salvo links em seu histórico, por exemplo, irão perder a referência.**
{% endhint %}

## Acessando o sistema

&#x20;A este ponto, o sistema já pode ser acessado e utilizado. Caso todos os passos anteriores tenham sido realizados corretamente a aplicação poderá ser acessada pelo navegador.

&#x20;Caso você seguido rigo**r**amente os passos desse tutorial e tenha mantido a utilização da porta 80 em seu Web Site, o acesso ao sistema poderá ser feito via um dos seguintes endereços abaixo:

* [ ] http\://\<nome do servidor web>  (exemplo: <http://srv08web)><br>
* [ ] http\://\<endereço ip do servidor web>  (exemplo: <http://192.168.254.21)>

## Serviços agendados (Jobs)

Uma vez finalizada essa etapa da instalação do sistema é preciso configurar os serviços agendados necessários ao correto funcionamento do sistema.

* [ ] Acesse o arquivo web.config, confirme que a tag "useHangfireServer"está configurada com valor "true" conforme modelo: \<add key="useHangfireServer" value="true" />
* [ ] Acesse http\://\<nome do servidor web>/manage/jobs
* [ ] Agendar recorrência de cada um dos jobs, com a expressão cron correspondente conforme modelo a seguir
  * [ ] EventTimer - a cada 30 minutos: \*/30 \* \* \*&#x20;
  * [ ] SendEmail - a cada 3 horas: 0 /3 \* \*&#x20;
  * [ ] ServiceWorkflow - a cada 3 horas: 0 /3 \* \* \*&#x20;
  * [ ] IssueMonitoring - todo dia à 00:00: 0 0 0 \* \* ?&#x20;
  * [ ] UserAbsence - todo dia às 03:00: 0 3 \* \*&#x20;
  * [ ] EscalationService - a cada 3 horas: 0 /3 \* \*&#x20;
  * [ ] TimeoutWarningService - a cada 3 horas: 0 /3 \* \* \*&#x20;
  * [ ] ReProcessAssignmentsService - a cada 1 hora: 0 \* \* \* \*

## Segurança

Após confirmação de que sua instalação está funcionando corretamente recomendamos seguir os passos do artigo [Criptografar arquivo web.config](/migre-para-zeev/migracao-de-ambientes-on-premises/criptografar-arquivo-web.config.md) para aumentar a segurança do sistema.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://kb.stoque.com.br/migre-para-zeev/migracao-de-ambientes-on-premises/instalacao-novo-ambiente-on-premises.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
