Primeiro commit
This commit is contained in:
216
DEPLOY-SSH-GUIDE.md
Normal file
216
DEPLOY-SSH-GUIDE.md
Normal file
@@ -0,0 +1,216 @@
|
||||
# 🚀 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`
|
||||
Reference in New Issue
Block a user