251 lines
6.5 KiB
Markdown
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
|