Files

251 lines
6.5 KiB
Markdown

# 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