# Fluxo de Desenvolvimento - Avanzato ## Visao Geral ``` +---------------------------------------------------------------+ | SEU MAC (Desenvolvimento) | | | | +-------------------+ bash scripts/dev.sh start | | | Codigo Fonte | --> http://localhost:5173 | | | app/src/ | | | +-------------------+ | | | | | | bash scripts/dev.sh build-hom | | | bash scripts/dev.sh deploy-hom | | v | +---------------------------------------------------------------+ | v +---------------------------------------------------------------+ | SERVIDOR - HOMOLOGACAO | | | | Gitea (git push) --> Hook --> Build --> Nginx | | | | https://homologacao.avanzato.com.br | | - Mautic: desativado | | - Google Ads: desativado | | - Facebook Pixel: desativado | | - noindex/nofollow (nao aparece no Google) | | | +---------------------------------------------------------------+ | | Aprovado? bash scripts/dev.sh deploy-prod v +---------------------------------------------------------------+ | SERVIDOR - PRODUCAO | | | | https://avanzato.com.br | | - Mautic: ativo (forms, tracking) | | - Google Ads: ativo | | - Facebook Pixel: ativo | | - Indexado no Google | | | +---------------------------------------------------------------+ ``` --- ## 1. Primeira Configuracao (faca uma vez) ### 1.1 Instalar Node.js 20+ ```bash # Instalar via Homebrew brew install node@20 # Verificar node -v # v20.x.x npm -v # 10.x.x ``` ### 1.2 Instalar dependencias ```bash cd /Users/avanzato/Projetos/Avanzato/avanzato-site/app npm install ``` ### 1.3 Configurar acesso aos servidores ```bash # Copiar template cp scripts/.env.local.example scripts/.env.local # Editar com seus dados nano scripts/.env.local ``` Conteudo do `.env.local`: ```bash # Homologacao SSH_HOM_HOST=192.168.1.100 # ou IP publico SSH_HOM_USER=deploy SSH_HOM_PATH=/var/www/avanzato-hom # Producao SSH_PROD_HOST=201.45.120.30 # ou IP publico SSH_PROD_USER=deploy SSH_PROD_PATH=/var/www/avanzato ``` ### 1.4 Configurar chave SSH (se ainda nao tiver) ```bash # Gerar chave ssh-keygen -t ed25519 -C "dev@avanzato" -f ~/.ssh/id_ed25519 # Copiar para o servidor de homologacao ssh-copy-id -i ~/.ssh/id_ed25519.pub deploy@SEU_SERVIDOR_HOM # Copiar para o servidor de producao ssh-copy-id -i ~/.ssh/id_ed25519.pub deploy@SEU_SERVIDOR_PROD ``` --- ## 2. Desenvolvimento Diario ### 2.1 Iniciar servidor local ```bash bash scripts/dev.sh start # ou npm run dev ``` Acesse: **http://localhost:5173** - Hot reload funciona automaticamente - Mautic/Google Ads/Facebook Pixel estao em modo simulacao - Edite qualquer arquivo `.tsx` e veja a mudanca ao vivo ### 2.2 Comandos uteis durante desenvolvimento ```bash # Ver ajuda completa bash scripts/dev.sh help # Build para homologacao bash scripts/dev.sh build-hom # Preview do build (para testar antes de deploy) bash scripts/dev.sh preview # Limpar caches quando algo estranho acontecer bash scripts/dev.sh clean ``` --- ## 3. Deploy para Homologacao ### Metodo 1: Script local (rapido) ```bash # 1. Build bash scripts/dev.sh build-hom # 2. Deploy bash scripts/dev.sh deploy-hom ``` ### Metodo 2: Git push (CI/CD) ```bash # Adicionar remote do Gitea (faca uma vez) git remote add homolog ssh://git@SEU_SERVIDOR_HOM:22/gitea/avanzato-site.git # Sempre que quiser deployar git add . git commit -m "descricao da mudanca" git push homolog main ``` O Gitea vai executar o pipeline automaticamente e deployar. --- ## 4. Deploy para Producao **ATENCAO: Sempre teste em homologacao primeiro!** ```bash # 1. Build de producao bash scripts/dev.sh build # 2. Deploy (pede confirmacao) bash scripts/dev.sh deploy-prod # Digite 'sim' para confirmar ``` --- ## 5. Estrutura de Comandos | Comando | O que faz | URL | |---------|-----------|-----| | `bash scripts/dev.sh start` | Servidor dev local | http://localhost:5173 | | `bash scripts/dev.sh build` | Build producao | - | | `bash scripts/dev.sh build-hom` | Build homologacao | - | | `bash scripts/dev.sh preview` | Preview do build | http://localhost:4173 | | `bash scripts/dev.sh deploy-hom` | Deploy homologacao | https://homologacao.avanzato.com.br | | `bash scripts/dev.sh deploy-prod` | Deploy producao | https://avanzato.com.br | | `bash scripts/dev.sh clean` | Limpa caches | - | | `bash scripts/dev.sh help` | Ajuda | - | --- ## 6. Checklist antes de cada deploy ### Homologacao - [ ] Testei localmente (`npm run dev`) - [ ] Build funciona (`bash scripts/dev.sh build-hom`) - [ ] Nao ha erros no console do navegador ### Producao - [ ] Testei em homologacao - [ ] Aprovado pelo time - [ ] Build de producao (`bash scripts/dev.sh build`) - [ ] Backup esta funcionando no servidor --- ## 7. Solucao de Problemas ### Erro: "Cannot find module" ```bash npm install ``` ### Erro: "dist/ nao encontrado" ```bash bash scripts/dev.sh build ``` ### Erro: "Permission denied" no deploy ```bash # Verificar SSH ssh deploy@SEU_SERVIDOR "echo OK" # Se nao funcionar, recopiar chave ssh-copy-id -i ~/.ssh/id_ed25519.pub deploy@SEU_SERVIDOR ``` ### Site nao carrega depois do deploy ```bash # Verificar no servidor ssh deploy@SEU_SERVIDOR "ls -la /var/www/avanzato" ssh deploy@SEU_SERVIDOR "sudo systemctl status nginx" ``` --- ## 8. Dicas 1. **Nunca edite diretamente no servidor** - Sempre edite local e deploy 2. **Sempre teste em homolog primeiro** - Antes de ir pra prod 3. **Commits frequentes** - Facilita rollback se algo der errado 4. **Mantenha o .env.local seguro** - Nunca commite este arquivo