Servidor
Abaixo estão as instruções para configurar e executar o servidor, além de informações sobre o uso de ferramentas como PM2, Nginx e Ngrok. Este servidor foi configurado para hospedar um front-end em Next.js na porta 80 e um back-end em Flask na porta 6001.
Nota: Todas as instruções abaixo assumem que o servidor está rodando em um sistema operacional baseado em Linux. Certifique-se de que você tem permissões de administrador (root) para executar os comandos necessários.
Configuração do Servidor
PM2
PM2 é usado para gerenciar o processo do servidor Node.js (Next.js). Siga os passos abaixo para configurar:
-
Instale o PM2 globalmente:
npm install -g pm2 -
Inicie o front-end:
- Realize o build do front-end antes de iniciar o PM2:
cd frontend
npm install
npm run build- Inicie o front-end com PM2:
pm2 start npm --name "PharmaBot Frontend" -- start -
Inicie o back-end com PM2:
pm2 start app.py --name "PharmaBot Backend" --interpreter python3 -
Salve a configuração para reiniciar automaticamente:
pm2 save
pm2 startup
Nginx
Nginx é usado como um proxy reverso para o front-end e o back-end. Configure-o da seguinte forma:
- Instale o Nginx:
sudo apt update
sudo apt install nginx - Edite o arquivo de configuração:
Exemplo de configuração:
sudo nano /etc/nginx/conf.d/pharmabot.confserver {
listen 80;
server_name _;
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
server {
listen 6001;
server_name _;
location / {
proxy_pass http://localhost:5555;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
} - Teste e reinicie o Nginx:
sudo nginx -t
sudo systemctl restart nginx
Ngrok
Ngrok é usado para expor o servidor local para a internet. Siga os passos abaixo:
-
Instale o Ngrok:
- Baixe o binário do site oficial: ngrok.com
- Extraia e adicione ao PATH.
-
Crie duas contas no Ngrok e obtenha os respectivos authtokens.
- Acesse o painel do Ngrok para cada conta e copie os authtokens correspondentes.
-
Como estamos usando um plano gratuito, o Ngrok só permite um subdomínio por vez. Portanto, usamos duas contas para expor o front-end e o back-end.
-
Para o primeiro profile:
mkdir ~/.ngrok2
nano ~/.ngrok2/ngrok-user1.ymlAdicione o seguinte conteúdo:
version: 2
authtoken: SEU_TOKEN_USER1 -
Para o segundo profile:
mkdir ~/.ngrok2
nano ~/.ngrok2/ngrok-user2.ymlAdicione o seguinte conteúdo:
version: 2
authtoken: SEU_TOKEN_USER2
-
-
Inicie o Ngrok para o front-end:
ngrok http 80 --config ~/.ngrok2/ngrok-user1.yml -
Inicie o Ngrok para o back-end:
ngrok http 6001 --config ~/.ngrok2/ngrok-user2.yml
Reload
Após realizar alterações no código, é necessário reiniciar o PM2 para aplicar as mudanças. Use os seguintes comandos:
- Para reiniciar o PM2:
pm2 restart all - Para reiniciar o back-end:
pm2 restart "PharmaBot Backend" - Para reiniciar o front-end:
pm2 restart "PharmaBot Frontend" - Após qualquer alteração na configuração do Nginx, reinicie o serviço:
sudo systemctl restart nginx
Monitoramento
O PM2 fornece ferramentas de monitoramento e gerenciamento de processos. Use os seguintes comandos:
- Use
pm2 monitpara monitorar o servidor. - Verifique os logs com:
pm2 logs
Com essas ferramentas, o servidor está configurado para hospedar o front-end e o back-end, sendo gerenciado, acessível e monitorado de forma eficiente.