# Produção — domínios e etapa `app.`

**Produto:** ImóvelZapAi  
**Etapa atual:** 1 — configurar o SaaS em `app.imovelzapia.app.br`

---

## Mapa de hosts

| Host | Papel | Estado |
|------|--------|--------|
| `imovelzapia.app.br` (+ `www`) | Landing de marketing, planos, anúncios | Fora deste repositório (site marketing) |
| **`app.imovelzapia.app.br`** | Login, dashboard, API, webhooks, convites, links públicos por token | **Esta etapa** |
| `portal.imovelzapia.app.br` | Base pública do portal do cliente | Etapa 2 |

Evolution API **não** ganha subdomínio público: roda na rede interna e chama  
`https://app.imovelzapia.app.br/api/webhooks/evolution`.

---

## Arquivos desta etapa

| Arquivo | Uso |
|---------|-----|
| [`backend/.env.production.example`](../../backend/.env.production.example) | Template do `.env` de produção |
| [`backend/.env.example`](../../backend/.env.example) | Continua sendo o template **local** (`localhost:8080`) |

No servidor:

```bash
cp backend/.env.production.example backend/.env
# Gere APP_KEY, preencha DB/Redis/Mail/Evolution/Mercado Pago
php artisan key:generate --force
php artisan config:cache
php artisan route:cache
php artisan migrate --force
```

Variáveis críticas do `app.`:

```env
APP_ENV=production
APP_DEBUG=false
APP_URL=https://app.imovelzapia.app.br
SESSION_SECURE_COOKIE=true
SESSION_DOMAIN=
SANCTUM_STATEFUL_DOMAINS=app.imovelzapia.app.br
EVOLUTION_WEBHOOK_BASE_URL=https://app.imovelzapia.app.br
BILLING_CHECKOUT_BACK_URL=https://app.imovelzapia.app.br/plano
```

CTAs da landing (marketing):

- Cadastro → `https://app.imovelzapia.app.br/cadastro`
- Login → `https://app.imovelzapia.app.br/login`

---

## DNS (Cloudflare)

```text
A/AAAA ou CNAME   app      → origin do Laravel
A/AAAA ou CNAME   @ / www  → origin da landing (marketing)
```

Proxy laranja (HTTPS) recomendado. Origin deve confiar em `X-Forwarded-Proto` (já há `trustProxies` no Laravel).

---

## Smoke após deploy

1. `https://app.imovelzapia.app.br/up`
2. `/login` e `/cadastro`
3. Convite `/convite/{token}` (link gerado com `APP_URL`)
4. Webhook Evolution → `POST /api/webhooks/evolution`
5. SuperAdmin `/super-admin/login` (IP allowlist + MFA em produção)

---

## Próxima etapa

1. DNS `portal.imovelzapia.app.br` → mesmo origin  
2. `CLIENT_PORTAL_PUBLIC_BASE_URL=https://portal.imovelzapia.app.br`  
3. Links do cliente: `https://portal.imovelzapia.app.br/p/{token}`

Arquitetura geral: [`../architecture/DEPLOYMENT_ARCHITECTURE.md`](../architecture/DEPLOYMENT_ARCHITECTURE.md).
