# 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
