Files

6.5 KiB

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+

# Instalar via Homebrew
brew install node@20

# Verificar
node -v  # v20.x.x
npm -v   # 10.x.x

1.2 Instalar dependencias

cd /Users/avanzato/Projetos/Avanzato/avanzato-site/app
npm install

1.3 Configurar acesso aos servidores

# Copiar template
cp scripts/.env.local.example scripts/.env.local

# Editar com seus dados
nano scripts/.env.local

Conteudo do .env.local:

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

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

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

# 1. Build
bash scripts/dev.sh build-hom

# 2. Deploy
bash scripts/dev.sh deploy-hom

Metodo 2: Git push (CI/CD)

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

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

npm install

Erro: "dist/ nao encontrado"

bash scripts/dev.sh build

Erro: "Permission denied" no deploy

# 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

# 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