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

5.9 KiB

🚀 Guia de Deploy - Liberi Kids Sistema de Estoque

📋 Pré-requisitos

  • Node.js 18+ instalado
  • Conta no Supabase (já configurada)
  • Dados de acesso ao Supabase

🌐 Opções de Deploy

1. 🖥️ SERVIDOR LOCAL (Produção)

Preparação do Build

# 1. Entre na pasta do projeto
cd /home/tiago/Downloads/app_estoque

# 2. Instale dependências (se não instaladas)
npm install

# 3. Entre na pasta do cliente
cd client

# 4. Instale dependências do frontend
npm install

# 5. Faça o build de produção
npm run build

# 6. Volte para a pasta raiz
cd ..

Configuração do Servidor

# 1. Crie arquivo de configuração de produção
cp .env.example .env.production

# 2. Edite as variáveis de ambiente
nano .env.production

Conteúdo do .env.production:

NODE_ENV=production
PORT=5000
SUPABASE_URL=sua_url_do_supabase
SUPABASE_ANON_KEY=sua_chave_anonima_do_supabase

Executar em Produção

# Opção 1: Execução simples
npm start

# Opção 2: Com PM2 (recomendado)
npm install -g pm2
pm2 start server-supabase.js --name "liberi-kids"
pm2 startup
pm2 save

Configurar Nginx (Opcional)

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_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_cache_bypass $http_upgrade;
    }
}

2. ☁️ DEPLOY EM NUVEM

A. Vercel (Recomendado - Gratuito)

  1. Preparação:
# 1. Instale Vercel CLI
npm install -g vercel

# 2. Faça login
vercel login

# 3. Configure o projeto
vercel
  1. Configuração no Vercel:
  • Build Command: cd client && npm run build
  • Output Directory: client/build
  • Install Command: npm install && cd client && npm install
  1. Variáveis de Ambiente no Vercel:
SUPABASE_URL=sua_url_do_supabase
SUPABASE_ANON_KEY=sua_chave_anonima_do_supabase

B. Netlify (Alternativa Gratuita)

  1. Via Git:
  • Conecte seu repositório GitHub
  • Build Command: cd client && npm run build
  • Publish Directory: client/build
  1. Via CLI:
npm install -g netlify-cli
netlify login
netlify deploy --prod --dir=client/build

C. Railway (Backend + Frontend)

  1. Preparação:
# 1. Instale Railway CLI
npm install -g @railway/cli

# 2. Login
railway login

# 3. Deploy
railway deploy

D. Heroku (Pago)

  1. Preparação:
# 1. Instale Heroku CLI
# 2. Login
heroku login

# 3. Crie app
heroku create liberi-kids-estoque

# 4. Configure variáveis
heroku config:set SUPABASE_URL=sua_url
heroku config:set SUPABASE_ANON_KEY=sua_chave

# 5. Deploy
git push heroku main

3. 🐳 DOCKER (Containerização)

Dockerfile

# Dockerfile
FROM node:18-alpine

WORKDIR /app

# Copiar package.json
COPY package*.json ./
RUN npm install

# Copiar código do servidor
COPY server-supabase.js ./
COPY sql/ ./sql/

# Copiar e buildar frontend
COPY client/ ./client/
WORKDIR /app/client
RUN npm install && npm run build

# Voltar para raiz
WORKDIR /app

EXPOSE 5000

CMD ["node", "server-supabase.js"]

Docker Compose

# docker-compose.yml
version: '3.8'
services:
  liberi-kids:
    build: .
    ports:
      - "5000:5000"
    environment:
      - NODE_ENV=production
      - SUPABASE_URL=${SUPABASE_URL}
      - SUPABASE_ANON_KEY=${SUPABASE_ANON_KEY}
    restart: unless-stopped

Comandos Docker

# Build e run
docker-compose up -d

# Ou build manual
docker build -t liberi-kids .
docker run -p 5000:5000 -e SUPABASE_URL=sua_url liberi-kids

🔧 Configurações Importantes

1. Variáveis de Ambiente

# Obrigatórias
SUPABASE_URL=https://seu-projeto.supabase.co
SUPABASE_ANON_KEY=sua_chave_anonima

# Opcionais
NODE_ENV=production
PORT=5000

2. Configuração do Supabase

  • Certifique-se que as políticas RLS estão configuradas
  • Verifique se todas as tabelas foram criadas
  • Configure CORS se necessário

3. Segurança

  • Use HTTPS em produção
  • Configure firewall adequadamente
  • Mantenha as chaves do Supabase seguras
  • Use variáveis de ambiente para dados sensíveis

📱 Acesso Móvel

PWA (Progressive Web App)

A aplicação já está configurada como PWA:

  • Funciona offline (parcialmente)
  • Pode ser instalada no celular
  • Interface responsiva

Configuração de Domínio

# Para usar domínio próprio
# 1. Configure DNS apontando para seu servidor
# 2. Configure SSL/TLS (Let's Encrypt)
# 3. Atualize configurações do Supabase se necessário

🚨 Troubleshooting

Problemas Comuns:

  1. Erro de CORS: Configure headers no servidor
  2. Build falha: Verifique dependências do Node.js
  3. Supabase não conecta: Verifique URLs e chaves
  4. Arquivos não encontrados: Verifique paths do build

Logs e Monitoramento:

# PM2 logs
pm2 logs liberi-kids

# Docker logs
docker logs container-name

# Vercel logs
vercel logs

💡 Recomendações

Para Pequenas Empresas:

  1. Vercel (frontend) + Supabase (backend/DB) - GRATUITO
  2. Railway (fullstack) - Barato e simples

Para Empresas Médias:

  1. VPS (DigitalOcean, Linode) + Docker
  2. AWS/Google Cloud com auto-scaling

Para Desenvolvimento:

  1. Servidor local com PM2
  2. Docker para ambiente consistente

📞 Suporte

Se precisar de ajuda com o deploy:

  1. Verifique os logs de erro
  2. Confirme configurações do Supabase
  3. Teste APIs individualmente
  4. Verifique conectividade de rede

A aplicação está pronta para produção! 🎉