|
|
# Instalação Local do Portal na Dev
|
|
|
|
|
|
[TOC]
|
|
|
|
|
|
## Arquivos :card_file_box:
|
|
|
|
|
|
Para essa reinstalação da dev os arquivos foram obtidos direto da intalação de produção da VM prod. Foram copiados via scp direto de uma vm para a outra. Entretando, para poder fazer essa cópia por ssh, é necessário ter uma chave ssh da prod na dev, caso contrário não vai funcionar.
|
|
|
|
|
|
Os arquivos do blendb também foram obtidos da prod, da mesma forma.
|
|
|
|
|
|
### Diretórios :file_folder:
|
|
|
* **Prod:** /home/simmc/simmc_prod/ -> **Dev:** /home/simmc/simmc_prod_2021
|
|
|
* **Prod:** /home/simmc/blendb -> **Dev:** /home/simmc/simmc_prod_2021/blendb_prod_certo
|
|
|
|
|
|
## Portal
|
|
|
### Resolvendo erros do npm :heavy_check_mark:
|
|
|
Por ser a versão que estava funcionando na prod, há bem menos chance de alguma coisa estar quebrada, mas isso não quer dizer que erros não aparecerão. A maioria deles vai ocorrer por conta de versionamento de bibliotecas que o portal depende, por conta do portal já ser antigo, a maioria das bibliotecas já foram muito atualizadas, e algumas funções já estão até mesmo depreciadas. Todas as dependências estão listadas no arquivo package.json.
|
|
|
Na maioria dos casos, basta fazer uma pesquisa pra saber em qual versão a dependência problemática está atualmente, e colocar essa versão no JSON. As bibliotecas que eu já tive problemas foram a node-captcha e node-jasper e canvas.
|
|
|
> [color=#008080]**Dica:** Se alguma dependência apresentar erro, mas não estiver listada, ela é uma dependência interna de alguma biblioteca que o projeto usa. O caminho mais fácil é achar qual biblioteca utiliza essa dependência.
|
|
|
|
|
|
O grande problema da biblioteca node-captcha, é a dependência interna que ela tem da biblioteca canvas. A node-captcha não é atualizada há mais de 5 anos, e sua versão "final" utilizava a versão da biblioteca canvas de também 5 anos atrás. Acontece que, essa versão da canvas não funciona mais com as versões atuais do Node, portanto ela quebra. E o grande problema é que não pode-se apenas alterar a versão da node-captcha no json, porque não há versão superior. Então, o que eu fiz foi clonar o repositório da biblioteca no github, colocar dentro da pasta node_modules (pós npm install) e então dentro do diretório da biblioteca, alterar seu próprio json, dando upgrade na biblioteca canvas, e então rodar npm install nesse diretório.
|
|
|
**Resumindo:**
|
|
|
* Entre na pasta do portal.
|
|
|
* `npm install`
|
|
|
* Resolva os problemas não relacionados à node-captcha.
|
|
|
* `cd node_modules`
|
|
|
* `git clone https://github.com/zhiyu/node-captcha.git`
|
|
|
* `cd node-captcha`
|
|
|
* `sed -i 's/1.2.9/2.7.0/g' package.json` (substitui a versão do canvas)
|
|
|
* `npm install`
|
|
|
* `cd ../..`
|
|
|
|
|
|
> [color=#008080] **Dica:** Faça um script em shell com os comandos acima, para não ter que realizar isso toda vez.
|
|
|
|
|
|
### Arquivos de configuração :gear:
|
|
|
Depois de ter conseguido rodar o npm install, a instalação pode continuar. O próximo passo é alterar os arquivos de configuração de ambiente. No caso do portal, o arquivo **config.js** deve ser modificado. Vou deixar aqui as variáveis que são padrões nas instalações da dev, as demais dependem do caminho do seu diretório.
|
|
|
```
|
|
|
exports.db_config = {
|
|
|
user: 'simmc',
|
|
|
password: '*****',
|
|
|
database: 'simmc',
|
|
|
host: 'localhost',
|
|
|
port: 5432
|
|
|
};
|
|
|
|
|
|
exports.mail = {
|
|
|
port: 25
|
|
|
, host: 'mx.c3sl.ufpr.br'
|
|
|
, ignoreTLS: true
|
|
|
, secure: false
|
|
|
, from: 'noreply@simmc.c3sl.ufpr.br'
|
|
|
};
|
|
|
|
|
|
[...]
|
|
|
|
|
|
exports.opendata = {
|
|
|
host: 'localhost',
|
|
|
port: '3001',
|
|
|
path: '/v1'
|
|
|
};
|
|
|
|
|
|
```
|
|
|
> [color=#008080]Se não souber, pergunte a senha do banco para algum outro integrante do projeto.
|
|
|
|
|
|
### Grunt :spiral_note_pad:
|
|
|
O Grunt é um task runner (executor de tarefas, em tradução livre) de javascript que está atrelado ao portal, é ele também que cria a build que roda o projeto, por isso, é necessário executá-lo.
|
|
|
|
|
|
> [color=#008080] Mesmo localmente, ainda é necessária a build do projeto.
|
|
|
|
|
|
Para criar a build digite `grunt --force` e espere o comando terminar.
|
|
|
|
|
|
### Rodando o portal :man-running:
|
|
|
Depois do build ter sido feito, é só rodar `node server.js` e o portal abrirá no localhost:3000 (por padrão).
|
|
|
|
|
|
## Blendb
|
|
|
O passo a passo para configurar o blendb também é muito mais simples quando copiamos os arquivos da prod. E rodá-lo é mais simples ainda.
|
|
|
|
|
|
### Arquivos de configuração :gear:
|
|
|
O arquivo de configuração principal dessa versão do blendb é o **config.yaml**, que se encontra na pasta config. A única coisa que deve ser alterada são as informações relacionadas ao banco de dados, que por padrão podem ficar assim:
|
|
|
```
|
|
|
connection:
|
|
|
user: 'simmc_test'
|
|
|
database: 'simmc_test'
|
|
|
password: '***'
|
|
|
host: 'localhost'
|
|
|
port: 5432
|
|
|
max: 10
|
|
|
idleTimeoutMillis: 30000
|
|
|
```
|
|
|
> [color=#008080]Se não souber, pergunte a senha do banco para algum outro integrante do projeto.
|
|
|
|
|
|
### Rodando o blendb :man-running:
|
|
|
Depois de configurar o banco, é só executar `./service/service.sh` que o script iniciará o blendb.
|
|
|
|
|
|
> [color=#008080] Lembre-se de colocar o blendb na mesma porta que você o configurou nos arquivos de configuração do portal. Por padrão, a porta é 3001. Isso pode ser alterado no **./service/service.sh**. |
|
|
\ No newline at end of file |