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

4.2 KiB

🚀 Guia de Deploy via SSH - Liberi Kids

Deploy Automático em 2 Comandos

Método 1: Script Automatizado (Recomendado)

# 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

# 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:

# Conecte no servidor e edite
ssh usuario@servidor
cd app_estoque
nano .env

Configure estas variáveis:

# 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:

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:

# 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:

# Re-executar o script de deploy
./deploy-to-server.sh usuario@servidor

🔒 Configurações de Segurança

Firewall (Ubuntu/Debian):

ssh usuario@servidor '
    sudo ufw allow 5000
    sudo ufw enable
'

Nginx (Opcional - Para usar porta 80):

ssh usuario@servidor '
    sudo apt install nginx
    sudo nano /etc/nginx/sites-available/liberi-kids
'

Configuração 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"

# Solução: Configurar chaves SSH
ssh-copy-id usuario@servidor

Erro: "Port 5000 already in use"

ssh usuario@servidor 'sudo lsof -ti:5000 | xargs kill -9'

Erro: "Node.js not found"

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"

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:

ssh usuario@servidor 'pm2 logs liberi-kids --lines 50'

Monitoramento:

ssh usuario@servidor 'pm2 monit'

Backup Manual:

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