# 🚀 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 ```bash # 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 ```bash # 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:** ```env NODE_ENV=production PORT=5000 SUPABASE_URL=sua_url_do_supabase SUPABASE_ANON_KEY=sua_chave_anonima_do_supabase ``` #### Executar em Produção ```bash # 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) ```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_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:** ```bash # 1. Instale Vercel CLI npm install -g vercel # 2. Faça login vercel login # 3. Configure o projeto vercel ``` 2. **Configuração no Vercel:** - Build Command: `cd client && npm run build` - Output Directory: `client/build` - Install Command: `npm install && cd client && npm install` 3. **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` 2. **Via CLI:** ```bash npm install -g netlify-cli netlify login netlify deploy --prod --dir=client/build ``` #### C. **Railway (Backend + Frontend)** 1. **Preparação:** ```bash # 1. Instale Railway CLI npm install -g @railway/cli # 2. Login railway login # 3. Deploy railway deploy ``` #### D. **Heroku (Pago)** 1. **Preparação:** ```bash # 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 # 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 ```yaml # 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 ```bash # 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** ```env # 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 ```bash # 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: ```bash # 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! 🎉**