2.4 KiB
2.4 KiB
GUIA DE DEPLOY - SCOREODONTO CRM (VPS)
Este guia detalha o processo de implantação do ScoreOdonto CRM em um servidor VPS (Ubuntu/Debian recomendado).
1. Pré-requisitos
- Node.js (v18+) e NPM.
- MySQL Server.
- Nginx (como Proxy Reverso).
- PM2 (Gerenciador de Processos).
2. Configuração do Banco de Dados
No servidor MySQL da VPS, crie o banco e as tabelas:
CREATE DATABASE sis_odonto CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Importe seus dados usando o SyncView ou o script de atualização após o deploy.
3. Preparação do Ambiente
Clone o repositório na VPS e instale as dependências:
cd /var/www/scoreodonto
npm install
Crie o arquivo .env na pasta raiz (scoreodonto/):
PORT=3002
DB_HOST=localhost
DB_USER=seu_usuario
DB_PASSWORD=sua_senha
DB_NAME=sis_odonto
4. Build do Frontend
Gere os arquivos estáticos para produção:
npm run build
Isso criará a pasta dist (ou build).
5. Gerenciamento com PM2
Inicie o servidor backend:
pm2 start server.js --name "scoreodonto-api"
pm2 save
6. Configuração do Nginx
Edite o arquivo de configuração do site no Nginx (/etc/nginx/sites-available/scoreodonto):
server {
listen 80;
server_name seu-dominio.com;
# Frontend
location / {
root /var/www/scoreodonto/dist;
index index.html;
try_files $uri $uri/ /index.html;
}
# Backend API
location /api {
proxy_pass http://localhost:3002;
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;
}
}
Ative o site e reinicie o Nginx:
sudo ln -s /etc/nginx/sites-available/scoreodonto /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
7. Ajustes de Produção
- API URL: O frontend agora usa o
API_URLrelativo ou configurado via environment. Como o Nginx está redirecionando/apipara o backend, o sistema funcionará corretamente de forma transparente. - Notificações: Estão unificadas no topo de cada página para fácil acesso.
- Segurança: Certifique-se de configurar um certificado SSL (Certbot/Let's Encrypt).
Gerado automaticamente pelo Antigravity.