# Domínio do cliente — passo a passo completo

Guia operacional para publicar um site OSSites no domínio próprio do cliente (ex.: `italiano.com.br`).

**IP do VPS:** `187.127.3.97`  
**Painel admin OSSites:** `https://ossites.rochaintelligence.com.br`

---

## Fluxo resumido (3 passos)

1. **Você cadastra e publica** no OSSites (wizard → **Domínio customizado** → **Publicar**).
2. **Cliente aponta DNS** no Registro.br: registros **A** para `@` e `www` → `187.127.3.97`.
3. **Verificar DNS** no painel → quando status **DNS OK**, **pronto**: site em `http://cliente.com.br`. Para **HTTPS**, rode o certbot no VPS (uma vez por domínio).

Enquanto o DNS propaga, o cliente pode acessar pelo link alternativo: `https://ossites.rochaintelligence.com.br/publico/slug-do-site`.

---

## Parte 1 — Para o cliente (Registro.br)

### 1.1 Registrar domínio .com.br

1. Acesse [https://registro.br](https://registro.br) e faça login (ou crie conta com CPF/CNPJ).
2. Menu **Domínios** → **Registrar domínio**.
3. Pesquise o nome desejado (ex.: `italiano.com.br`).
4. Se disponível, conclua o pagamento e aguarde a ativação (geralmente minutos; pode levar até 24h em casos raros).
5. Após ativo, o domínio aparece em **Meus domínios**.

### 1.2 Onde configurar DNS (painel Registro.br)

1. **Meus domínios** → clique no domínio (ex.: `italiano.com.br`).
2. Role até **DNS** ou **Editar zona DNS** / **Configurar endereçamento**.
3. Se o domínio usar **servidores DNS do Registro.br** (padrão), você verá a tela de **Entradas DNS** ou **Modo avançado**.

**Campos típicos no Registro.br (Modo avançado):**

| Campo / Nome | Tipo | Valor / Destino | TTL |
|--------------|------|-----------------|-----|
| `@` (ou vazio) | **A** | `187.127.3.97` | 3600 (padrão) |
| `www` | **A** | `187.127.3.97` | 3600 |

**Descrição visual do painel:**

- **Nome / Host:** `@` significa a raiz do domínio (`italiano.com.br`). Para www use `www`.
- **Tipo:** selecione **A** (endereço IPv4).
- **Dados / Valor / Aponta para:** digite exatamente `187.127.3.97` (sem `http://`, sem barra no final).
- Salve cada entrada e confirme.

> **Importante:** Não é necessário configurar nada em `rochaintelligence.com.br`. O cliente só mexe no **próprio** domínio no Registro.br.

### 1.3 O que NÃO precisa fazer (nesta fase)

- Não criar subdomínio em `rochaintelligence.com.br`.
- Não pedir acesso ao Coolify ou ao VPS.
- Não configurar MX (e-mail) — isso é opcional e documentado em [EMAIL-DOMINIO-CLIENTE.md](./EMAIL-DOMINIO-CLIENTE.md).

### 1.4 Tempo de propagação DNS

- **Comum:** 15 minutos a 2 horas.
- **Máximo usual:** até 24–48 horas (TTL alto ou cache de provedor).
- Para testar: `dig +short italiano.com.br` ou `nslookup italiano.com.br` — deve retornar `187.127.3.97`.

---

## Parte 2 — Para você (Rocha / superadmin no OSSites)

### 2.1 Criar o site no wizard

1. Acesse `https://ossites.rochaintelligence.com.br` e faça login.
2. **Novo site** → preencha dados do cliente (nome, slug, template).
3. Na etapa **3. Domínio e DNS**, informe o domínio **sem** `https://` (ex.: `italiano.com.br`).
4. A tabela DNS na tela já mostra os registros A com o IP `187.127.3.97` — copie e envie ao cliente se necessário.
5. Conclua integrações e conteúdo → marque **Publicar agora** (ou publique depois na lista de sites).

### 2.2 Link alternativo (enquanto DNS não propaga)

O site publicado fica imediatamente disponível em:

```
https://ossites.rochaintelligence.com.br/publico/SLUG-DO-SITE
```

Substitua `SLUG-DO-SITE` pelo slug definido no wizard (ex.: `italiano`).

### 2.3 Verificar DNS

1. Na etapa de domínio (ou na lista **Sites** → **Verificar DNS**).
2. O painel consulta os registros A de `@` e `www`.
3. Status possíveis:
   - **Pendente DNS** — ainda não resolve ou não aponta para o VPS.
   - **DNS OK** — apontando para `187.127.3.97`.
   - **DNS erro** — resolve para outro IP (cliente digitou IP errado ou DNS antigo).

Quando **DNS OK** + site **publicado**, o roteamento por `Host` entrega o site em `http://cliente.com.br` automaticamente (sem criar vhost Nginx manual por cliente).

### 2.4 HTTPS (SSL) — passo manual no VPS

O HTTP funciona assim que o DNS estiver OK. O **HTTPS** exige certificado Let's Encrypt **uma vez por domínio**.

**Pré-requisito:** status **DNS OK** no painel.

No VPS (SSH):

```bash
sudo bash /caminho/do/repo/OSSites/deploy/certbot-custom-domain.sh italiano.com.br
```

Ou, se já estiver no servidor com certbot instalado:

```bash
sudo certbot --nginx -d italiano.com.br -d www.italiano.com.br
```

O script `certbot-custom-domain.sh` usa certbot com Nginx e cobre `@` + `www`.

**Teste após SSL:**

```bash
curl -sI https://italiano.com.br/
```

No painel, quando DNS OK + publicado + SSL configurado, o site fica em:

```
https://italiano.com.br
```

### 2.5 Checklist rápido (superadmin)

| # | Ação | Feito? |
|---|------|--------|
| 1 | Site criado no wizard com domínio correto | ☐ |
| 2 | Site **publicado** | ☐ |
| 3 | Cliente configurou A `@` e A `www` → `187.127.3.97` | ☐ |
| 4 | **Verificar DNS** → status **DNS OK** | ☐ |
| 5 | Certbot no VPS para HTTPS | ☐ |
| 6 | Testar `https://dominio.com.br` no browser | ☐ |

---

## Parte 3 — Como funciona por trás (referência)

1. **Nginx** no VPS tem um **catch-all HTTP** (`default_server`) que encaminha qualquer domínio apontando para o IP para a porta `8085` (OSSites).
2. **OSSites** lê o header `Host`, normaliza (`www` = raiz) e busca site **publicado** com `domainCustom` igual.
3. **Painel admin** (`ossites.rochaintelligence.com.br`) é host reservado — nunca serve site de cliente.
4. Domínio apontando para o VPS **sem** site cadastrado → página “Domínio não configurado”.

Arquivos relacionados no repositório:

- `OSSites/deploy/nginx-ossites.conf` — Nginx admin + catch-all clientes
- `OSSites/deploy/certbot-custom-domain.sh` — SSL por domínio
- `deploy/OSSITES-COOLIFY-PASSO-A-PASSO.md` — deploy do painel no Coolify

---

## Problemas comuns

| Sintoma | Causa provável | Solução |
|---------|----------------|---------|
| **Pendente DNS** por horas | Propagação ou registro errado | Conferir A `@` e `www` no Registro.br; aguardar TTL |
| **DNS erro** (IP diferente) | IP antigo ou CDN | Corrigir valor para `187.127.3.97` |
| HTTP abre “Domínio não configurado” | Site não publicado ou domínio diferente no wizard | Publicar e conferir `domainCustom` |
| HTTPS não funciona | Certbot não rodou | Executar `certbot-custom-domain.sh` após DNS OK |
| Só `www` funciona (ou vice-versa) | Falta um dos registros A | Criar A `@` **e** A `www` |

---

## E-mail corporativo (opcional)

Ver [EMAIL-DOMINIO-CLIENTE.md](./EMAIL-DOMINIO-CLIENTE.md) — não faz parte do fluxo mínimo do site.
