Files
App-Estoque-LiberiKids/DEPLOY-SSH-GUIDE.md
2025-10-14 14:04:17 -03:00

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`