# 🚀 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
- ✅ **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`
