5.9 KiB
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)
- Preparação:
# 1. Instale Vercel CLI
npm install -g vercel
# 2. Faça login
vercel login
# 3. Configure o projeto
vercel
- Configuração no Vercel:
- Build Command:
cd client && npm run build - Output Directory:
client/build - Install Command:
npm install && cd client && npm install
- Variáveis de Ambiente no Vercel:
SUPABASE_URL=sua_url_do_supabase
SUPABASE_ANON_KEY=sua_chave_anonima_do_supabase
B. Netlify (Alternativa Gratuita)
- Via Git:
- Conecte seu repositório GitHub
- Build Command:
cd client && npm run build - Publish Directory:
client/build
- Via CLI:
npm install -g netlify-cli
netlify login
netlify deploy --prod --dir=client/build
C. Railway (Backend + Frontend)
- Preparação:
# 1. Instale Railway CLI
npm install -g @railway/cli
# 2. Login
railway login
# 3. Deploy
railway deploy
D. Heroku (Pago)
- 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:
- Erro de CORS: Configure headers no servidor
- Build falha: Verifique dependências do Node.js
- Supabase não conecta: Verifique URLs e chaves
- 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:
- Vercel (frontend) + Supabase (backend/DB) - GRATUITO
- Railway (fullstack) - Barato e simples
Para Empresas Médias:
- VPS (DigitalOcean, Linode) + Docker
- AWS/Google Cloud com auto-scaling
Para Desenvolvimento:
- Servidor local com PM2
- Docker para ambiente consistente
📞 Suporte
Se precisar de ajuda com o deploy:
- Verifique os logs de erro
- Confirme configurações do Supabase
- Teste APIs individualmente
- Verifique conectividade de rede
A aplicação está pronta para produção! 🎉