217 lines
4.2 KiB
Markdown
217 lines
4.2 KiB
Markdown
# 🚀 Guia de Deploy via SSH - Liberi Kids
|
|
|
|
## ⚡ Deploy Automático em 2 Comandos
|
|
|
|
### **Método 1: Script Automatizado (Recomendado)**
|
|
|
|
```bash
|
|
# 1. Execute o script automático
|
|
./deploy-to-server.sh usuario@ip-do-servidor
|
|
|
|
# Exemplo:
|
|
./deploy-to-server.sh root@192.168.1.100
|
|
./deploy-to-server.sh ubuntu@meuservidor.com
|
|
```
|
|
|
|
### **Método 2: Manual Passo a Passo**
|
|
|
|
```bash
|
|
# 1. Copiar arquivos para o servidor
|
|
rsync -avz --progress --exclude 'node_modules' ./ usuario@servidor:~/app_estoque/
|
|
|
|
# 2. Conectar no servidor
|
|
ssh usuario@servidor
|
|
|
|
# 3. Navegar para o projeto
|
|
cd app_estoque
|
|
|
|
# 4. Configurar .env
|
|
cp .env.example .env
|
|
nano .env # Configure suas credenciais
|
|
|
|
# 5. Executar deploy
|
|
chmod +x scripts/deploy-local.sh
|
|
./scripts/deploy-local.sh
|
|
```
|
|
|
|
---
|
|
|
|
## 🔧 **Configuração do Arquivo .env**
|
|
|
|
Após o deploy, você DEVE configurar o arquivo `.env` no servidor:
|
|
|
|
```bash
|
|
# Conecte no servidor e edite
|
|
ssh usuario@servidor
|
|
cd app_estoque
|
|
nano .env
|
|
```
|
|
|
|
**Configure estas variáveis:**
|
|
```env
|
|
# Suas credenciais do Supabase
|
|
SUPABASE_URL=https://seu-projeto.supabase.co
|
|
SUPABASE_ANON_KEY=sua_chave_anonima_aqui
|
|
|
|
# Configurações do servidor
|
|
NODE_ENV=production
|
|
PORT=5000
|
|
```
|
|
|
|
**Após configurar, reinicie:**
|
|
```bash
|
|
pm2 restart liberi-kids
|
|
```
|
|
|
|
---
|
|
|
|
## 🌐 **Acessar a Aplicação**
|
|
|
|
Após o deploy bem-sucedido:
|
|
|
|
- **Local:** `http://localhost:5000` (no servidor)
|
|
- **Rede:** `http://IP-DO-SERVIDOR:5000`
|
|
- **Domínio:** `http://seu-dominio.com:5000`
|
|
|
|
---
|
|
|
|
## 📋 **Comandos Úteis**
|
|
|
|
### **Gerenciar Aplicação:**
|
|
```bash
|
|
# Ver status
|
|
ssh usuario@servidor 'pm2 status'
|
|
|
|
# Ver logs
|
|
ssh usuario@servidor 'pm2 logs liberi-kids'
|
|
|
|
# Reiniciar
|
|
ssh usuario@servidor 'pm2 restart liberi-kids'
|
|
|
|
# Parar
|
|
ssh usuario@servidor 'pm2 stop liberi-kids'
|
|
```
|
|
|
|
### **Atualizar Aplicação:**
|
|
```bash
|
|
# Re-executar o script de deploy
|
|
./deploy-to-server.sh usuario@servidor
|
|
```
|
|
|
|
---
|
|
|
|
## 🔒 **Configurações de Segurança**
|
|
|
|
### **Firewall (Ubuntu/Debian):**
|
|
```bash
|
|
ssh usuario@servidor '
|
|
sudo ufw allow 5000
|
|
sudo ufw enable
|
|
'
|
|
```
|
|
|
|
### **Nginx (Opcional - Para usar porta 80):**
|
|
```bash
|
|
ssh usuario@servidor '
|
|
sudo apt install nginx
|
|
sudo nano /etc/nginx/sites-available/liberi-kids
|
|
'
|
|
```
|
|
|
|
**Configuração Nginx:**
|
|
```nginx
|
|
server {
|
|
listen 80;
|
|
server_name seu-dominio.com;
|
|
|
|
location / {
|
|
proxy_pass http://localhost:5000;
|
|
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;
|
|
}
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## 🚨 **Resolução de Problemas**
|
|
|
|
### **Erro: "Permission denied"**
|
|
```bash
|
|
# Solução: Configurar chaves SSH
|
|
ssh-copy-id usuario@servidor
|
|
```
|
|
|
|
### **Erro: "Port 5000 already in use"**
|
|
```bash
|
|
ssh usuario@servidor 'sudo lsof -ti:5000 | xargs kill -9'
|
|
```
|
|
|
|
### **Erro: "Node.js not found"**
|
|
```bash
|
|
ssh usuario@servidor '
|
|
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
|
|
sudo apt-get install -y nodejs
|
|
'
|
|
```
|
|
|
|
### **Erro: "PM2 not found"**
|
|
```bash
|
|
ssh usuario@servidor 'npm install -g pm2'
|
|
```
|
|
|
|
---
|
|
|
|
## 📱 **Recursos da Aplicação**
|
|
|
|
Após o deploy, você terá acesso a:
|
|
|
|
- ✅ **Dashboard Completo** com contabilidade real
|
|
- ✅ **Controle de Produtos** com fotos e variações
|
|
- ✅ **Gestão de Vendas** com WhatsApp integrado
|
|
- ✅ **Sistema de Empréstimos** para Maiara
|
|
- ✅ **Exportação Google Sheets** automática
|
|
- ✅ **Alertas WhatsApp** para cobranças
|
|
- ✅ **Interface Responsiva** (funciona no celular)
|
|
|
|
---
|
|
|
|
## 🎯 **Checklist Pós-Deploy**
|
|
|
|
- [ ] ✅ Aplicação rodando (pm2 status)
|
|
- [ ] ✅ Arquivo .env configurado
|
|
- [ ] ✅ Supabase conectado
|
|
- [ ] ✅ Firewall configurado
|
|
- [ ] ✅ Backup configurado
|
|
- [ ] ✅ Domínio configurado (opcional)
|
|
- [ ] ✅ SSL configurado (opcional)
|
|
- [ ] ✅ Usuários treinados
|
|
|
|
---
|
|
|
|
## 📞 **Suporte**
|
|
|
|
### **Logs de Erro:**
|
|
```bash
|
|
ssh usuario@servidor 'pm2 logs liberi-kids --lines 50'
|
|
```
|
|
|
|
### **Monitoramento:**
|
|
```bash
|
|
ssh usuario@servidor 'pm2 monit'
|
|
```
|
|
|
|
### **Backup Manual:**
|
|
```bash
|
|
ssh usuario@servidor 'cd app_estoque && tar -czf backup-$(date +%Y%m%d).tar.gz .'
|
|
```
|
|
|
|
---
|
|
|
|
**🎉 Sua aplicação Liberi Kids estará rodando em produção!**
|
|
|
|
Para suporte detalhado, consulte: `DEPLOY-GUIDE.md`
|